YosysHQ / padring

A padring generator for ASICs
ISC License
22 stars 9 forks source link

Generating GDS2 file #10

Open stan3c opened 5 months ago

stan3c commented 5 months ago

Hi, I just found this padring tool and I like it. I am trying to adopt it for my technology (xfab). There are however a few problems. The foundry does not provide .lef file for all pads. Only few pads within some library files have the .lef file. Is there a way round it? Temporarily to get around this issue I created my own dummy .lef file with pads I want to use. And I define each pad that does not have a foundry provided .lef file as: MACRO HVPAD CLASS PAD INOUT ; FOREIGN HVPAD 0 0 ; ORIGIN 0.000 0.000 ; SIZE 60.000 BY 257.000 ; SYMMETRY R90 ; END HVPAD Although, I do not know what these lines are about, it seems to work. Does your program actually use any layer or shape information contained in foundry provided .lef file? What information from .lef file does it use? What information should I include in my own .lef file for "padring" to work properly?

Second thing. The *.gds file is generated. I import it to Cadence but the actual pads do not show up on layout. There is only a blank box. Pressing "q" on that box shows the right pad name, however the library name is incorrect. And that is the reason why pad layout does not show up. Editing the library name to the library name from which the pad comes corrects the problem and now the pad layout appears on the layout correctly. So is there a way to configure this? Is it possible to specify the pad cell name and library name from which the pad should be sourced? And there is a messege from Cadence that the imported gds layer do not match the tech layer map. How is this "padring" program suppose to work when everything goes smoothly? Maybe I am expecting something that you did not intend to build.

I do not know how exactly GDS2 and this tool work but creating a GDS2 file with a pad name (pad cell name) without a library name from which pad comes from, does not make sense. Cadence simply cannot create a layout with just a cell name. One must provide library name and cell name. Otherwise there is nothing shown on layout.

And one more thing. Is there a way to import the pads into schematic?

trcwm commented 5 months ago

Hi Stan3c,

The foundry does not provide .lef file for all pads. Only few pads within some library files have the .lef file. Is there a way round it?

Either make the .lef files yourself like you did, or use a (custom?) tool to generate .lef for you from some other format such as .gds Padring primarily needs to know the size of the cell, whether or not it may rotate the cell (SYMMETRY) and if it needs a placement offset (ORIGIN). The Cadence LEFDEF specification has all the details - Google will give you a PDF if you search for it.

Is it possible to specify the pad cell name and library name from which the pad should be sourced?

I need to look into your library problem a bit more, I think it's a GDS parameter that isn't set correctly by Padring and there is currently no way of specifying it I believe.

Is there a way to import the pads into schematic?

Padring could be altered to write out a Verilog netlist file that you can import. However, Padring has no connectivity information so the only thing you'll get are isolated instances of each pad cell. Is that what you want?

Regards, Niels.

trcwm commented 5 months ago

Note to self: The import failure is probably related to a missing GDS2 REFLIBS entry.