Closed zpzhu99 closed 8 months ago
Have a same problem. Config:
``num_banks=2 word_size = 32 num_words = 8192 write_size = 8
local_array_size = 32
num_rw_ports = 2 num_r_ports = 0 num_w_ports = 0
tech_name = "sky130"
process_corners = [ "TT" ] supply_voltages = [ 1.8 ] temperatures = [ 25 ]
drc_name = "magic" lvs_name = "netgen" pex_name = "magic"
output_name = "{0}sram{1}rw{2}r{3}w{4}{5}".format(tech_name, num_rw_ports, num_r_ports, num_w_ports, word_size, num_words) output_path = "{}".format(output_name) verbose_level = 1 ``
Confirmed (using the first config above) that there is still the same failure at v1.2.6:
|==============================================================================|
|========= OpenRAM v1.2.6 =========|
|========= =========|
|========= 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 =========|
|========= See LICENSE for license info =========|
|==============================================================================|
** Start: 04/04/2023 14:51:59
Technology: sky130
Total size: 8192 bits
Word size: 32
Words: 256
Banks: 1
Write size: 8
RW ports: 0
R-only ports: 1
W-only ports: 1
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).
Only generating nominal corner timing.
Words per row: None
Output files are:
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.lvs
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.sp
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.v
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.lib
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.py
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.html
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.log
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.lef
/home/jamesb/OpenRAM/temp/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8/sky130_esp_aux_dual_sram_1kbytes_1r1w_32x256_8.gds
** Submodules: 4.3 seconds
** Placement: 0.0 seconds
**** Retrieving pins: 0.0 seconds
**** Analyzing pins: 0.0 seconds
**** Finding blockages: 2.1 seconds
**** Converting blockages: 0.2 seconds
**** Converting pins: 0.2 seconds
**** Separating adjacent pins: 0.0 seconds
*** Finding pins and blockages: 26.4 seconds
*** Maze routing pins: 116.4 seconds
**** Retrieving pins: 0.0 seconds
**** Analyzing pins: 0.2 seconds
**** Finding blockages: 10.5 seconds
**** Converting blockages: 0.4 seconds
**** Converting pins: 7.9 seconds
**** Separating adjacent pins: 43.3 seconds
*** Finding pins and blockages: 118.1 seconds
ERROR: file router.py: line 702: No pins overlapped the tracks.
Remove write_size = 8
and the compilation succeeds.
Second case takes a really long time, but ends with:
[openram.router.supply_tree_router/route_pins]: Routing gnd with 123 pins.
[openram.router.supply_tree_router/route_pins]: 0 supply segments routed, 122 remaining.
[openram.router.supply_tree_router/route_pins]: 25 supply segments routed, 97 remaining.
ERROR: file router.py: line 702: No pins overlapped the tracks.
Hi James,
We met at latch up, right?
Classes are just getting started and this is probably not a simple fix so we will try to get to it soon...
We have implemented a new router from scratch that might have fixed this issue. Could you all try running these again?
Hi, @erendn Ok, I will try run it.
First configuration - all ok, w/o error. P.S.: I apologize for the delay, the electricity was turned off at night, nothing was saved. I had to restart when I was at home.
|==============================================================================|
|========= OpenRAM v1.2.40 =========|
|========= =========|
|========= 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 =========|
|========= See LICENSE for license info =========|
|==============================================================================|
** Start: 10/16/2023 08:36:45
Technology: sky130
Total size: 8192 bits
Word size: 32
Words: 256
Banks: 1
Write size: 8
RW ports: 0
R-only ports: 1
W-only ports: 1
DRC/LVS/PEX is only run on the top-level design to save run-time (inline_lvsdrc=True to do inline checking).
Characterization is disabled (using analytical delay models) (analytical_delay=False to simulate).
Only generating nominal corner timing.
Words per row: None
Output files are:
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.lvs
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.sp
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.v
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.lib
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.py
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.html
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.log
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.lef
/home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.gds
** Submodules: 19.5 seconds
** Placement: 0.0 seconds
** Routing: 1010.7 seconds
** Verification: 11244.9 seconds
** SRAM creation: 12275.2 seconds
SP: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.sp
** Spice writing: 0.1 seconds
DELAY: Writing stimulus...
** DELAY: 0.6 seconds
GDS: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.gds
** GDS: 0.5 seconds
LEF: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.lef
** LEF: 0.0 seconds
LVS: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.lvs.sp
** LVS writing: 0.1 seconds
LIB: Characterizing...
WARNING: file elmore.py: line 45: In analytical mode, all ports have the timing of the first read port.
** Characterization: 1.0 seconds
Config: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.py
** Config: 0.0 seconds
Datasheet: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.html
** Datasheet: 0.0 seconds
Verilog: Writing to /home/andreil/ASIC/ram_ex/macro/sky130_sram_1kbytes_1r1w_32x256_8/sky130_sram_1kbytes_1r1w_32x256_8.v
** Verilog: 0.0 seconds
** End: 12277.6 seconds
This issue seems to be fixed.
Describe the bug A clear and concise description of what the bug is. I am generating a dual port (1r1w) SRAM with sky130 pdk. An error saying "ERROR: file router.py: line 702: No pins overlapped the tracks" happens after "Finding pins and blockages: 245.5 seconds". The same error won't occur for a single port SRAM. What could have caused the problem? Thanks!
Version Which commit are you using? V1.2.1 31d2d7145b7714e3d1624aba50e9c2cce715adf7
To Reproduce What did you do to demonstrate the bug? Please include your configuration file used.
I have two configuration files for the SRAM, similar to the given macros for sky130 SRAMs.
Expected behavior
Logs If applicable, add logs or output to help explain your problem.
Additional context Add any other context about the problem here.