概述
//全加器,层次化设计
module full_adder
(
input wire in1 ,
input wire in2 ,
input wire cin ,
output wire cout,
output wire sum
);
wire h0_sum;
wire h0_cout;
wire h1_cout;
half_adder half_adder_inst
(
.in1 (in1),
.in2 (in2),
.sum (h0_sum),
.co (h0_cout)
);
half_adder half_adder_inst1
(
.in1 (h0_sum),
.in2 (cin),
.sum (sum),
.co (h1_cout)
);
assign cout = h0_cout | h1_cout;
endmodule
//半加器
module half_adder
(
input wire in1 ,
input wire in2 ,
output wire co,
output wire sum
);
assign {co, sum} = in1 + in2;
endmodule
`timescale 1ns/1ns
module tb_full_adder();
reg in1, in2, cin;
wire cout, sum;
initial begin
in1 <= 1'b0;
in2 <= 1'b0;
cin <= 1'b0;
end
always #10 in1 <= {$random} % 2;
always #10 in2 <= {$random} % 2;
always #10 cin <= {$random} % 2;
initial begin
$timeformat(-9, 0, "ns", 6);
$monitor("@time %t:in1=%b in2=%b cin=%b cout=%b sum=%b", $time, in1, in2, cin, cout, sum);
end
full_adder full_adder_inst
(
.in1 (in1),
.in2 (in2),
.cin (cin),
.cout (cout),
.sum (sum)
);
endmodule
最后
以上就是酷酷荔枝为你收集整理的【基础入门】(六)层次化设计——全加器的全部内容,希望文章能够帮你解决【基础入门】(六)层次化设计——全加器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复