aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-environment.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-environment.ads')
-rw-r--r--src/synth/synth-environment.ads10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/synth/synth-environment.ads b/src/synth/synth-environment.ads
index 09730b43d..f57ab0ab6 100644
--- a/src/synth/synth-environment.ads
+++ b/src/synth/synth-environment.ads
@@ -132,6 +132,8 @@ private
type Wire_Id_Record is record
-- Kind of wire: signal, variable...
-- Set at initialization and cannot be changed.
+ -- Used to know what is the current value of the wire (could be either
+ -- Gate when it is a signal or Cur_Assign when it is a variable).
Kind : Wire_Kind;
-- Used in various algorithms: a flag on a wire. This flag must be
@@ -142,9 +144,12 @@ private
Decl : Source.Syn_Src;
-- The initial net for the wire.
+ -- This is a pseudo gate that is needed because the value of the wire
+ -- can be read before anything was assigned to it.
Gate : Net;
-- Current assignment (if there is one).
+ -- This is needed so that the current value (for variable) can be read.
Cur_Assign : Seq_Assign;
-- Chain of concurrent assigns for this wire.
@@ -158,7 +163,8 @@ private
-- Target of the assignment.
Id : Wire_Id;
- -- Assignment is the previous phi context.
+ -- Assignment in the previous phi context.
+ -- Used to restore Cur_Assign of the wire when the phi context is poped.
Prev : Seq_Assign;
-- Corresponding phi context for this wire.
@@ -183,7 +189,9 @@ private
end record;
type Phi_Type is record
+ -- Chain of sequential assignments in the current phi context (BB).
First : Seq_Assign;
+ -- Number of assignments.
Nbr : Uns32;
end record;