Keith

Forum Replies Created

Viewing 15 posts - 181 through 195 (of 861 total)
  • Author
    Posts
  • in reply to: can't move instances? #1968
    Keith
    Keymaster

    Patched version of 4.2.26 is now available…

    in reply to: can't move instances? #1966
    Keith
    Keymaster

    Hmm yes that's a bug that has crept in recently… I've just fixed it.

    in reply to: Cell selection stratery #1964
    Keith
    Keymaster

    For 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.

    in reply to: exporting GDS of cells including cells from two libraries #1961
    Keith
    Keymaster

    There 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.

    in reply to: exporting GDS of cells including cells from two libraries #1959
    Keith
    Keymaster

    I 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?

    in reply to: Creating VIAs #1956
    Keith
    Keymaster

    The 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.

    in reply to: Creating VIAs #1954
    Keith
    Keymaster

    Reading 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.

    in reply to: Creating MPPs #1951
    Keith
    Keymaster

    I'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.

    in reply to: Grid/Instance size in two libraries #1950
    Keith
    Keymaster

    In 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.

    in reply to: Grid/Instance size in two libraries #1947
    Keith
    Keymaster

    The 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.

    in reply to: Creating MPPs #1945
    Keith
    Keymaster

    That'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.

    in reply to: Creating MPPs #1943
    Keith
    Keymaster

    You 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.

    in reply to: Creating MPPs #1941
    Keith
    Keymaster

    Hi 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()

    in reply to: Creating MPPs #1939
    Keith
    Keymaster

    Hi 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)
    in reply to: Hierachical LVS? #1936
    Keith
    Keymaster
    Quote:
    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/bcfbd23ef2668260a69c036f2d739805

    How 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…

Viewing 15 posts - 181 through 195 (of 861 total)