Я создаю модуль сумматора с плавающей запятой, и часть его требует 2-х дополнительных и сдвигающих значений. Код основного модуля
module backup (x, y, z, clk);
input [7:0] x,y;
output reg [7:0] z;
input clk;
integer i;
reg [1:0] a;
reg unsigned [7:0] temp;
reg unsigned [8:0] temp2;
always @ (posedge clk) begin
a = 2'b00;
temp = 8'b00111100;
temp = ((~temp)+1) >> 2;
$display("temp = %b", temp);
end
endmodule
module backup_tb();
reg [7:0] x,y;
wire [7:0] z;
reg clk;
backup m1 (.x(x),.y(y),.z(z),.clk(clk));
always #10 clk = ~clk;
initial begin
clk = 0;
#50
$finish;
end
endmodule
Выход для этого кода — temp = 11110001
, а предполагаемый результат — temp = 00110001
. Пожалуйста, объясните, что я упускаю здесь, или как я могу это исправить?