设计一位半加器,首先明确有两个输入端,这里定义为ip_A和ip_B,因为是半加器没有进位所以输出端也是两个端口就能搞定,列出真值表后写出逻辑表达式然后画出门电路图开始些verilog代码,输入端定义为wire型的,输出端目前我还不知道reg型和wire型的具体用法上的区别,所以我就用的是wire型,如果错误的话还能帮助我区分一下,用assign持续给op_C和op_S赋值,异或有两种表达方式,注释后的就是第二种写法,两种用法都是一样的效果,但是后面的那种写法比较简便一些
module adder
//-----------------define--------------------//
(
input wire ip_A,
input wire ip_B,
output wire op_C,
output wire op_S
);
//-----------------function--------------------//
assign op_C = ip_A & ip_B;
assign op_S = (ip_A&(~ip_B))|((~ip_A)&ip_B);//ip_A ^ ip_B
endmodule