El libro de texto que estoy leyendo implementa sumadores de 1 bit utilizando módulos primitivos integrados:
module yAdder1(z, cout, a, b, cin);
output[0:0] z, cout;
input[0:0] a, b, cin;
wire[0:0] tmp, outL, outR;
xor left_xor(tmp, a, b);
xor right_xor(z, cin, tmp);
and left_and(outL, a, b);
and right_and(outR, tmp, cin);
or my_or(cout, outR, outL);
endmodule
¿Pero por qué no usar operadores de bit-wise? Parece más simple.
module yAdder1(z, cout, a, b, cin);
output[0:0] z, cout;
input[0:0] a, b, cin;
assign z = (a ^ b) ^ cin;
assign cout = (a & b) | ((a ^ b) & cin);
endmodule
¿A menos que los operadores de bit-bit utilicen implícitamente módulos primitivos?