Commit Graph

5 Commits

Author SHA1 Message Date
Jean-Paul Chaput 1253eeeef4 Allow the user to choose the name of the SRAM. Placement fix.
* Change: In cumulus/plugins.sram.sram_256x32, add a new parameter to
    __init__() so the user can choose the model name of the generated
    SRAM.
* Change: In cumulus/plugins.sram.sram.BaseSRAM.placeInstance(),
    placement status must be FIXED instead of PLACED so the placer do
    not "unplace" them.
      The Cell.updatePlacedFlag() method must also be called once
    the model if fully built.
2022-10-30 10:36:52 +01:00
Jean-Paul Chaput 60c8bfe75e Remove reference to Foehn in SRAM generator (unpublished tool yet). 2022-10-26 16:32:00 +02:00
Jean-Paul Chaput 9594476ab6 Improved SRAM output multiplexer, using NAND/NOR.
* New: In cumulus/plugins/sram_256x32.py, build the output mux using a
    NAND2/NOR2 binary tree instead of mux2/mux3. Use more, but much
    smaller cells. The reduction of wirelength (from Yosys) goes
    from 4% to 15% for the non-folded variant.
      Uses a specially placed tree to minimize wire length.
* New: In cumulus/plugins/sram.py, extend StdCellConf to convert names
    accross library flavors (FlexLib_TSMC_C180, FlexLib_Sky130 and
    generic SxLib).
2022-10-17 17:18:49 +02:00
Jean-Paul Chaput d294a770c4 Added Standard Cells based SRAM generator (Python).
The generator as been build in two parts:
1. A genereric sram.BaseSRAM class to provides support for all kind of
   SRAM (grouping column tree, headers, folding).
2. The specific SRAM_256x32 (256 words of 32 bits) suited for the
   ethmac.
The sram has been simulated with genpat+asimut and gives identical
results to the Yosys one (at gate level). No timing though.
2022-10-14 10:12:03 +02:00
Jean-Paul Chaput 757284896c Remove extra debug messages in PythonAttributes. 2022-10-13 10:54:11 +02:00