Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Problems with GDSII stream out from innovus and stream in to virtuoso

Status
Not open for further replies.

yuexplore

Newbie level 4
Joined
Dec 17, 2022
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
61
I have an assignment using ASAP7 as library. When I steam out the GDSII from innovus and stream in to virtuoso. I found that all of cells are scaled down 4x, while power rings and other wires keep same as layout in innovus. I can make the cell back to normal size when streaming in by setting a scale to 0.25, but VIAs are enlarged simultaneously, so it seems not an ideal solution. Anyone knew what cause the problem and how to resolve it?

I use following command to stream out ( I tried to modify the units to 1000 or other, but it didn't make any changes)
streamOut ${DESIGN_NAME}.gds -merge /home/class/ee5323ta/Calibre_Tutorial/GDS/*gds -mapFile /home/class/ee5323ta/Calibre_Tutorial/asap7_fromAPR.layermap -libName DesignName -structureName test_circuit_inv_h2 -units 4000 -mode ALL
 

Look at your DBU per UU at both ends. That's probably
where the discrepancy hides. You might try a third party
tool as a tie-breaker; I like klayout. It should show you
what the GDSII has, and isn't going to assign different
DBU/UU scaling by layers or hierarchy.

I don't know from Innovus. But I do know that it is
possible to call out different "spot size" in mask fab
and you might see whether Innovus might comprehend
this; I have never noticed it in Cadence stream-out (which
I always just use the GUI for) or stream-in, only a single
setting.
 

Look at your DBU per UU at both ends. That's probably
where the discrepancy hides. You might try a third party
tool as a tie-breaker; I like klayout. It should show you
what the GDSII has, and isn't going to assign different
DBU/UU scaling by layers or hierarchy.

I don't know from Innovus. But I do know that it is
possible to call out different "spot size" in mask fab
and you might see whether Innovus might comprehend
this; I have never noticed it in Cadence stream-out (which
I always just use the GUI for) or stream-in, only a single
setting.
Yeah, my guess was same as yours. But just can't fix it even if I have tried some possibilities and read the manual again and again. Felt trapped. Maybe need someone familiar with Innovus and Virtuoso to help me out. Thank you anyway
 

My new discovery:
I found in the layout generated from innovus, the standard cells are enlarged by 4X. I will try to fix it from this point
 

there is a reason the cells are 4x in innovus. when asap7 was created, advanced nodes required an special innovus license. so the developers made it all 4x jsut to pretend the cells are not 7nm.

there is nothing to fix, it is what it is.
 
there is a reason the cells are 4x in innovus. when asap7 was created, advanced nodes required an special innovus license. so the developers made it all 4x jsut to pretend the cells are not 7nm.

there is nothing to fix, it is what it is.
But it incurred that when the gds was streamed to virtuoso, all layouts was messed up. Some components are scaled down while some parts keep same. I think maybe we can change dbUnits to 4000 when doing layout , but don’t know how to do it.
 

probably you are pointing out to the wrong gds file for the std cells, meaning that in innovus they are 4x but exported as 1x. check your streamOut -merge cell.gds command. make sure cell.gds is in the same scale as the design is done at.
 

probably you are pointing out to the wrong gds file for the std cells, meaning that in innovus they are 4x but exported as 1x. check your streamOut -merge cell.gds command. make sure cell.gds is in the same scale as the design is done at.
Yes, you are correct, the design was done at dbunit=1000 but merge with library dbUnit =4000. So do you know how to change the design to dbUnit=4000?
 


Solution
option 1, guaranteed to work: You can stream out without the cell.gds file, load the output of that into calibredrv and shrink it by 0.25. then merge with the cell gds.
option 2, may work: use streamOut -units to try to find a configuration that works for cells and wires/vias.
option 3, will work: use a scaled gds. see here: https://github.com/Centre-for-Hardware-Security/asap7_reference_design/tree/main/gds
Thank you for your suggestions.

Finally, I found that when I streamed in the gds layout to virtuoso with default setting except for setting a scale 0.25, it will overwrite all stand cells used and shrink them to 0.25x. So I chose not to overwrite cells when their name is same and then get the layout looks same as in innovus.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top