半加器和全加器是算术运算电路中的基本单元,由于半加器不考虑从低位来的进位,所以称之为半加器,sum 表示相加结果,count 表示进位,真值表可表示如下:

代码如下:
(CSDN代码块不支持Verilog,代码复制到notepad++编辑器中,语言选择Verilog,看得更清楚)
- module top(a, b, sum, count) ;
- input a ;
- input b ;
- output sum ;
- output count ;
- assign sum = a ^ b ;
- assign count = a & b ;
- endmodule
激励文件如下
- `timescale 1 ns/1 ns
- module top_tb() ;
- reg a ;
- reg b ;
- wire sum ;
- wire count ;
- initial
- begin
- a = 0 ;
- b = 0 ;
- forever
- begin
- #({$random}%100)
- a = ~a ;
- #({$random}%100)
- b = ~b ;
- end
- end
- top t0(.a(a), .b(b),
- .sum(sum), .count(count)) ;
- endmodule