aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-stmts.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-09-08 20:30:20 +0200
committerTristan Gingold <tgingold@free.fr>2019-09-11 06:37:28 +0200
commit02a18caa38f94acef649f02669ec06047ff00709 (patch)
treeae197d9eb0c1170e0b19fdc0a2fa08a964b1accb /src/synth/synth-stmts.ads
parent52dcf8712d0186c5a5d38fcdeac4f8d015af281b (diff)
downloadghdl-02a18caa38f94acef649f02669ec06047ff00709.tar.gz
ghdl-02a18caa38f94acef649f02669ec06047ff00709.tar.bz2
ghdl-02a18caa38f94acef649f02669ec06047ff00709.zip
synth: introduce Seq_Context.
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;