diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/simul/simul-vhdl_elab.adb | 22 | ||||
| -rw-r--r-- | src/simul/simul-vhdl_elab.ads | 4 | 
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 | 
