summaryrefslogtreecommitdiff
path: root/simulate/annotations.ads
diff options
context:
space:
mode:
Diffstat (limited to 'simulate/annotations.ads')
-rw-r--r--simulate/annotations.ads22
1 files changed, 13 insertions, 9 deletions
diff --git a/simulate/annotations.ads b/simulate/annotations.ads
index cf650c9..e9b48d0 100644
--- a/simulate/annotations.ads
+++ b/simulate/annotations.ads
@@ -52,7 +52,10 @@ package Annotations is
Scope_Level_Component : constant Scope_Level_Type :=
Scope_Level_Type'Last - 1;
- Invalid_Slot : constant Iir_Index32 := Iir_Index32'Last;
+ type Instance_Slot_Type is new Integer;
+ Invalid_Instance_Slot : constant Instance_Slot_Type := -1;
+
+ type Object_Slot_Type is new Integer;
-- The annotation depends on the kind of the node.
type Sim_Info_Kind is
@@ -71,19 +74,17 @@ package Annotations is
when Kind_Block
| Kind_Frame
| Kind_Process =>
- -- Only for packages: true if elaborated.
- Elaborated: Boolean;
-
-- Slot number.
- Inst_Slot : Iir_Index32;
+ Inst_Slot : Instance_Slot_Type;
-- scope level for this frame.
Frame_Scope_Level: Scope_Level_Type;
-- Number of objects/signals.
- Nbr_Objects: Iir_Index32;
+ Nbr_Objects : Object_Slot_Type;
- Nbr_Instances : Iir_Index32;
+ -- Number of children (blocks, generate, instantiation).
+ Nbr_Instances : Instance_Slot_Type;
when Kind_Object
| Kind_Signal
@@ -95,7 +96,7 @@ package Annotations is
Scope_Level: Scope_Level_Type;
-- Variable index.
- Slot: Iir_Index32;
+ Slot: Object_Slot_Type;
when Kind_Scalar_Type =>
Scalar_Mode : Iir_Value_Kind;
@@ -106,11 +107,14 @@ package Annotations is
end record;
Nbr_Packages : Iir_Index32 := 0;
- -- Packages_Last_Info: Sim_Info_Acc := null;
-- Get/Set annotation fied from/to an iir.
procedure Set_Info (Target: Iir; Info: Sim_Info_Acc);
pragma Inline (Set_Info);
function Get_Info (Target: Iir) return Sim_Info_Acc;
pragma Inline (Get_Info);
+
+ -- Expand the annotation table. This is automatically done by Annotate,
+ -- to be used only by debugger.
+ procedure Annotate_Expand_Table;
end Annotations;