这是一个设计组合电路的练习,可以显示二十转换器和二进制编码的十进制(BCD)加法。
part5:2位BCD数加法器
设计一个BCD加法器即是将加法器和显示电路结合起来。显示电路比较简单,只需要输入一个bcd数,我们就可以在数码管上显示这个bcd数,用简单的case语句即可实现:
module decoder(
input [3:0]in2,
output reg[6:0]display
);
always@(*) begin
display = 7'b1111111;
case(in2)
0 : display = 7'b0000001;
1 : display = 7'b1001111;
2 : display = 7'b0010010;
3 : display = 7'b0000110;
4 : display = 7'b1001100;
5 : display = 7'b0100100;
6 : display = 7'b0100000;
7 : display = 7'b0001111;
8 : display = 7'b0000000;
9 : display = 7'b0000100;
endcase
end
endmodule
再然后是bcd加法器,因为是两位bcd加法器,所以要考虑进位cin和cout,我们可以实例化两个一位的bcd加法器,可以直接采用全加器的方式,将a+b+cin的值进行判断是否大于9