aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/synth/synth-ieee-numeric_std.adb4
-rw-r--r--src/synth/synth-static_oper.adb3
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