aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-values.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-06-08 07:52:43 +0200
committerTristan Gingold <tgingold@free.fr>2019-06-08 07:52:43 +0200
commitc5fbc11795004074b9f2f52e94e13d5907f1c95b (patch)
tree8fbe2aa0d82011bb95d67a3cc3b2ffd205b6b3e7 /src/synth/synth-values.adb
parent2a21ee61dd73224bec023b3a541c9d4ddaee0f88 (diff)
downloadghdl-c5fbc11795004074b9f2f52e94e13d5907f1c95b.tar.gz
ghdl-c5fbc11795004074b9f2f52e94e13d5907f1c95b.tar.bz2
ghdl-c5fbc11795004074b9f2f52e94e13d5907f1c95b.zip
synth: support conditional signal assignments.
Diffstat (limited to 'src/synth/synth-values.adb')
-rw-r--r--src/synth/synth-values.adb11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/synth/synth-values.adb b/src/synth/synth-values.adb
index 238341627..cb68848e2 100644
--- a/src/synth/synth-values.adb
+++ b/src/synth/synth-values.adb
@@ -53,6 +53,17 @@ package body Synth.Values is
Value_Type_Net'(Kind => Value_Net, N => N, N_Range => Rng)));
end Create_Value_Net;
+ function Create_Value_Mux2 (Cond : Value_Acc; T : Value_Acc; F : Value_Acc)
+ return Value_Acc
+ is
+ subtype Value_Type_Mux2 is Value_Type (Value_Mux2);
+ function Alloc is new Areapools.Alloc_On_Pool_Addr (Value_Type_Mux2);
+ begin
+ return To_Value_Acc
+ (Alloc (Current_Pool,
+ (Kind => Value_Mux2, M_Cond => Cond, M_T => T, M_F => F)));
+ end Create_Value_Mux2;
+
function Create_Value_Lit (Val : Iir_Value_Literal_Acc; Typ : Iir)
return Value_Acc
is