Forum Replies Created
-
AuthorPosts
-
Keith
KeymasterPatched version of 4.2.26 is now available…
Keith
KeymasterHmm yes that's a bug that has crept in recently… I've just fixed it.
Keith
KeymasterFor 1, have you tried F4 key which toggles between full & partial select?
For 2/3, can you clarify? In partial mode, you can select edges or vertices by clicking on them or area dragging.
You can't select instances while in partial mode, I'd have to look into whether this can be made possible. It affects dynamic hilight also.
February 18, 2017 at 9:39 am in reply to: exporting GDS of cells including cells from two libraries #1961Keith
KeymasterThere was an assumption in the code that all cellViews to be written were from the same library. I have now removed that limitation and am patching 4.2.26 with the fix… so far Mac/Windows.
February 18, 2017 at 3:40 am in reply to: exporting GDS of cells including cells from two libraries #1959Keith
KeymasterI can't look at the code right now, but I suspect that this may be an implementation issue. Are you using the cell mapping capability, or just exporting normally?
Keith
KeymasterThe best way is still to load in a techfile… but you can create vias in python, something like this:
Code:v = via('some_via_name')# add shapes you want to be part of the via. All dimensions relative to via origin.
Rect cut_rect(…some size…)
v.addViaLayer(cut_layer, cut_rect)
#v.setViaDefault(true)
lib.addVia(v)The big problem with reading a Cadence techfile is that its Skill, and there can be all sorts of stuff in there, even a simple number field can be a Skill expression, so parsing it is a nightmare.
Keith
KeymasterReading vias based on a Cadence techfile is much more complex than reading MPP's. There are several different via types, some vias are essentially skill pcells for example, which would not be translatable.
Keith
KeymasterI've never tried it, but it might be possible to load in a glade techfile consisting of just MPP rules into an existing library that you created by reading Cadence techfile/display.drf…
I can look into extending the Cadence techfile reader to parse MPP rules, but the above may get you a solution quicker.
Keith
KeymasterIn general, unless you have specific reason to change the dbu, leave the defaults as is. its only really when you start getting into finfet geometries that it makes sense increasing the dbu/micron resolution.
Keith
KeymasterThe grid/snap sizes in the display options dialog are for display purposes: grid sets the drawn grid (dots or lines) distance, snap sets the cursor snapping. They are unrelated to libraries, and are loaded every time you open a cellView to display from the .gladerc settings file. There are separate settings for schematic/symbol grid/snap and layout view grid/snap though. Both grid and snap sizes are in database units (dbu), not absolute distances.
Scaling is dependent on the database units. This defaults to 1000 dbu per user unit (micron) but can be set when a library is created. Then, when data is imported into the library e.g from GDS2, it will be potentially scaled, as GDS2 has a database unit size that is defined in the file (typically 1000). Also note when you import GDS2 there is the option to set the dbu from the GDS2 dbu; if the GDS2 and library dbu differ, data will be scaled on import.
It would appear you have either imported the same data into two libraries with different database units, or you have imported two different sets of data with into two libraries with the same dbu.
In general, you need to stick with 1 dbu size for all libraries you intend to work with, and make sure you use that value every time you create a new library.
Keith
KeymasterThat's a Cadence techfile – Glade only reads limited info from Cadence techfiles such as layer names, gds numbers, minspace/minwidth. It currently does not read Cadence MPP definitions… you will need to add them manually to a glade techfile and load that.
Keith
KeymasterYou only need to run the python code to create MPP's once, if they are not yet defined in the library.
If you already have MPP's defined in your techfile/library, then you don't need to do this again.
Keith
KeymasterHi Riyaz,
The MPP rules are normally defined in the techfile, and created when the library is read. But yes, you can create your own if you want.
Code:### repeat this section for each layer in the mpp# define a layer that belongs to the MPP rule.
layerNum = tech.getLayerNum("CO", "drawing")
layer = mppLayer
layer.setWidth(1000)
# used for contacts only
#layer.setLength(50)
# used for contacts only
#layer.setSpace(50)
layer.setBegExt(500)
layer.setEndExt(500)
layer.setLayer(layerNum)# add the layer to the mpp rule (will create if not already existing, else adds to rule of given name)
lib.addMPPLayer("nguard", layer)### end repeat
# utility stuff to access mpp rules
# rule = lib.createMPPRule("nguard")
# rule = lib.getMPPRule("nguard")
# lib.deleteMPPRule("nguard")
# numrules = lib.getNumMPPRules()Keith
KeymasterHi Riyaz,
It's something like this (I haven't tested):
Code:# Assume we already have cv (cellView to create mpp in) and lib ( cv.lib( )):
# Create the vertices of the mpp centreline:
x = intarray(npts)
y = intarray(npts)
#
# fill the arrays x, y (I leave this to you)
# ….
#
# Create a mpp, this is just the object itself with no rule yet.
mpp = cv.dbCreateMpp(xpts, ypts, npts);
#
# Assuming you already have mpp's set up in your techfile.
rule = lib.getMPPRule("nguard")
mpp.setMppRule(rule)Keith
KeymasterQuote:Let me give an another question on parameter mismatch.
You said that I should add "*.SCALE METER" manually in inv2.cds_flat, and then perform compare.
I think that LVS execution will overwrite inv2.cds_flat by specifying inv2.cds as a netlist from schematic before LVS execution as follows:
https://gyazo.com/bcfbd23ef2668260a69c036f2d739805How can I perform LVS compare for manually-editted inv2.cds_flat?
By not ticking the hierarchical box. Give the netlist name as inv2.cds_flat…
-
AuthorPosts