半加器
半加器:两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。即两个一位二进制数的加法运算电路。
半加器 模块框图:
sum:结果位
count:进位
半加器 真值表:
半加器 波形图:
代码部分:
选择器代码:在Src文件夹中新建 half_adder.v文件
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
仿真文件代码:在Sim文件夹中新建 tb_half_adder.v 文件
`timescale 1ns/1ns
module tb_half_adder();
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
结果:
打印的日志和真值表中相对应
波形也正常