[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