aboutsummaryrefslogtreecommitdiffstats
path: root/src/simul/simul-vhdl_elab.ads
diff options
context:
space:
mode:
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;