diff options
-rw-r--r-- | src/synth/netlists-inference.adb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/synth/netlists-inference.adb b/src/synth/netlists-inference.adb index 383211684..9c44b218c 100644 --- a/src/synth/netlists-inference.adb +++ b/src/synth/netlists-inference.adb @@ -747,12 +747,13 @@ package body Netlists.Inference is function Infere_Latch (Ctxt : Context_Acc; Val : Net; Prev_Val : Net; + Last_Use : Boolean; Loc : Location_Type) return Net is Name : Sname; begin -- In case of false loop, do not close the loop but assign X. - if Is_False_Loop (Prev_Val) then + if Last_Use and then Is_False_Loop (Prev_Val) then return Build_Const_X (Ctxt, Get_Width (Val)); end if; @@ -862,7 +863,7 @@ package body Netlists.Inference is Extract_Clock (Ctxt, Get_Driver (Sel), Clk, Enable); if Clk = No_Net then -- No clock -> latch or combinational loop - Res := Infere_Latch (Ctxt, Val, Prev_Val, Loc); + Res := Infere_Latch (Ctxt, Val, Prev_Val, Last_Use, Loc); else -- Clock -> FF First_Mux := Get_Net_Parent (Val); |