【FPGA & Verilog】各种加法器Verilog

1bit半加器adder设计实例

module adder(cout,sum,a,b);
output cout;
output sum;
input a,b;
wire cout,sum;
assign {cout,sum}=a+b;
endmodule

解释说明

(1)assign {cout,sum}=a+b 是连续性赋值

对于线网wire进行赋值,必须以assign或者deassign开始

assign [delay] wire_net = expression

assign 语句逻辑结构就是右边驱动左边。某个值被指派给线网变量,右边操作数可以是标量或者向量的wire或reg;也可以是 function函数,无论何时,右边表达式都重新计算,在指定的延时时间后赋值;

(2){cout,sum}是为拼接操作符,例如两个3bit的a,b拼接在一起后,{a,b}就相当于6bit数

同步4bit全加器adder4

module adder4(cout,sum,ina,inb,cin,clk);
output reg [3:0]sum;
output reg cout;
input [3:0]ina,inb;
input cin,clk;
reg [3:0] tempa,tempb;
reg tempc;
always@(posedge clk)
begin
 tempa=ina;
 tempb=inb;
 tempc=cin;
end

always@(posedge clk)
begin
{cout,sum}=tempa+tempb+tempc;
end

endmodule

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>