diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-06-19 06:48:02 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-06-19 06:48:02 +0200 |
commit | cfc4b80aa2fef5d58394241bcd157132f3ef54fd (patch) | |
tree | 35adda1efac151a8697ff0434f5ee63c468169d4 /src/synth | |
parent | 5f4992cf1b8cd862b5b1cde498e2a7a867439b5a (diff) | |
download | ghdl-cfc4b80aa2fef5d58394241bcd157132f3ef54fd.tar.gz ghdl-cfc4b80aa2fef5d58394241bcd157132f3ef54fd.tar.bz2 ghdl-cfc4b80aa2fef5d58394241bcd157132f3ef54fd.zip |
synth: handle to_x01. For ghdl/ghdl-yosys-plugin#126
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/synth-oper.adb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/synth/synth-oper.adb b/src/synth/synth-oper.adb index b66d0c947..42c17af9b 100644 --- a/src/synth/synth-oper.adb +++ b/src/synth/synth-oper.adb @@ -1595,19 +1595,23 @@ package body Synth.Oper is return Create_Value_Net (Edge, Res_Typ); end; when Iir_Predefined_Ieee_1164_Scalar_Is_X - | Iir_Predefined_Ieee_1164_Vector_Is_X => + | Iir_Predefined_Ieee_1164_Vector_Is_X => -- Always false. return Create_Value_Discrete (0, Boolean_Type); when Iir_Predefined_Ieee_1164_To_Bitvector - | Iir_Predefined_Ieee_1164_To_Stdlogicvector_Suv - | Iir_Predefined_Ieee_1164_To_Stdlogicvector_Bv - | Iir_Predefined_Ieee_Numeric_Std_To_01_Uns - | Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn => + | Iir_Predefined_Ieee_1164_To_Stdlogicvector_Suv + | Iir_Predefined_Ieee_1164_To_Stdlogicvector_Bv + | Iir_Predefined_Ieee_Numeric_Std_To_01_Uns + | Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn + | Iir_Predefined_Ieee_1164_To_X01_Slv => if Is_Static (L.Val) then raise Internal_Error; end if; + -- A no-op (with change of bounds). return Create_Value_Net (Get_Net (Ctxt, L), Create_Res_Bound (L)); - when Iir_Predefined_Ieee_1164_To_Bit => + when Iir_Predefined_Ieee_1164_To_Bit + | Iir_Predefined_Ieee_1164_To_X01_Log => + -- A no-op. return Create_Value_Net (Get_Net (Ctxt, L), Res_Typ); when Iir_Predefined_Ieee_Numeric_Std_Touns_Nat_Nat_Uns |