diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-03-22 08:41:16 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-03-22 08:41:16 +0100 |
commit | 600d8fad841f92c600c01d18569e9e4c6f843d21 (patch) | |
tree | 68f5f55f68ba0493fb1495b10bb6f357bcd7be98 /src/vhdl | |
parent | 8a35846d7e91f26d22cb059cfbf21d9e5645314d (diff) | |
download | ghdl-600d8fad841f92c600c01d18569e9e4c6f843d21.tar.gz ghdl-600d8fad841f92c600c01d18569e9e4c6f843d21.tar.bz2 ghdl-600d8fad841f92c600c01d18569e9e4c6f843d21.zip |
synth: handle ieee.numeric_std.to_01
Diffstat (limited to 'src/vhdl')
-rw-r--r-- | src/vhdl/vhdl-ieee-numeric.adb | 25 | ||||
-rw-r--r-- | src/vhdl/vhdl-nodes.ads | 3 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb index 8f94b8fde..7be77ac8f 100644 --- a/src/vhdl/vhdl-ieee-numeric.adb +++ b/src/vhdl/vhdl-ieee-numeric.adb @@ -718,6 +718,29 @@ package body Vhdl.Ieee.Numeric is Set_Implicit_Definition (Decl, Predefined); end Handle_Std_Match; + procedure Handle_To_01 + is + Predefined : Iir_Predefined_Functions; + begin + if Arg1_Kind /= Arg_Vect + or else Arg2_Kind /= Arg_Scal + or else Arg2_Sign /= Type_Log + then + raise Error; + end if; + + case Arg1_Sign is + when Type_Unsigned => + Predefined := Iir_Predefined_Ieee_Numeric_Std_To_01_Uns; + when Type_Signed => + Predefined := Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn; + when others => + raise Error; + end case; + + Set_Implicit_Definition (Decl, Predefined); + end Handle_To_01; + procedure Handle_Shift (Pats : Shift_Pattern_Type; Sh_Sign : Sign_Kind) is Res : Iir_Predefined_Functions; @@ -885,6 +908,8 @@ package body Vhdl.Ieee.Numeric is Handle_Shift (Rol_Patterns, Type_Unsigned); when Name_Rotate_Right => Handle_Shift (Ror_Patterns, Type_Unsigned); + when Name_To_01 => + Handle_To_01; when others => null; end case; diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index 7c2bebd42..d27e1aed9 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -5692,6 +5692,9 @@ package Vhdl.Nodes is Iir_Predefined_Ieee_Numeric_Std_Match_Slv, Iir_Predefined_Ieee_Numeric_Std_Match_Suv, + Iir_Predefined_Ieee_Numeric_Std_To_01_Uns, + Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn, + -- Math_Real Iir_Predefined_Ieee_Math_Real_Ceil, Iir_Predefined_Ieee_Math_Real_Round, |