aboutsummaryrefslogtreecommitdiffstats
path: root/src/simul
diff options
context:
space:
mode:
Diffstat (limited to 'src/simul')
-rw-r--r--src/simul/simul-vhdl_elab.adb22
-rw-r--r--src/simul/simul-vhdl_elab.ads4
2 files changed, 15 insertions, 11 deletions
diff --git a/src/simul/simul-vhdl_elab.adb b/src/simul/simul-vhdl_elab.adb
index 34522853f..a8c285be6 100644
--- a/src/simul/simul-vhdl_elab.adb
+++ b/src/simul/simul-vhdl_elab.adb
@@ -277,33 +277,33 @@ package body Simul.Vhdl_Elab is
when Iir_Linkage_Mode =>
Gather_Signal ((Mode_Linkage, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- No_Driver_Index, No_Connect_Index,
+ No_Connect_Index, No_Driver_Index,
No_Disconnect_Index, null));
when Iir_Buffer_Mode =>
Gather_Signal ((Mode_Buffer, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- No_Driver_Index, No_Connect_Index,
+ No_Connect_Index, No_Driver_Index,
No_Disconnect_Index, null));
when Iir_Out_Mode =>
Gather_Signal ((Mode_Out, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- No_Driver_Index, No_Connect_Index,
+ No_Connect_Index, No_Driver_Index,
No_Disconnect_Index, null));
when Iir_Inout_Mode =>
Gather_Signal ((Mode_Inout, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- No_Driver_Index, No_Connect_Index,
+ No_Connect_Index, No_Driver_Index,
No_Disconnect_Index, null));
when Iir_In_Mode =>
Gather_Signal ((Mode_In, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- No_Driver_Index, No_Connect_Index,
+ No_Connect_Index, No_Driver_Index,
No_Disconnect_Index, null));
end case;
when Iir_Kind_Signal_Declaration =>
Gather_Signal ((Mode_Signal, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- No_Driver_Index, No_Connect_Index,
+ No_Connect_Index, No_Driver_Index,
No_Disconnect_Index, null));
when Iir_Kind_Configuration_Specification =>
null;
@@ -336,7 +336,8 @@ package body Simul.Vhdl_Elab is
end;
when Iir_Kind_Above_Attribute =>
Gather_Signal ((Mode_Above, Decl, Inst, null, null, null,
- No_Sensitivity_Index, No_Signal_Index));
+ No_Sensitivity_Index, No_Signal_Index,
+ No_Connect_Index));
when Iir_Kind_Quiet_Attribute =>
declare
T : Std_Time;
@@ -346,7 +347,7 @@ package body Simul.Vhdl_Elab is
Pfx := Compute_Sub_Signal (Inst, Get_Prefix (Decl));
Gather_Signal ((Mode_Quiet, Decl, Inst, null, null, null,
No_Sensitivity_Index, No_Signal_Index,
- T, Pfx));
+ No_Connect_Index, T, Pfx));
end;
when Iir_Kind_Stable_Attribute =>
declare
@@ -923,7 +924,8 @@ package body Simul.Vhdl_Elab is
begin
if Guard /= Null_Node then
Gather_Signal ((Mode_Guard, Guard, Inst, null, null, null,
- No_Sensitivity_Index, No_Signal_Index));
+ No_Sensitivity_Index, No_Signal_Index,
+ No_Connect_Index));
end if;
if Hdr /= Null_Node then
Gather_Processes_Decls (Inst, Get_Port_Chain (Hdr));
@@ -965,7 +967,7 @@ package body Simul.Vhdl_Elab is
for I in Signals_Table.First .. Signals_Table.Last loop
Signals_Table.Table (I) :=
(Mode_End, Null_Node, null, null, null, null,
- No_Sensitivity_Index, No_Signal_Index);
+ No_Sensitivity_Index, No_Signal_Index, No_Connect_Index);
end loop;
-- Gather declarations of top-level packages.
diff --git a/src/simul/simul-vhdl_elab.ads b/src/simul/simul-vhdl_elab.ads
index aff66472a..9a0554a00 100644
--- a/src/simul/simul-vhdl_elab.ads
+++ b/src/simul/simul-vhdl_elab.ads
@@ -159,10 +159,12 @@ package Simul.Vhdl_Elab is
-- This signal is identical to Collapsed_By, if set.
Collapsed_By : Signal_Index_Type;
+ -- Connections. Non-user signals can only be actuals.
+ Connect : Connect_Index_Type;
+
case Kind is
when Mode_Signal_User =>
Drivers : Driver_Index_Type;
- Connect : Connect_Index_Type;
Disconnect : Disconnect_Index_Type;
Nbr_Sources : Nbr_Sources_Arr_Acc;
when Mode_Quiet | Mode_Stable | Mode_Delayed