aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-stmts.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-stmts.ads')
-rw-r--r--src/synth/synth-stmts.ads25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/synth/synth-stmts.ads b/src/synth/synth-stmts.ads
index fd15559fa..af83524b6 100644
--- a/src/synth/synth-stmts.ads
+++ b/src/synth/synth-stmts.ads
@@ -55,4 +55,29 @@ package Synth.Stmts is
function In_Range (Rng : Discrete_Range_Type; V : Int64) return Boolean;
procedure Update_Index (Rng : Discrete_Range_Type; Idx : in out Int64);
+private
+ -- Context for sequential statements.
+ type Seq_Context is record
+ Inst : Synth_Instance_Acc;
+
+ -- Control statements execution.
+ -- If True: statements are always executed.
+ -- If False: statements are not executed.
+ -- If Unknown: execution is controlled by W_En.
+ T_En : Tri_State_Type;
+
+ W_En : Wire_Id;
+
+ -- If set, condition of the next statement.
+ W_Next : Wire_Id;
+ -- If set, condition of the exit statement.
+ W_Exit : Wire_Id;
+ -- If set, condition of the return statement.
+ W_Ret : Wire_Id;
+
+ -- Return value.
+ W_Val : Wire_Id;
+
+ Ret_Value : Value_Acc;
+ end record;
end Synth.Stmts;