Estoy intentando implementar la siguiente lógica:
f (A, B, C, D) = ~ C ~ D + ~ ABD + ~ ACD + A ~ BD + A ~ C
He escrito el siguiente código:
module q1(a,b,c,d,out);
input a,b,c,d;
output out;
assign x1 = (~c & ~d);
assign x2 = (~a & b & d);
assign x3 = (~a & c & d);
assign x4 = (a & ~b & d);
assign x5 = (a & ~c);
assign out = x1|x2|x3|x4|x5;
endmodule
Pero cuando creé el banco de pruebas, la salida siempre resulta ser 1, independientemente de la entrada. ¿Hay algún error en mi código? (Sé que podría haber escrito un código más conciso pero, por favor, respóndalo)