一位全加法器设计
第一种:
module add(a,b,cin,sum,cout);
input a,b,cin;
output sum,cout;
assign{cout,sum}=a+b+cin;
endmodule
RTL View:
第二种:
module adder(a,b,cin,sum,cout);
input a,b,cin;
output sum, cout;
assign sum="a"^b^cin; //按位异或
assign cout=(a&b)| (b&cin) |(a&cin);//按位与再按位或
endmodule
第三种:
module adder(a,b,cin,sum,cout);
input a,b,cin;
output sum, cout;
reg sum,cout;
always @(a or b or cin)//a或b或cin发生变化
begin
sum=a^b^cin;
cout=(a&b)| (b&cin) |(a&cin);
end
endmodule
module adder(a,b,cin,sum,cout);
input a,b,cin;
output sum, cout;
reg sum,cout;
always @(a or b or cin)//a或b或cin发生变化
begin
{cout,sum}=a+b+cin;
end
endmodule
文章评论(0条评论)
登录后参与讨论