[Libre-soc-bugs] [Bug 502] determine SRAM block size and implement it
    bugzilla-daemon at libre-soc.org 
    bugzilla-daemon at libre-soc.org
       
    Tue Dec 22 14:31:33 GMT 2020
    
    
  
https://bugs.libre-soc.org/show_bug.cgi?id=502
--- Comment #12 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Staf Verhaegen from comment #11)
> Currently I SPBlock_512W64B8W as name of the 4K SRAM block.
ah! this was part of the missing information for the puzzle :)
> This should be
> the nmigen code to include it:
> 
>     a = Signal(9)
>     q = Signal(64)
>     d = Signal(64)
>     we = Signal(8)
>     sram = Instance("SPBlock_512W64B8W", i_a=a, o_q=q, i_d=d, i_we=we)
>     m.submodules += sram
ahh goood, perfect.  so this will not conflict with yosys detection of
Memory/arrays at all. excellent.
based on this, creating a tiny example for soclayout called experiments12
should be very easy.
> How to do the conversion to litex I don't know.
that's why i suggested doing an extremely simple example (not involving litex
at all).
i may have to create a special wishbone peripheral for this (mostly cut/paste
of the way that litex does SRAM) so as to keep it separate.
then, the standard litex "SocCore.add_sram()" litex function will create Memory
(which yosys turns to DFF), the special peripheral creates the 
SPBlock_512W64B8W instance.
> Using this should allow to generate Verilog netlist that instantiates the
> SRAM blocks.
fanntastic.
to complete a "make lvx", on the tiny example, will a special (new) Cell
Library be needed, one that contains one item: SPBlock_512W64B8W?
or, is there something else going on?
-- 
You are receiving this mail because:
You are on the CC list for the bug.
    
    
More information about the libre-soc-bugs
mailing list