aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/netlists-builders.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-05-06 08:19:53 +0200
committerTristan Gingold <tgingold@free.fr>2020-05-06 08:19:53 +0200
commitcb5690c37d52124316603f868fb165d15a5e0c8c (patch)
tree362aabed3a4510f255a496d5acc930ce18d23225 /src/synth/netlists-builders.adb
parent40531a6c96296ee03a062956673049082527c6bf (diff)
downloadghdl-cb5690c37d52124316603f868fb165d15a5e0c8c.tar.gz
ghdl-cb5690c37d52124316603f868fb165d15a5e0c8c.tar.bz2
ghdl-cb5690c37d52124316603f868fb165d15a5e0c8c.zip
synth: add Id_Enable gate (for sequential assertions).
Diffstat (limited to 'src/synth/netlists-builders.adb')
-rw-r--r--src/synth/netlists-builders.adb17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/synth/netlists-builders.adb b/src/synth/netlists-builders.adb
index bd8423dac..34ba4a3f1 100644
--- a/src/synth/netlists-builders.adb
+++ b/src/synth/netlists-builders.adb
@@ -470,6 +470,12 @@ package body Netlists.Builders is
Id_Nop, 1, 1, 0);
Set_Ports_Desc (Ctxt.M_Nop, Inputs2 (0 .. 0), Outputs);
+ Ctxt.M_Enable := New_User_Module
+ (Ctxt.Design,
+ New_Sname_Artificial (Get_Identifier ("enable"), No_Sname),
+ Id_Enable, 1, 1, 0);
+ Set_Ports_Desc (Ctxt.M_Enable, Inputs2 (0 .. 0), Outputs);
+
Ctxt.M_Inout := New_User_Module
(Ctxt.Design, New_Sname_Artificial (Name_Inout, No_Sname),
Id_Inout, 1, 2, 0);
@@ -1398,6 +1404,17 @@ package body Netlists.Builders is
return O;
end Build_Nop;
+ function Build_Enable (Ctxt : Context_Acc) return Net
+ is
+ Inst : Instance;
+ O : Net;
+ begin
+ Inst := New_Internal_Instance (Ctxt, Ctxt.M_Enable);
+ O := Get_Output (Inst, 0);
+ Set_Width (O, 1);
+ return O;
+ end Build_Enable;
+
function Build_Dff (Ctxt : Context_Acc;
Clk : Net;
D : Net) return Net