diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/synth/synth-ieee-numeric_std.adb | 4 | ||||
-rw-r--r-- | src/synth/synth-static_oper.adb | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/synth/synth-ieee-numeric_std.adb b/src/synth/synth-ieee-numeric_std.adb index 2c0951f3b..4c7080f5a 100644 --- a/src/synth/synth-ieee-numeric_std.adb +++ b/src/synth/synth-ieee-numeric_std.adb @@ -873,11 +873,11 @@ package body Synth.Ieee.Numeric_Std is for I in 1 .. Size loop if I <= Old_Size then - B := Read_Std_Logic (Val.Mem, I - 1); + B := Read_Std_Logic (Val.Mem, Old_Size - I); else B := Pad; end if; - Write_Std_Logic (Res.Mem, I - 1, B); + Write_Std_Logic (Res.Mem, Size - I, B); end loop; return Res; diff --git a/src/synth/synth-static_oper.adb b/src/synth/synth-static_oper.adb index 2da770ba1..b667ccdd5 100644 --- a/src/synth/synth-static_oper.adb +++ b/src/synth/synth-static_oper.adb @@ -861,6 +861,9 @@ package body Synth.Static_Oper is when Iir_Predefined_Ieee_Numeric_Std_Resize_Sgn_Nat => return Resize_Vec (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), True); + when Iir_Predefined_Ieee_Numeric_Std_Resize_Uns_Nat => + return Resize_Vec + (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), False); when Iir_Predefined_Ieee_1164_To_Stdlogicvector_Bv => declare |