aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-environment.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-08-28 10:23:51 +0200
committerTristan Gingold <tgingold@free.fr>2021-08-28 13:22:31 +0200
commitb99b777af7f74a2cbc6332ff300dd7b026043b02 (patch)
tree1d6dbed773310b092ac596546d06ebe8866b0487 /src/synth/synth-environment.ads
parent25c8c64d8c079e52fb4073d88c8927e5eb3359bc (diff)
downloadghdl-b99b777af7f74a2cbc6332ff300dd7b026043b02.tar.gz
ghdl-b99b777af7f74a2cbc6332ff300dd7b026043b02.tar.bz2
ghdl-b99b777af7f74a2cbc6332ff300dd7b026043b02.zip
synth-environment: add subprograms for signals (preliminary work)
Diffstat (limited to 'src/synth/synth-environment.ads')
-rw-r--r--src/synth/synth-environment.ads17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/synth/synth-environment.ads b/src/synth/synth-environment.ads
index e06e254b2..945642821 100644
--- a/src/synth/synth-environment.ads
+++ b/src/synth/synth-environment.ads
@@ -160,6 +160,11 @@ package Synth.Environment is
Phi : Phi_Type;
Mark : Wire_Id);
+ -- Merge current Phi for an initialization. All the assignments must
+ -- be static values. May upgrade Output gates to Ioutput.
+ procedure Pop_And_Merge_Initial_Phi (Ctxt : Builders.Context_Acc;
+ Loc : Location_Type);
+
-- Handle if statement. According to SEL, the value of the wires are
-- those from T or from F.
procedure Merge_Phis (Ctxt : Builders.Context_Acc;
@@ -194,6 +199,13 @@ package Synth.Environment is
function Get_Assign_Value (Ctxt : Builders.Context_Acc; Asgn : Seq_Assign)
return Net;
+ -- Return the value from the gate.
+ function Get_Gate_Value (Wid : Wire_Id) return Net;
+
+ -- Return the current assigned value.
+ function Get_Assigned_Value (Ctxt : Builders.Context_Acc; Wid : Wire_Id)
+ return Net;
+
-- For low-level phi merge.
-- A sequential assignment is a linked list of partial assignment.
type Partial_Assign is private;
@@ -215,11 +227,6 @@ package Synth.Environment is
end case;
end record;
---
--- type Seq_Assign_Value is private;
--- No_Seq_Assign_Value : constant Seq_Assign_Value;
-
- function Get_Assign_Partial (Asgn : Seq_Assign) return Partial_Assign;
function Get_Seq_Assign_Value (Asgn : Seq_Assign) return Seq_Assign_Value;
function New_Partial_Assign (Val : Net; Offset : Uns32)