aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/synth-expr.adb15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index 366e83d8e..d6651638f 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -2205,6 +2205,21 @@ package body Synth.Expr is
(Synth_Uresize (Get_Net (V), W, Expr),
Create_Vec_Type_By_Length (W, Logic_Type));
end;
+ when Iir_Predefined_Ieee_Numeric_Std_Resize_Sgn_Nat =>
+ declare
+ V : constant Value_Acc := Subprg_Inst.Objects (1);
+ Sz : constant Value_Acc := Subprg_Inst.Objects (2);
+ W : Width;
+ begin
+ if not Is_Const (Sz) then
+ Error_Msg_Synth (+Expr, "size must be constant");
+ return null;
+ end if;
+ W := Uns32 (Sz.Scal);
+ return Create_Value_Net
+ (Synth_Sresize (Get_Net (V), W, Expr),
+ Create_Vec_Type_By_Length (W, Logic_Type));
+ end;
when Iir_Predefined_Ieee_Math_Real_Log2 =>
declare
V : constant Value_Acc := Subprg_Inst.Objects (1);