sv2v changes the assignment to
always_comb shiftedLargerMant = {double[53], double[53-:54] >>> Shift};
That is the arithmetic shift will now interpret the left operand as unsigned and work the same as regular shift.
My quickfix for now is introduce an unnecessary $signed() to the original System Verilog
always_comb shiftedLargerMant = {double.Mant[53], $signed(double.Mant) >>> Shift};
Hi, thanks a lot for the tool! Here's the problem I experienced: System Verilog:
sv2v changes the assignment to
always_comb shiftedLargerMant = {double[53], double[53-:54] >>> Shift};
That is the arithmetic shift will now interpret the left operand as unsigned and work the same as regular shift.My quickfix for now is introduce an unnecessary
$signed()
to the original System Verilogalways_comb shiftedLargerMant = {double.Mant[53], $signed(double.Mant) >>> Shift};
Thanks!