diff options
| -rw-r--r-- | src/synth/netlists-inference.adb | 2 | ||||
| -rw-r--r-- | src/synth/netlists-memories.adb | 9 | ||||
| -rw-r--r-- | src/synth/netlists-memories.ads | 5 | 
3 files changed, 9 insertions, 7 deletions
| diff --git a/src/synth/netlists-inference.adb b/src/synth/netlists-inference.adb index 91e095211..d2a749968 100644 --- a/src/synth/netlists-inference.adb +++ b/src/synth/netlists-inference.adb @@ -340,7 +340,7 @@ package body Netlists.Inference is          and then Can_Infere_RAM (Data, Prev_Val)        then           --  Maybe it is a RAM. -         Res := Infere_RAM (Ctxt, Data, Clk, Clk_Enable); +         Res := Infere_RAM (Ctxt, Data, Els, Clk, Clk_Enable);        else           if Clk_Enable /= No_Net then              --  If there is a condition with the clock, that's an enable which diff --git a/src/synth/netlists-memories.adb b/src/synth/netlists-memories.adb index 233a4e49b..62025eb61 100644 --- a/src/synth/netlists-memories.adb +++ b/src/synth/netlists-memories.adb @@ -2316,19 +2316,20 @@ package body Netlists.Memories is        Head := Res;     end Reduce_Muxes_Mux2; -   function Infere_RAM (Ctxt : Context_Acc; Val : Net; Clk : Net; En : Net) -                        return Net +   function Infere_RAM +     (Ctxt : Context_Acc; Val : Net; Tail : Net; Clk : Net; En : Net) +      return Net     is        pragma Assert (Clk /= No_Net);        --  pragma Assert (not Is_Connected (Val)); -      Tail : Instance; +      New_Tail : Instance;        Res : Instance;     begin        --  From VAL, move all the muxes to the dyn_insert.  The dyn_insert may        --  be transformed to dyn_insert_en.        --  At the end, the loop is linear and without muxes.        --  Return the new head. -      Reduce_Muxes (Ctxt, Clk, En, Val, No_Net, Res, Tail); +      Reduce_Muxes (Ctxt, Clk, En, Val, Tail, Res, New_Tail);        return Get_Output (Res, 0);     end Infere_RAM; diff --git a/src/synth/netlists-memories.ads b/src/synth/netlists-memories.ads index b005996d6..efc25f9e9 100644 --- a/src/synth/netlists-memories.ads +++ b/src/synth/netlists-memories.ads @@ -33,6 +33,7 @@ package Netlists.Memories is     function Can_Infere_RAM (Val : Net; Prev_Val : Net) return Boolean;     --  Transform VAL to a RAM. -   function Infere_RAM (Ctxt : Context_Acc; Val : Net; Clk : Net; En : Net) -                        return Net; +   function Infere_RAM +     (Ctxt : Context_Acc; Val : Net; Tail : Net; Clk : Net; En : Net) +      return Net;  end Netlists.Memories; | 
