How to bind a proprietary SRAM compiler #856
-
I want to invoke a memory compiler with the hammer. I have read https://chipyard.readthedocs.io/en/stable/Tools/Barstools.html#mapping-technology-srams-macrocompiler but it is vague to me. I noticed the I also noticed some json files such as https://github.com/ucb-bar/hammer/blob/8fd1486499b875d56f09b060f03a62775f0a6aa7/src/hammer-vlsi/technology/nangate45/sram-cache.json . Do I also need to provide this either? How is it related to the SRAM compiler program? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Hi, I gave a pretty detailed explanation of how to write the Please see if you can understand this and feel free to ask any up follow-up questions. |
Beta Was this translation helpful? Give feedback.
Ah. I think clarification on the distinction between the barstools MacroCompiler and Hammer's SRAMGenerator is necessary. It is a 2-step flow.
Step 1: MacroCompiler takes the memories required by Chisel (
SyncReadMem
instances in those .sv files you mention) and reads in a SRAMMacro or SRAMGroup description of available memories (the json files provided in the plugin) in order to replace them with instances of memories provided in the technology (transforms the.sv
files and adds a<config>.top.mems.v
file). It also emits a json file in Hammer IR format (<config>.mems.hammer.json
) that is used in the next step. Chisel elaboration (generatinggenerated-src
) is not SRAM compiler aware, hence…