Issue when exporting the Innovus layout to Virtuoso

Status
Not open for further replies.

OrangeHalo

Junior Member level 2
Joined
Jan 16, 2019
Messages
23
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Location
Ann Arbor
Activity points
312
Hi all,

I am doing some digital implemtation staff. I used Innovus to do PnR, and export the layout using GDS format to virtuoso.

Problem: All the label layers imported to Virtuoso appear to be drawing layers. As you can see in the figure below:




My thoughts: The mapping file for exporting Innovus layout to GDS format have some problems. Some layer definations(data type?) have errors. The thing is that I don't know how to modify the stream data types in mapping file, and I don't know how to map the purposes in the map file(such as NET, SPNET, PIN, etc.) to the technology file provided by my vendor.

Some additional information: I am using TSMC 0.18um GP technology. My map file and stream layer information are shown below:



========StreamUut Mapping File========


===================================

===========.tf stream layer file===


===========================



Thanks in advance.



Best,

OrangeHalo
 

Both Innovus and virtuoso are using OA, why not open digital layout directly in virtuoso?
 

Both Innovus and virtuoso are using OA, why not open digital layout directly in virtuoso?

Hi Dominik,
Thank you for your reply. But when export the Innovus design into OA format, it still need some map file. I do not have that with my kit.
Best,
Haochen
 

Not clear to me whether the problem is on the export side
or the import side. Seems like the Innovus layout is all
exported to datatype zero and Cadence import puts
datatype 0 to "regular" layers w/ "drawing" purpose.
There appears no exporting of Innovus layers to datatype
6, which your Cadence import would put to "pin" purpose.

Also appears Innovus export is putting multiple purposes
(?) onto the same layer, datatype 0 from which they will
not be able to be "unmerged" at the Cadence import end.

I guess you have to get your hands dirty.
 

Hi dick_freebird,

Thank you for your reply. I just tried to changed the mapping of the " NAME METAL*/Purpose 'layer number' 'data type' " lines according to the pins information in the technology.

For example, I changed
NAME METAL1/NET 16 0
NAME METAL1/SPNET 16 0
NAME METAL1/PIN 16 0
NAME METAL1/LEFPIN 16 0
to
NAME METAL1/NET 40 0
NAME METAL1/SPNET 40 0
NAME METAL1/PIN 40 0
NAME METAL1/LEFPIN 40 0
according to
( ("METAL1" "pin") 40 0 t )

It seems the layout in Virtuoso has the correct layer information now.

But still, I have no idea on what does each data type refer to. Besides, those purposes in map file(SPNET, LEFPIN, FILLOPC, etc.) seem unclear to me. Can you give me some hint or reference ? Thank you again.

Best,
OrangeHalo
 

first thought: you need to find the mapping files provided by TSMC, both for innovus/encounter and virtuoso. they exist for sure. whoever installed the kit must have them put somewhere.

second, the meaning of the datatypes is weird to interpret (and probably not that important because it is vendor dependent) also because there is no match between custom layout and digital layout terminology. for instance, SPNET refers to special net. this is just a drawing metal layer in virtuoso.
 

Hi ThisIsNotSam,
Really appreciate your answer. I will try to contact TSMC for details.
Best,
OrangeHalo
 

I think you may run into other problems using GDS-II
as the "medium of exchange".

Cadence pins are more than their geometry and
layer/datatype (GDS-II knows only this). The pin
objects also carry connectivity properties that
are probably interesting or even essential. Those
can't be rebuilt in any way I know of, other than
manually.

When I ran "blowback" verifications I would stream
in the mask shop GDS file, and then copy onto it
the set of pin objects from the original layout DB
so that LVS could figure out top level connectivity.
Streamed-in DB only had property-less pin polygons
which helps LVS not at all.

But in your recent example it looks like you are still
mashing multiple source layers into one GDS layer /
datatype. While the layer may be correct (?) you
lose all the "purpose" (and properties are dropped,
regardless, just by the nature of GDS-II data structure)
 

    OrangeHalo

    Points: 2
    Helpful Answer Positive Rating
The comment above is correct, but I must add that there is a reference flow for digital designs and that is how it is done. (OA is still not popular, nor is OASIS)
The number one reason we stream out a GDS file from innovus is to run DRC on calibre. The GDS file you get is "complete" in that sense.
 

    OrangeHalo

    Points: 2
    Helpful Answer Positive Rating
Hi ThisIsNotSam,
Really appreciate your answer. I will try to contact TSMC for details.
Best,
OrangeHalo

As ThisIsNotSam stated, to go with stream-out -> GDS flow, you need a mapping file. The corresponding GDS equivalent number (for stream-out) to each layer is defined in .tf file of the PDK. For instance, it looks like below for a certain PDK :

.tf content :-

techLayers(
;( LayerName Layer# Abbreviation )
;( --------- ------ ------------ )
( MG 35 MG )
( SAB 36 SAB )
( TG 37 TG )
( HR 38 HR )
( CONT 39 CONT )
( NWR 40 NWR )
( PO1 41 PO1 )
( ME1 46 ME1 )


Then map the right number from .tf file to the corresponding layer in the file you use for the stream-out. i.e.

CONT PIN 39 0
CONT LEFPIN 39 0
CONT FILL 39 0
CONT FILLOPC 39 0
CONT VIA 39 0
CONT VIAFILL 39 0
CONT VIAFILLOPC 39 0
ME1 NET 46 0
ME1 SPNET 46 0
ME1 PIN 46 0
ME1 LEFPIN 46 0
ME1 FILL 46 0
ME1 FILLOPC 46 0
ME1 VIA 46 0
ME1 VIAFILL 46 0
ME1 VIAFILLOPC 46 0
ME1 LEFOBS 46 0

Notice that, number 39 and 46 for CONT and ME1 (metal 1) layers are mapped from the .tf file. Hope this helps.....

Anuradha
 

    OrangeHalo

    Points: 2
    Helpful Answer Positive Rating
Sorry for late reply. Thank you for all your replies! Now it is clear to me.

Best,
OrangeHalo
 


To change the labeling purpose from drawing to pin, before the label is created, put:

set_db oa_text_purpose pin
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…