Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic 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.

Register Log in

Issues with GDSII import

adnan_zaman

Newbie
Joined
Aug 8, 2018
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
88
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
331
Helped
171
Reputation
340
Reaction score
159
Trophy points
1,323
Activity points
3,319
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,061
Helped
362
Reputation
724
Reaction score
369
Trophy points
83
Activity points
10,374
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
331
Helped
171
Reputation
340
Reaction score
159
Trophy points
1,323
Activity points
3,319
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,061
Helped
362
Reputation
724
Reaction score
369
Trophy points
83
Activity points
10,374
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
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
88
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,061
Helped
362
Reputation
724
Reaction score
369
Trophy points
83
Activity points
10,374
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
331
Helped
171
Reputation
340
Reaction score
159
Trophy points
1,323
Activity points
3,319
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
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
88
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


oratie

Full Member level 6
Joined
Jan 10, 2007
Messages
331
Helped
171
Reputation
340
Reaction score
159
Trophy points
1,323
Activity points
3,319
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,061
Helped
362
Reputation
724
Reaction score
369
Trophy points
83
Activity points
10,374
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.
 

Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top