aboutsummaryrefslogtreecommitdiffstats
path: root/src/simul/simul-vhdl_elab.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-08-17 03:19:30 +0200
committerTristan Gingold <tgingold@free.fr>2022-08-17 03:19:30 +0200
commita546ecfe5c8643c72435318de3973cbf83993fa4 (patch)
tree76c82ce2422c8e110efa496a8d13dc9f591a447d /src/simul/simul-vhdl_elab.ads
parente57ba3e335d1f3692805f46d7d9cba49ffea4219 (diff)
downloadghdl-a546ecfe5c8643c72435318de3973cbf83993fa4.tar.gz
ghdl-a546ecfe5c8643c72435318de3973cbf83993fa4.tar.bz2
ghdl-a546ecfe5c8643c72435318de3973cbf83993fa4.zip
simul: add create_connects
Diffstat (limited to 'src/simul/simul-vhdl_elab.ads')
-rw-r--r--src/simul/simul-vhdl_elab.ads18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/simul/simul-vhdl_elab.ads b/src/simul/simul-vhdl_elab.ads
index ed58ca0d6..14ca462a0 100644
--- a/src/simul/simul-vhdl_elab.ads
+++ b/src/simul/simul-vhdl_elab.ads
@@ -83,18 +83,20 @@ package Simul.Vhdl_Elab is
type Connect_Index_Type is new Nat32;
No_Connect_Index : constant Connect_Index_Type := 0;
+ type Connect_Endpoint is record
+ Base : Signal_Index_Type;
+ Offs : Value_Offsets;
+ Typ : Type_Acc;
+ end record;
+
-- Connections. For each associations (block/component/entry), the
-- elaborator adds an entry in that table.
type Connect_Entry is record
- Formal_Base : Signal_Index_Type;
- Formal_Offs : Value_Offsets;
- Formal_Type : Type_Acc;
+ Formal : Connect_Endpoint;
-- Next connection for the formal.
Formal_Link : Connect_Index_Type;
- Actual_Base : Signal_Index_Type;
- Actual_Offs : Value_Offsets;
- Actual_Type : Type_Acc;
+ Actual : Connect_Endpoint;
-- Next connection for the actual.
Actual_Link : Connect_Index_Type;
@@ -103,6 +105,10 @@ package Simul.Vhdl_Elab is
Drive_Formal : Boolean;
Drive_Actual : Boolean;
+ -- If true, the connection is fully collapsed: formal is the same
+ -- signal as actual.
+ Collapsed : Boolean;
+
Assoc : Node;
Assoc_Inst : Synth_Instance_Acc;
end record;