aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristos Gentsos <christos.gentsos@cern.ch>2019-06-06 13:56:18 +0200
committerTristan Gingold <tgingold@free.fr>2019-06-06 19:06:03 +0200
commit761b344a1cd3018eb5b6b60ea5efc047c199fe23 (patch)
tree1dc9768d02eb4b47ce52460b96404ee4af97160b
parent235316900770c52304ce572974a1a717d736a09d (diff)
downloadghdl-761b344a1cd3018eb5b6b60ea5efc047c199fe23.tar.gz
ghdl-761b344a1cd3018eb5b6b60ea5efc047c199fe23.tar.bz2
ghdl-761b344a1cd3018eb5b6b60ea5efc047c199fe23.zip
synth: enabled vector AND, OR and XOR
-rw-r--r--src/synth/synth-expr.adb22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index 71e1469c1..7299cfe70 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -423,14 +423,14 @@ package body Synth.Expr is
No_Range);
end Synth_Bit_Dyadic;
- -- function Synth_Vec_Dyadic (Id : Dyadic_Module_Id) return Value_Acc
- -- is
- -- L : constant Net := Get_Net (Left);
- -- begin
- -- return Create_Value_Net
- -- (Build_Dyadic (Build_Context, Id, L, Get_Net (Right)),
- -- Create_Res_Range (Left, L));
- -- end Synth_Vec_Dyadic;
+ function Synth_Vec_Dyadic (Id : Dyadic_Module_Id) return Value_Acc
+ is
+ L : constant Net := Get_Net (Left);
+ begin
+ return Create_Value_Net
+ (Build_Dyadic (Build_Context, Id, L, Get_Net (Right)),
+ Create_Res_Range (Left, L));
+ end Synth_Vec_Dyadic;
begin
case Def is
when Iir_Predefined_Error =>
@@ -446,6 +446,12 @@ package body Synth.Expr is
when Iir_Predefined_Bit_Or
| Iir_Predefined_Ieee_1164_Scalar_Or =>
return Synth_Bit_Dyadic (Id_Or);
+ when Iir_Predefined_Ieee_1164_Vector_And =>
+ return Synth_Vec_Dyadic (Id_And);
+ when Iir_Predefined_Ieee_1164_Vector_Or =>
+ return Synth_Vec_Dyadic (Id_Or);
+ when Iir_Predefined_Ieee_1164_Vector_Xor =>
+ return Synth_Vec_Dyadic (Id_Xor);
when Iir_Predefined_Bit_Nor
| Iir_Predefined_Ieee_1164_Scalar_Nor =>