我是靠谱客的博主 酷酷荔枝,最近开发中收集的这篇文章主要介绍【基础入门】(六)层次化设计——全加器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//全加器,层次化设计
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

最后

以上就是酷酷荔枝为你收集整理的【基础入门】(六)层次化设计——全加器的全部内容,希望文章能够帮你解决【基础入门】(六)层次化设计——全加器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部