Forum Replies Created
-
AuthorPosts
-
Keith
KeymasterPossibly but it will run slower checking the area of a shape than just checking if a non-enclosed shape exists.
Keith
KeymasterInteresting one. Enclosure check tests if the distance from the outside edge of the enclosed shape to the inside edge of the enclosing edge is less than the rule. It does not guarantee that shapes are enclosed – only edges.
In the case you have, where diff is not enclosed by narea, the outside edge of diff is not inside narea, therefore the edges are not checked.
A workaround would be to flag any shapes that are not inside e.g.
bad_active = geomAndNot(diff, geomContains(narea, diff))
saveDerived(bad_active, 'diff not enclosed by narea')This would be in addition to the geomEnclose() check.
Keith
KeymasterYou can choose either 'Use Model Name' or 'Use Resistance from property name' in the Export CDL dialog, under Netlist Options.
However, if you have a NLPDeviceFormat property on your resistor symbol, that will control the listing. You can then format the listing any way you like…
Keith
KeymasterYes, the nch symbol cellView has NLPDeviceFormat property:
[@instName] [|
%] [|G:%] [|S:%] [|B:%] [@modelName] [@w:w=%:w=1.1u] [@l:l=%:l=0.13u] [@m:m=%:m=1]
This says look for the property 'modelName' when netlisting an instance of this device. The property is searched for first on the instance itself; if not found then it is searched on the instance master.
And the nch symbol cellView has the property 'modelName' with value 'nch'.
Keith
KeymasterYes it all depends on the NLPDeviceFormat property, if it exists, on the symbol view. That controls how devices are netlisted.
In the absence of the NLPDeviceFormat prop, it will default to what you see, however you can use the 'True Spice Format' option in export CDL to output a SPICE compatible netlist.
Keith
KeymasterYes, when you save a library the in-memory techfile info is saved to the glade.lib file.
However… if you just save a cell, or several cells, using e.g. the 'Save Cell' cmd it does not update the glade.lib.
You can check the timestamp of the glade.lib file to see when it has been updated.
Keith
KeymasterI've made a fix that hopefully solves the problem. It's in v 4.7.34, on the website now.
Keith
KeymasterI'll take a look. Extensive changes were made to stipple pattern support recently, it appears to be a bug.
Keith
KeymasterSorry for the late reply, for some reason I have only just seen this.
Yes, in extractParasitic the capacitance is calculated as follows.
Input is
– area in dbu^2
– perimeter in dbuarea /= (dbuPerUU * dbuPerUU * 1.0e12)
perimeter /= (dbuPerUU * 1.0e6)
c = area * areaCap + perimeter * perimeterCapwhere dbuPerUU is the database units per micron, usually 1000
Keith
KeymasterI've patched the version on the server, please give it a try.
Keith
KeymasterSo I checked and found a bug in which saving the query window position was actually saving the editor window position instead.
I'll make a fix for this hopefully today.
Keith
KeymasterActually I've realised there is one reason why the property dialog might not appear.
The dialog size and position are saved in the gladerc.xml file as the entries 'querySize' and 'queryPos'. It is possible that working on a large screen e.g. a 4K display, then moving to a smaller display e.g. a laptop will mean the saved coordinates are outside the smaller display's screen coordinates.
The workaround is to delete the gladerc.xml, or edit it and set the size/pos parameters to a value withing the diaplay coordinates.
I'll put a fix in to check for coordinates outside the current screen size, and reset the size if so.
Keith
KeymasterI've not seen this before. Do you have any other clues – is there anything about the machine configuration that is common? Is it only the property dialog that does not appear?
Also try deleting the gladerc.xml file and see if that helps?
Keith
KeymasterI've updated a patched version of 4.7.28 to the server. Now you can do e.g.
def hiliteInst(instName, color) :
cv = getEditCellView()
inst= cv.dbFindInstByName(instName)
ui.clearHilites()
ui.deselectAll()
ui.addHilite(inst, color[0], color[1], color[2])
ui.addSelected(inst)Keith
KeymasterHi Joerg,
Sorry the interface for shapes and instances is based on the possibility of using objects at any level of hierarchy.
You'd need to do something like:
insts = cv.getInstsByRegExp( exp )
for inst in insts :
hierObj = dbHierObj( cv, inst, transform() )
ui.addHilite(hierObj, r, g, b)A dbHierObj is a helper class containing just a cellView, an object and the transform of the object relative to that cellView. It's typically used when doing a region query for objects over more than one level of hierarchy using getHierOverlaps().
I can provide a simpler addHilite() that takes a top level instance/shape only – will let you know when that is done.
Keith
-
AuthorPosts