四位串行进位加法器(for循环对n为多位数加法器的行为进行描述)

//4位串行进位加法器
module cy4
(
 input[n-1:0]A,B,//输入端口声明
 input Cin,//输入端口声明
 output reg[n-1:0]SUM,//输出端口及变量的数据类型声明
 output reg Cout//输出端口及变量的数据类型声明
);
parameter n = 4;
reg[n:0] C;
integer k;//声明一个整型变量
always @(A,B,Cin)
begin
   C[0] = Cin;
   for(k = 0;k < n; k = k + 1)
   begin  
     SUM[k] = A[k] ^ B[k] ^ C[k];//求和
     C[k+1] = (A[k] & B[k])|(A[k] & C[k])|(B[k] & C[k]);//求进位
   end
   Cout = C[n];//输出进位号
end
endmodule

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41982581/article/details/82661883