https://open-source-silicon.dev logo
#sky130
Title
# sky130
m

Matthew Guthaus

12/14/2021, 10:36 PM
I've been able to improve the litho simulation of the SRAM cells. My initial results were not actually aerial intensity and resist. They were actually just an smoothing of the mask from one of their papers. This is actually modeling the light and resist of the dual port bitcell:
❤️ 3
m

Matt Liberty

12/14/2021, 11:01 PM
Could you summarize the process to produce these results?
m

Matthew Guthaus

12/14/2021, 11:03 PM
Not right now!
m

Matt Liberty

12/14/2021, 11:03 PM
No rush, just interested
I agree it is pretty cool!
m

Matthew Guthaus

12/14/2021, 11:04 PM
Eventually, I will. I'm still getting some unexpected results. The layout with OPC is worse than the layout without OPC, for one!
The mirroring is wrong on that one too. It assumes that the same cell is tiled like that, but in reality, it is flipped in X and Y each row/column
This one is with the single port bitcell with surrounding cells to get rid of that problem. I've also played with the focus and dose to see how it affects the printing. This shows the mask, aerial image, resist exposed and an "error plot" of the difference between the resist and mask.
I see almost no difference between the two focuses
sky130_bitcell_array_opc_poly_f-50_d1.png
m

Matt Liberty

12/14/2021, 11:11 PM
how long does it take to generate a result like that?
m

Matthew Guthaus

12/14/2021, 11:12 PM
A few seconds since it is pretty small
If I had a bigger array, it ran out of memory during the SVD computation
I think that the pyfftw library uses some multithreading. I see ~12 threads fire up. I was suspecting that might be related to the memory usage, but I just shrunk the example instead. (And those likely shared the same memory image)
The biggest challenge was getting the scale right. The original GDS parser ignored the gds scaling. Then there is a "pixelization" step in the litho tool. Together, I think there was a bug in the original code where sizes were actually off 10x...
a

Amro Tork

12/15/2021, 6:06 AM
@User That looks great. Which tool you use for doing Lithography simulation?
m

Matthew Guthaus

12/15/2021, 6:22 AM
@User Dimmiolitho with plenty of patches
❤️ 1
💯 1
a

Amro Tork

12/15/2021, 7:37 AM
Thanks @User
💯 1
Could you please share a link?
m

Matthew Guthaus

12/15/2021, 2:19 PM
https://github.com/mguthaus/DimmiLitho But not all the changes are there yet
a

Amro Tork

12/15/2021, 5:27 PM
@User Does that simulate the proper lighting?
m

Matthew Guthaus

12/15/2021, 5:27 PM
@User what do you mean "proper"?
a

Amro Tork

12/15/2021, 5:28 PM
I mean we don't know which lighting system is used by skywaters in there Litho process
Wavelength and configuration
I would assume it's 192 nm
But for the configuration I don't know
@User Any chance you could push the updates to a public repo?
m

Matthew Guthaus

12/15/2021, 5:29 PM
That is all configurable. I'm not sure about some of the parameters for the resist and lens for example. Yes, it's 192nm.
I'll push when it's working. It's in flux right now.
a

Amro Tork

12/15/2021, 5:29 PM
Thanks @User
m

Matthew Guthaus

12/15/2021, 5:30 PM
That repo is public already
a

Amro Tork

12/15/2021, 5:30 PM
No but I mean your changes. Yours looks nicer
m

Matthew Guthaus

12/15/2021, 5:31 PM
ah, yeah. I had to write a new top-level script. DimmiLitho is more of a set of tools for inverse lithography but we're just using the simulation stuff
a

Amro Tork

12/15/2021, 5:31 PM
Do we also know if Skywaters apply OPC or any kind of RET ?
m

Matthew Guthaus

12/15/2021, 5:31 PM
I also had to write a script to use the add/drop OPC layers from Skywater
It's already in the SRAM cells
a

Amro Tork

12/15/2021, 5:31 PM
Nice
Thanks Dr. @User
We might need to apply that for all other designs to improve yield
Not just SRAM
m

Matthew Guthaus

12/15/2021, 5:34 PM
We don't have bit masks though so the ILT approach doesn't work. There would need to be some other way of generating the OPC