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.

Issues with GDSII import

adnan_zaman

Newbie
Joined
Aug 8, 2018
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
268
Hello Everyone,

I have a P&R layout that I have created using IC compiler with the SAED EDK90nm design kit. Then I made a GDSII file from it and tried to import it both in cadence virtuoso and synopsys custom designer. First, I have created a library and attached it to the technology library SAED_PDK_90 (it contains different layer information). While streaming in the GDSII, i have used saed_pdk90_layer.map file found in the design kit. In my Layout, there are different cells like, "A022X1", "INVX0" etc. But, after streaming in when I open the layout in virtuoso/custom designer, It only shows the metal layers and vias, it doesn't show the cells. The warning I see is, "WARNING (XSTRM-267): The referenced cell "AO22X1" was not found. The OpenAccess design data was created for this cell without any reference. Ensure that the referenced cell exists and library is defined in the cds.lib file." I found similar message in custom designer.

Now, my question is, why the cells don't show up as cells? Do I need to include/attach any other libraries/technology files?

Any kind of help will be greatly appreciated.

Thanks in advance.
 

oratie

Full Member level 6
Joined
Jan 10, 2007
Messages
348
Helped
176
Reputation
350
Reaction score
169
Trophy points
1,323
Activity points
3,696
Is it possible, that you did not streamout all levels of hierarchy? I remember, that the command in ICC have such options. Check the man for this command.
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,178
Helped
382
Reputation
764
Reaction score
396
Trophy points
83
Activity points
11,128
Is it possible, that you did not streamout all levels of hierarchy? I remember, that the command in ICC have such options. Check the man for this command.

It is not about hierarchy.

Physical synthesis doesn't have/need any information about the full layout of the cells, it only needs to know the abstract view. So it doesn't know how to export it in the first place. When you export the gds, you have to point to the standard cell gds file, then the tool will merge the two of them into one.

Now, because this is an academic library, I am not certain there is a gds for the cells. You will have to check.
 

oratie

Full Member level 6
Joined
Jan 10, 2007
Messages
348
Helped
176
Reputation
350
Reaction score
169
Trophy points
1,323
Activity points
3,696
Incorrect. The Milkyway database (that IC compiler uses) may contain all needed info about layout of the cells (in different views FRAM, CEL). So, it is possible that not all hierarchy levels were written into GDS. Option is child_depth.
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,178
Helped
382
Reputation
764
Reaction score
396
Trophy points
83
Activity points
11,128
Incorrect. The Milkyway database (that IC compiler uses) may contain all needed info about layout of the cells (in different views FRAM, CEL). So, it is possible that not all hierarchy levels were written into GDS. Option is child_depth.

Huh. If this is the case, do we know if the SAED 90nm library has a layout view in it? Being academic and all, I wouldn't be surprised if it has nothing inside.

- - - Updated - - -

another approach is to make the merging on the environment you are using (virtuoso?). It might be easier. And it definitely takes gds as input to stream in.
 

adnan_zaman

Newbie
Joined
Aug 8, 2018
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
268
Hello ThisIsNotSam, Thanks for your reply.

Can you please elaborate on the merging on the environment that you mentioned?

And, secondly, I'm using the custom compiler to import the GDSII file generated in the IC compiler (I'm trying only synopsis flow this time). There's an option where it asks for reference library file. I'm not sure which library file it is asking for, as I tried the lib file located in the standard cell directory. It shows error message as,
"ERROR: (IMPORT_STREAM-43): Invalid character '/' in input name: /****************************************************************
******."
I'm also attaching the screenshot of that option tab. Can you please advice on this regard?

Thanks!

stream_in_cc.JPG
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,178
Helped
382
Reputation
764
Reaction score
396
Trophy points
83
Activity points
11,128
on virtuoso you can import 2 gds files: one from your design and one from std cell library. the tool recognizes that your design has instances of the std cell library and it will merge the two for you in a single gds file. there are many steps to get this done, which include having virtuoso configured for your specific technology. when it works, this flow is very stable.

what you are trying to do is exactly the same but in a different tool. I have never used custom compiler, so I can't comment on what information you have to pass to the tool on that `library file' box.
 

oratie

Full Member level 6
Joined
Jan 10, 2007
Messages
348
Helped
176
Reputation
350
Reaction score
169
Trophy points
1,323
Activity points
3,696
I suppose, that you should not specify .lib file. It contains timing info, but you need layout data. It can be Milkyway library, or NDM, or OA. Check what you have.
 

adnan_zaman

Newbie
Joined
Aug 8, 2018
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
268
Thank you @ThisIsNotSam and @oratie. Eventually, I found a way to resolve the issues mentioned above. Now, I'm struggling with the issue in the case of simulating the schematic. After I imported the schematic using veriliog import-in, I have a symbol view and schematic view of the circuit( inv). I'll add pictures here to explain the hierarchy and then I'll state the problem I'm facing.

sim_lvl_1.PNG

Fig. 1: Hierarchy 1 (symbol)

sim_lvl_2.PNG

Fig. 2: Hierarchy 2 (schematic -- generated after I imported from ICC)

sim_lvl_3.PNG

Fig. 3: Hierarchy 3 (Standard cell to which schematic and symbol is bounded)

Here, I created a new cell and connected voltages and gnd as shown in Fig. 1. You can descend on that symbol to check the other hierarchies as shown in Fig. 2 and Fig. 3 respectively. Now, when I try to do the simulation, the HSPICE simulation runs without errors but I get the following warnings:

Checking "my_lib_32/inv/schematic"
[warning] Floating I/O Pins
I/O pin 'VDD' is floating
I/O pin 'VSS' is floating
0 Error(s),2 Warning(s),0 Message(s) found in "my_lib_32/inv/schematic"

Which is also visible from Fig. 2. So, eventually, I get an incorrect output though there are no errors or warnings from the top-level ( the warning generates from the second level).

I tried to do drc, lvs and pex. Everything worked correctly using the same schematic. only when I'm trying to simulate, it is showing this warning.

I'm also attaching the netlist the simulator is generating, it seems okay to me.

*Custom Compiler Version M-2017.03-SP1-1
*Thu Oct 22 15:45:23 2020

.GLOBAL gnd!
********************************************************************************
* Library : saed32nm_stdcell_hvt_oa
* Cell : INVX1_HVT
* View : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List : hspice hspiceD
********************************************************************************
.subckt invx1_hvt a y
xp y a vdd vdd p105_hvt w=0.8u l=0.03u nf=1.0 m=1
xn y a vss vss n105_hvt w=0.42u l=0.03u nf=1.0 m=1
.ends invx1_hvt

********************************************************************************
* Library : my_lib_32
* Cell : inv
* View : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List : hspice hspiceD
********************************************************************************
.subckt inv o1 i1 vdd vss
xu2 i1 o1 invx1_hvt
.ends inv

********************************************************************************
* Library : my_lib_32
* Cell : inv_test_2
* View : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List : hspice hspiceD
********************************************************************************
r16 o1 gnd! r=1G
xi3 o1 i1 vdd gnd! inv
v12 vdd gnd! dc=1
v8 i1 gnd! dc=0 pulse ( 0 1 0 5p 5p 5n 10n )

In this circumstance, do you guys have any suggestions for me? I would really appreciate your help.

Thanks
 

Attachments

  • sim_lvl_1.PNG
    sim_lvl_1.PNG
    11.2 KB · Views: 19

oratie

Full Member level 6
Joined
Jan 10, 2007
Messages
348
Helped
176
Reputation
350
Reaction score
169
Trophy points
1,323
Activity points
3,696
According to your netlist you have nets vdd/vss inside subckt inv. But there are no connections to them. You have defined as global gnd! only.

Should be ".global vdd vss" ?
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,178
Helped
382
Reputation
764
Reaction score
396
Trophy points
83
Activity points
11,128
either you make vdd global or you make it an input of the INV subckt. the point is that what oratie said is the issue: the cell is not seeing the power supply internally.
 

adnan_zaman

Newbie
Joined
Aug 8, 2018
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
268
Thank you, everyone!

I just have one issue left. When I import the GDSII file (generated by IC Compiler) into Custom Compiler and run LVS, I see that pin labels are not preserved. When I put the pin labels it passes the LVS and everything checks out fine. But, I want to avoid this manual pin labeling.

Is there any way I can export GDSII or any other file format, so that pin information, i.e., labels are preserved?

Thanks
Adnan
 

dick_freebird

Advanced Member level 5
Joined
Mar 4, 2008
Messages
7,439
Helped
2,158
Reputation
4,321
Reaction score
2,035
Trophy points
1,393
Location
USA
Activity points
59,557
GDS-II has no idea about "pins" or their Cadence
properties (which is how connectivity is expressed).

As a work-saver I will make a layout cell containing
the pins associated with the pad ring (there should
be no others in a top-level product die), place the
empty cell (e.g. top_pins/layout/current) at 0,0 of
the top level layout and edit-in-place creating all
of the pin polygons (on appropriate layer) and
labels. I like to place pins as minuscule rectangles
at the pad centers, so later their X,Y properties can
be "harvested" for probe card coords, but that's for
much later.

Once the pad-ring pins cell is made, I will flatten
it by one level to bring the pins onto the top level.
But the top_pins cell remains in the library, for
later use. Such as when you stream back in the
layout, having lost all but the raw polygon layer /
purpose info of every pin - just place the top_pins
cell again, and flatten it again, if you want to (say)
rerun extract and LVS, or to get an analog_extracted
view with LVS-valid pin correspondence.
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,178
Helped
382
Reputation
764
Reaction score
396
Trophy points
83
Activity points
11,128
I just have one issue left. When I import the GDSII file (generated by IC Compiler) into Custom Compiler and run LVS, I see that pin labels are not preserved.
In Innovus you can write any label you want and associate any datatype to it. Maybe ICC has something similar but I wouldn't know, ICC is not something I use regularly. Maybe look for a create_label command or create_text, something like that.
 

adnan_zaman

Newbie
Joined
Aug 8, 2018
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
268
Thank you everyone! Finally, I was able to complete the total flow. It is not pretty I must say!

If anyone needs help, I will be more than happy to help!

Thanks again.
 

LaTeX Commands Quick-Menu:

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top