文章目录
理论学习
加法器
加法器是数字电路中经常用到的一种基本器件,用于两个数或多个数的加和。
加法器分为半加器和全加器,半加器是对两个输入数据位相加,输出一个结果位和数据位,全加器除了加数和被加数加和外还要加上上一级传进来的进位信号。
实战演练
使用简单组合逻辑实现一个半加器
使用两个按键表示加数和被加数,使用两个LED分别代表输出和进位的输出。
module half_adder
(
input wire in_1,
input wire in_2,
output wire sum,
output wire count
);
assign {
count,sum} = in_1 + in_2;
endmodule
`timescale 1ns/1ns
module half_adder_tb();
reg in_1;
reg in_2;
wire sum;
wire count;
initial
begin
in_1 <= 1'b0;
in_2 <= 1'b0;
end
always #10 in_1 <= {
$random} % 2;
always #10 in_2 <= {
$random} % 2;
initial
begin
$timeformat(-9,0,"ns",6);
$monitor("@time %t:in_1=%b,in_2=%b,sum=%b,count=%b",$time,in_1,in_2,sum,count);
end
half_adder half_adder_inst
(
.in_1 (in_1),
.in_2 (in_2),
.sum (sum),
.count (count)
);
endmodule