1.原题复现
2.思路以及代码
这道题其实主要是由于if语句而引起的锁存器现象,加上else语句即可。
// synthesis verilog_input_version verilog_2001
module top_module (
input do_sub,
input [7:0] a,
input [7:0] b,
output reg [7:0] out,
output reg result_is_zero
);//
always @(*) begin
case (do_sub)
0: out = a+b;
1: out = a-b;
endcase
if (out==8'd0)
result_is_zero = 1;
else result_is_zero = 0;
end
endmodule