aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/elab-vhdl_values.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-12-25 20:25:28 +0100
committerTristan Gingold <tgingold@free.fr>2022-12-26 10:25:20 +0100
commit8a6be3328e812256abd7b01e965ac60630a70888 (patch)
tree027b0ccd357f337c3d0bab6dbf027367f9d78b5e /src/synth/elab-vhdl_values.ads
parentde6ca601a8e016b17b161d1e0fb4e0528381a977 (diff)
downloadghdl-8a6be3328e812256abd7b01e965ac60630a70888.tar.gz
ghdl-8a6be3328e812256abd7b01e965ac60630a70888.tar.bz2
ghdl-8a6be3328e812256abd7b01e965ac60630a70888.zip
synth: add value_sig_val to handle individual signal associations
Diffstat (limited to 'src/synth/elab-vhdl_values.ads')
-rw-r--r--src/synth/elab-vhdl_values.ads13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/synth/elab-vhdl_values.ads b/src/synth/elab-vhdl_values.ads
index 4ed86da22..0e72fd128 100644
--- a/src/synth/elab-vhdl_values.ads
+++ b/src/synth/elab-vhdl_values.ads
@@ -60,7 +60,10 @@ package Elab.Vhdl_Values is
Value_Alias,
-- Used only for associations.
- Value_Dyn_Alias
+ Value_Dyn_Alias,
+
+ -- Used only for individual signal associations in simulation
+ Value_Sig_Val
);
type Value_Type (Kind : Value_Kind);
@@ -114,6 +117,9 @@ package Elab.Vhdl_Values is
D_Ptyp : Type_Acc; -- Type of the prefix (after offset).
D_Voff : Uns32; -- Variable offset
D_Eoff : Uns32; -- Fixed offset.
+ when Value_Sig_Val =>
+ I_Sigs : Memory_Ptr;
+ I_Vals : Memory_Ptr;
end case;
end record;
@@ -187,6 +193,11 @@ package Elab.Vhdl_Values is
function Create_Value_Const (Val : Valtyp; Loc : Node; Pool : Areapool_Acc)
return Valtyp;
+ function Create_Value_Sig_Val (Sigs : Memory_Ptr;
+ Vals : Memory_Ptr;
+ Typ : Type_Acc;
+ Pool : Areapool_Acc) return Valtyp;
+
-- If VAL is a const, replace it by its value.
procedure Strip_Const (Vt : in out Valtyp);