--------------------------------------------------...
# shuttle
j
--------------------------------------------------------- Update for Projects with SRAM Blocks For those using SRAM, you should be using macros included by open_pdks versus the macro used in Caravel. The SRAM macros are not included by defaults. To enable it, you need to include an option in the configure script when building the pdk:
./configure --enable-sky130-pdk=$PDK_ROOT/skywater-pdk --with-sky130-local-path=$PDK_ROOT --enable-sram-sky130
NOTE - you can leave off the paths for the skywater pdk is you want open_pdks to pull the repo and use the default location for install. From the installed macros, the first five configurations are ok to use (‘sky130_sram_*’). Do not use the last configuration. It is a legacy version used in Caravel only (‘sram_1rw1r_32_256_8_sky130’).
Copy code
This directory contains configurations for the standard SRAM configurations that are generated.

They fall into the following categories;

* Single port with byte write SRAM suitable for RISC-V and other processor main memory.

* Pseudo-dual port SRAM (one write, one read) suitable for FIFOs.

* True dual port SRAM (two read/write ports) suitable for high speed data sharing between two devices.

* Dual access SRAM (one read/write, one read port) suitable for applications which need to read two data values every cycle (such as register files).

Currently supported sizes are 1kbytes, 2kbytes and 4kbytes. Larger arrays will be supported in the future.
Precheck is being updated to identify SRAM macro (of the first five) and utilizing lef views for DRC checks which you allow you to achieve a clean result. The current lef views generate DRC errors due to min metal area for the pins. The lef views will be update to address this. I will post updates for both precheck and the macro lef views once they are updated. Please let me know if you have any questions. ---------------------------------------------------------
👍 1
m
I will update the 8kb and 16kb have less confidence in electrical correctness right now. 1kb, 2kb, 4kb are resonably verified.
z
This is taking too much time, I have 16GB RAM and process is stuck here for last 2 hours...
a
@Mariam Zanaty Please read carefully.
m
@Zeeshan Rafique that's interesting. I've never installed them that way, but it should just be copying files. I haven't looked at what the open_pdks does with them... @Tim Edwards??
If it is extracting, that takes a long time. But I provide the netlist, so I'm not sure why it would be.
t
@Matthew Guthaus: Looks like the open_pdks Makefile is renaming the netlists manually, and it has not been updated recently, so there are a couple of the macros that are missing from that list which means that open_pdks will, in fact, attempt to generate a netlist by extracting the GDS. I should be able to change that so that it doesn't require having to call out each macro name individually in the Makefile.
I just made an update to deal with the SPICE netlist problem, but I'm not sure that's what's taking so long. I peered at the process with a debugger and it seems to be mostly hung up on labels, which is a known issue. I will need to make another round of performance-optimizing code changes soon. . .
z
Yes the renaming issue is there, but by using the caravel-lite make file "make pdk", I am able to make pdk and it didn't took much time.
m
@Tim Edwards what is it doing with labels? Why is it doing anything to the lef/GDS/spice/verilog/lib?
t
@Matthew Guthaus: It's creating .mag views. I don't think I have a way to turn that behavior off right now, but it shouldn't be too hard to do that.
m
@Ke-Haur Taur @Peijun Hou Can you please check if we are using the right SRAMs
k
@mehdi We did not use the last configuration; therefore I think we are OK
1