4kbyte passed 20 cycles of simulation (it took 36+...
# openram
m
4kbyte passed 20 cycles of simulation (it took 36+ hours!)
🎯 1
πŸŽ‰ 1
πŸ‘Œ 1
🀩 1
❀️ 1
πŸ‘ 5
t
Cool... I've just cloned the latest sky130_sram_macros and noticed that the bitcell (sky130_fd_bd_sram_openram_dp_cell) spice netlist for sky130_sram_1kbyte_1rw1r_32x256_8 now 16 devices. Previous cloned, few days ago, this bit cell was 12 devices πŸ™‚, the spice netlist has fewer devices than the gdsII. Thank you.
m
Which spice netlist, .sp or .lvs.sp? There are parasitic devices which get treated differently during lvs and simulation. These SRAMs pass LVS.
The bitcell hasn't changed in a LONG time either...
t
I've noticed there are .sp and .lvs.sp files. The .sp file was only 12 transistors while the .lvs.sp was 16 devices. I guess the .lvs.sp is to run lvs against the .spice generated from magic, so LVS was clean? Sorry if i interpreted this wrongly. I haven't finished reading the OpenRam docs. This is just my guess based on the script πŸ™‚. Please kindly see bellow screenshot. I still keep the previous cloned. And I only see this on the the 1kbye 32x256 configuration. The 1kbyte 8x1024 netlist was 16 devices. I guess there must be some changes in the latest run for the 32x256 config since the NEW .sp netlist now changed to 16 devices.
m
Yes, the lvs.sp is for LVS.
The same bitcell is used for all the SRAMs so I'm not sure why they are different...
t
Yes, i actually did check that the same bitcell is used for all the SRAMs (in gdsII). However, only the bitcell in .sp file for configuration 1kbyte 32x256 was different (12 devices like i mentioned). It's 16 devices now. However, I'd like to ask how this .sp netlist got generated? Is it from the OpenRam engine? I'm guessing, the .sp and .lvs.sp are generated by the engine along with the .gds? That's why at the end we need to run LVS. Then I guess there has been some changes in the engine (script or template) in the latest run.
m
Yes, the .sp, .lvs.sp and .gds are all generated by openram. I see it as 12 devices in both the .lvs.sp and .sp. The difference is the scaling of parameters. Note that some of the parasitic devices are commented out with *.
If not, do you have the commit of the older version?
With calibre, it extracted the parasitic devices differently, so if you were comparing with sram_1rw1r_32_256_8, it will be different
t
I'm sorry. I don't have the commit of the older version since it delete whole and cloned a new one today. I still have a copy of the 1kbyte 32x256 which I copied to a runs directory for running funtional stimuli πŸ™‚.
m
Yeah, I think you missed some comments at the beginning of the lines
Those extra 4 devices are commented out
I don't see any version with 16 devices
t
Sorry i don't see the comments in my config. I'm pasting below the .subckt for the bitcell. This .subckt is now same in all configs and in both .sp and .lvs.sp files. In my previous commit, this .subckt was the screenshot that I attached earlier in this conversation. I'm not quite sure this is called "16 devices" or not? Since I'm not familiar with this layout. I'm learning from this πŸ™‚. Since in layout, some devices are just like half a device.
m
Again, which commit is this?
and which macro? sram_?
Those are the parasitic devices. You can see that the W and L are less than 0.15. They also are typically only a drain or source. It's possible that this was in a very old macro (like the sram_ one) but I don't see it.
t
Yes, I've noticed the W and L are less than 0.15. I'm just about to ask. Sorry if i'm looking at an old commit? This is in sram_1kbyte_1rw1r_32X256_8. I just did "git clone https://github.com/efabless/sky130_sram_macros" yesterday. Do i need to do anything to get the latest commit? Thank you.
m
Yes, that is the mpw-one version that was designed with Calibre. It extracted all of the parasitic devices. Magic does not.
Don't use that version
t
πŸ™‚ I'm so sorry for this πŸ™‚. I'm quite new with this Skywater. And just read from this slack channel and think that's the place where i can get the macro. Could you please point me to the new version?
Regarding Magic, FYI, i did try using magic reading in the gdsII of the sky130_sram_1rw1r_32x256_8.gds an extract and ext2spice. The out put netlist was 16 devices too.
m
The macros are here:
Sorry, I misspoke, the extracted netlists do seem to have 16 devices. I haven't visited this in a long time: https://raw.githubusercontent.com/efabless/sky130_sram_macros/main/sky130_sram_1kbyte_1rw1r_32x256_8/sky130_sram_1kbyte_1rw1r_32x256_8.lvs.sp This matches the extracted netlist.