OpenRAM icon indicating copy to clipboard operation
OpenRAM copied to clipboard

LVS mismatch for some sky130 example SRAMs

Open ubfx opened this issue 2 years ago • 4 comments

Describe the bug When compiling some ("sky130_sram_1rw_tiny", "sky130_sram_1kbyte_1rw_32x256_8", maybe others too) sky130 example srams from the "macros/sram_configs" subfolder, an LVS mismatch occurs.

Version tag v1.2.45, commit fc37bf685991b9c9281b6d2fba6376ab0afc5231

To Reproduce

  1. Install tools through conda and PDKs using the provided scripts ("install_conda.sh", "make pdk", "make install")
  2. cd macros && make sky130_sram_1rw_tiny.ok

Expected behavior Expect the LVS to conclude without mismatches, just like it works with other example configurations.

Logs

...
[2023-12-27 17:19:46.675595] [openram.verify.magic/run_lvs]: Cell pin lists for sky130_sram_1rw_tiny and sky130_sram_1rw_tiny altered to match.
[2023-12-27 17:19:46.676333] [openram.verify.magic/run_lvs]: Device classes sky130_sram_1rw_tiny and sky130_sram_1rw_tiny are equivalent.
[2023-12-27 17:19:46.677174] [openram.verify.magic/run_lvs]: 
[2023-12-27 17:19:46.677948] [openram.verify.magic/run_lvs]: Final result: Top level cell failed pin matching.
[2023-12-27 17:19:46.678774] ERROR: file magic.py: line 385: sky130_sram_1rw_tiny	LVS mismatch (results in /user/projekt_abc/OpenRAM/macros/sky130_sram_1rw_tiny/tmp/sky130_sram_1rw_tiny.lvs.report)

Complete log: sky130_sram_1rw_tiny.log

ubfx avatar Dec 27 '23 16:12 ubfx

I have the same problem in the latest stable version. When using the sky130 technology to generate sky130_sram_1rw_tiny, I got LVS mismatch reported as

Circuit 1 contains 1792 devices, Circuit 2 contains 1783 devices. *** MISMATCH ***
Circuit 1 contains 658 nets,    Circuit 2 contains 658 nets.

in .lvs.out and

NET mismatches: Class fragments follow (with fanout counts):
Circuit 1: sky130_sram_1rw_tiny_sky130_col_cap_array_0                                                                    |Circuit 2: sky130_sram_1rw_tiny_sky130_col_cap_array_0
DEVICE mismatches: Class fragments follow (with node fanout counts):
Circuit 1: sky130_sram_1rw_tiny_sky130_col_cap_array                                                                      |Circuit 2: sky130_sram_1rw_tiny_sky130_col_cap_array 
DEVICE mismatches: Class fragments follow (with node fanout counts):
Circuit 1: sky130_sram_1rw_tiny_sky130_replica_column                                                                     |Circuit 2: sky130_sram_1rw_tiny_sky130_replica_column
... 

in .lvs.report How can I fix this bug?

ShenShan123 avatar Mar 11 '25 07:03 ShenShan123

I met the same problem, how did you solve it in the end?

hwsyydw avatar Jul 14 '25 09:07 hwsyydw

I haven't found a way to fix it yet.

ShenShan123 avatar Jul 14 '25 10:07 ShenShan123

@jcirimel is yours passing?

mguthaus avatar Jul 14 '25 12:07 mguthaus