1
我正在一個模塊上的系統的Verilog用下面的代碼:否則身體在系統執行的Verilog
module my_module (input [7:0] rd_i // rd_i = 00001001
,input [7:0] rs_i // rs_i = 10010010
,output logic [7:0] result_o // result_o = 00001010
);
always_comb
if ((rd_i << 4) & 8'hF0 == rs_i & 8'hF0) begin
result_o = 'b0101;
end
else begin
result_o = 'b1010;
end
endmodule
module my_module_tb();
logic [7:0] rd_i = 'b00001001;
logic [7:0] rs_i = 'b10010010;
logic [7:0] result_o;
my_module uut (
.rd_i(rd_i),
.rs_i(rs_i),
.result_o(result_o)
);
endmodule
好像我應該期待result_o = 5,而是它等於10.我不不明白爲什麼我的條件評估是錯誤的。