Hello all, I am trying to generate 32x1024 SRAM b...
# openram
s
Hello all, I am trying to generate 32x1024 SRAM but facing some issue of Overflow. Any hints on how to proceed? |==============================================================================| |========= OpenRAM v1.1.19 =========| |========= =========| |========= VLSI Design and Automation Lab =========| |========= Computer Science and Engineering Department =========| |========= University of California Santa Cruz =========| |========= =========| |========= Usage help: openram-user-group@ucsc.edu =========| |========= Development help: openram-dev-group@ucsc.edu =========| |========= Temp dir: /tmp/openram_lifam_10345_temp/ =========| |========= See LICENSE for license info =========| |==============================================================================| ** Start: 12/28/2021 004329 Technology: sky130A Total size: 32768 bits Word size: 32 Words: 1024 Banks: 1 Write size: None RW ports: 1 R-only ports: 0 W-only ports: 0 DRC/LVS/PEX is only run on the top-level design to save run-time (inline_lvsdrc=True to do inline checking). DRC/LVS/PEX is disabled (check_lvsdrc=True to enable). Characterization is disabled (using analytical delay models) (analytical_delay=False to simulate). Words per row: 8 Output files are: /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.lvs /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.sp /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.v /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.lib /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.py /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.html /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.log /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.lef /home/lifam/Documents/shivani/SRAM_SKY130/temp/sram_32_1024_sky130A.gds ** Submodules: 12.9 seconds ** Placement: 0.0 seconds ** Retrieving pins: 0.0 seconds ** Analyzing pins: 0.0 seconds ** Finding blockages: 3.9 seconds ** Converting blockages: 0.2 seconds WARNING: file pin_group.py: line 656: Expanding conversion (addr0[3] layer=m3 ll=v[-12.89,155.48] ur=v[-12.370000000000001,156.0]) ** Converting pins: 0.2 seconds ** Separating adjacent pins: 0.0 seconds ** Enclosing pins: 0.0 seconds * Finding pins and blockages: 54.5 seconds * Maze routing pins: 112.2 seconds ** Retrieving pins: 0.1 seconds ** Analyzing pins: 8.0 seconds ** Finding blockages: 8.3 seconds ** Converting blockages: 0.1 seconds ** Converting pins: 3.3 seconds ** Separating adjacent pins: 5.7 seconds ** Enclosing pins: 8.6 seconds * Finding pins and blockages: 90.5 seconds Traceback (most recent call last): File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/openram.py", line 78, in <module> name=OPTS.output_name) File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/sram/sram.py", line 50, in init self.s.create_layout() File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/sram/sram_base.py", line 216, in create_layout self.route_layout() File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/sram/sram_1bank.py", line 363, in route_layout self.route_supplies(pre_bbox) File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/sram/sram_base.py", line 265, in route_supplies rtr.route() File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/router/supply_tree_router.py", line 81, in route self.route_pins(vdd_name) File "/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler/router/supply_tree_router.py", line 124, in route_pins dist = int(grid_utils.distance_set(list(pg1.grids)[0], pg2.grids)) OverflowError: cannot convert float infinity to integer.
m
This is quite a big memory and will need some verification to know that it can work after you get it compiling. Can you share what commit of of OpenRAM you are using?
Also, your config file would be useful to replicate it.
s
I didn't get you what you want me to share?
m
Your openram config file and the commit ID from git of the version that you are using.
s
config.py
m
The tech name should be sky130, not sky130A.
s
I am working locally so from where should I give the commit ID?
ok will update the tech name
m
Go to the openram directory and type "git log" and send the first hash
s
ok
commit ID: f66aac3264598eeae31225c62b6a4af52412d407
m
Try using the dev branch instead: git checkout dev We need to push some changes to the main branch.
s
ok
tech name: sky130 -> module not found error. I guess sky130A will work. will try now the dev branch
now in the dev branch tech name sky130A is not recognized. but with sky130 other paths will go mismatch.
m
I'm not sure what your setup is then because it is sky130 in OpenRAM. Can you elaborate on what you do to replicate this?
s
like the original PDK setup it is like open_pdks/sky130/sky130A so I think it is recongnizing sky130A and when I git cloned the main branch of OpenRAM sky130 didn't work, but sky130A worked well just there was an Overflow error
but the dev branch is not recognizing sky130A.
m
This is in reference to the OpenRAM technology directory in $OPENRAM_TECH. It is different than the skywater PDK.
What do you have set for OPENRAM_HOME and OPENRAM_TECH?
s
i have sky130A inside technology directory. should I rename it to sky130?
export OPENRAM_HOME="/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/compiler" export OPENRAM_TECH="/home/lifam/Documents/shivani/SRAM_SKY130/OpenRAM/technology"
m
Did you run "make install"? I'm really confused why it would recognize sky130A as a technology...
This would be a subdirectory in OPENRAM_TECH when it shouldn't
How did you get a sky130A directory?
s
I am using his repo https://github.com/ShonTaware/SRAM_SKY130/tree/d85dff38f6efa7e9e0767401b1d2d87146315b25 and now I tried everything with sky130 as directory but I got a pin mismatch error.
Now I am trying to install using https://github.com/VLSIDA/OpenRAM But after installation when I do make install, it gives me error am I doing anything wrong ?
m
I won't be able to help debug this, sorry. I don't have time for a while...
The OpenRAM error seems to be that the Makefile couldn't create that directory?
s
yes
m
Is there a permissions problem? You can also turn on echoing of that command to debug
I realized why this isn't working. The install target assumes that the skywater PDK is already downloaded in PDK_ROOT. You need to run make all if it is not.
s
ok thank you.
m
@User I pushed a few changes to dev that should address this. If you don't have the PDK installed for OpenLane, it will ask you to run "make pdk" first
s
ok sir. thank you.
t
@User Just a quick comment. I think the reference to sky130A comes from the default Makefile entry: line 29: OPEN_PDKS ?= $(PDK_ROOT)/sky130A I generated custom SRAMs with it (after running make install 😉 ) for my design and I was wondering if we should/could change this. Regards, Tobias
m
@User I was trying to be compatible with where OpenLane expects the open pdk. What are you suggesting to change it to?
@User it looks like you picked up my fixes to the above?