I want to use Virtuoso XL feature of device abutment... I have not found yet a function in documentation that permits device abutment programatically, rather when abutment criteria are met, the devices are simply abutted when layout is openend in Vistuoso XL...
1. Is there a function that would perform device abutment (in db or otherwise)?
2. Is there an option to open a cellview in db mode and specify that Virtuoso XL contexts are to be used?
For abutment to work you need to have an abutFunction and transistor pcells that use the abutFunction. You can write Skill code to call your abutFunction and pass it in the required arguments on your own. If you look in the VXL user guide (appendix E) you can see the documentation of the required arguments for the abutFunction. You need to pass it the two instances to abut, the pins on the instances to abut and some information about how the abutment is to work. You can call this routine in VLE and your Pcell should respond by adjusting source or drain contacts. You then take the result of the abutFunction and use skill code to align the instances and you're done. What is lacking is the automatic "trigger" that VXL has when two abutting instances overlap. We were able to get abutment working in VLE by providing the user a form where they choose the type of abutment and the instances to abut. When they press apply, we call the abutFunction.
In reply to dmay:
This was very helful and we will go directly in the way you propsed...