diff options
author | Tristan Gingold <tgingold@free.fr> | 2019-09-08 20:30:20 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2019-09-11 06:37:28 +0200 |
commit | 02a18caa38f94acef649f02669ec06047ff00709 (patch) | |
tree | ae197d9eb0c1170e0b19fdc0a2fa08a964b1accb /src/synth/synth-stmts.ads | |
parent | 52dcf8712d0186c5a5d38fcdeac4f8d015af281b (diff) | |
download | ghdl-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.ads | 25 |
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; |