I want to create path leCreatePath() to connect between terminals of instances in the layout, i used inst_id~>instTerm~>termPosition to get the drain, source, gate and bulk coordinates to draw a path from these coordinates but the output i get is (nil nil nil nil). Is there a better way to draw a path without using coordinates(using the database ids' of the terminals) ?One more question, How can i get the db_id of terminals that are tied together in the schematic ?ThanksTaher
In reply to TaherKotb:
If this is so urgent that you need to chase it within a day, you really should be using customer support. This forum is manned by volunteers (including those folks such as me who work for Cadence) - who try to fit this in during their spare time (which is rather limited for me at the moment), and as such you shouldn't expect fast response.
termPosition is not what you want. From the documentation:
Returns the position to which this terminal is assigned. Assigning a position or indicating an order for terminals is typically used by netlisters to compare the actual pin position to the position specified in the netlist.
In fact the terminals are not what you need. It's the pins - because the pins carry the physical information (e.g. geometry) of the pins, whereas the terminals hold the connectivity information.
So, assuming your instance has instTerms - which it will if it was created in VLS XL - you can find the figures. For example:
inst_id~>instTerms~>name("D" "G" "S")inst_id~>instTerms~>term~>pins~>figs(((db:0x18a87315 db:0x18a8731b)) ((db:0x18a87323)) ((db:0x18a87314 db:0x18a87316)))
So as you can see, some of these may have more than one fig (in OA-based releases). For example:
D_figs_bboxes=foreach(mapcar D_fig D_figs dbTransformBBox(D_fig~>bBox inst_id~>transform))
(((19.73 6.41) (20.03 7.61) ) ((19.79 6.41) (19.91 7.61) ))
This gives me a list of the transformed bounding boxes (i.e. the location of the pins) in the coordinate space of the cellView. The pin figures are in the instantiated master, and hence we have to transform it into the current cellView using dbTransformBBox.
Alternatively maybe you can use lxSelectedRoute to auto-route the selected nets?
I didn't really understand your second question. You also didn't say which version you're using, or whether you're using Layout XL or not.
In reply to Andrew Beckett: