diff options
-rw-r--r-- | src/synth/include/synth_gates.h | 2 | ||||
-rw-r--r-- | src/synth/netlists-disp_verilog.adb | 4 | ||||
-rw-r--r-- | src/synth/netlists-disp_vhdl.adb | 5 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/synth/include/synth_gates.h b/src/synth/include/synth_gates.h index 78e4a6ef9..20b16ec9b 100644 --- a/src/synth/include/synth_gates.h +++ b/src/synth/include/synth_gates.h @@ -69,7 +69,7 @@ enum Module_Id { Id_Iadff = 67, Id_Mdff = 68, Id_Midff = 69, - Id_Latch = 70, + Id_Dlatch = 70, Id_Tri = 72, Id_Resolver = 73, Id_Utrunc = 82, diff --git a/src/synth/netlists-disp_verilog.adb b/src/synth/netlists-disp_verilog.adb index 6bbd87aa3..133959e5f 100644 --- a/src/synth/netlists-disp_verilog.adb +++ b/src/synth/netlists-disp_verilog.adb @@ -941,6 +941,9 @@ package body Netlists.Disp_Verilog is Disp_Template (" initial" & NL & " \o0 = \i2;" & NL, Inst); end if; + when Id_Dlatch => + Disp_Template (" always @(\i1)" & NL & + " \o0 <= \i0;" & NL, Inst); when Id_Mux2 => Disp_Template (" assign \o0 = \i0 ? \i2 : \i1;" & NL, Inst); when Id_Mux4 => @@ -1199,6 +1202,7 @@ package body Netlists.Disp_Verilog is | Id_Idff | Id_Adff | Id_Iadff + | Id_Dlatch | Id_Isignal => -- As expected Put (" reg "); diff --git a/src/synth/netlists-disp_vhdl.adb b/src/synth/netlists-disp_vhdl.adb index 0b2eb9110..82f8abfc7 100644 --- a/src/synth/netlists-disp_vhdl.adb +++ b/src/synth/netlists-disp_vhdl.adb @@ -1056,7 +1056,10 @@ package body Netlists.Disp_Vhdl is " if \ei0 then" & NL & " \o0 <= \i1;" & NL & " end if;" & NL & - " end process;" & NL, Inst); + " end process;" & NL, Inst); + when Id_Dlatch => + Disp_Template + (" \o0 <= \i0 when \fi1 = '1' else \o0;" & NL, Inst); when Id_Mux2 => Disp_Template (" \o0 <= \i1 when \fi0 = '0' else \i2;" & NL, Inst); |