Awesome
Python-Skill Bridge
Prerequisites
- Python 3.8 or higher1
- pip
- IC 6.1.7 or ICADV/M or higher
Features
- Run Virtuoso's Skill functions from Python
- Automatically translate all Skill objects to Python
- Automatically translate Python numbers, booleans, strings, lists and dictionaries to Skill
- Retrieve Skill function documentation in Python
- Convenient tab-completion (+ jupyter support)
- object attributes
- global function list
- methods
Read more in the full documentation.
Installation
pip install skillbridge
Add the --user
option if you don't want to install it systemwide.
Before you can use the Skill bridge you must generate the function definitions from Virtuoso via the Skill console.
- Type
skillbridge path
into your shell to acquire the correctPATH-TO-IPC-SERVER
- Open Virtuoso
- Type these commands into the Skill console
load("PATH-TO-IPC-SERVER")
After that you can also generate the static completion stub files. This is useful for code completion in certain IDEs (e.g. PyCharm)
- Type
skillbridge generate
into your shell.
Updating
In order to update the python package type this
pip install skillbridge --upgrade
Examples
Note: All these examples assume that the Skill server is running. You can start it by typing the following command into the Skill console.
load("PATH-TO-IPC-SERVER")
pyStartServer
Connecting to the server
from skillbridge import Workspace
ws = Workspace.open()
Accessing the currently open edit cell view
cell_view = ws.ge.get_edit_cell_view()
Inspecting available properties
>>> dir(cell_view)
['DBUPerUU', 'any_inst_count', 'area_boundaries', 'assoc_text_displays', 'b_box', ...]
or type cell_view.<TAB>
in jupyter/ipython
Reading properties
>>> print(cell_view.b_box)
[[0, 10], [2, 8]]
Call any SKILL function
>>> ws['plus'](3, 4)
7
equivalent to:
(plus 3 4)
Footnotes
-
For Python 3.6 and Python 3.7 please install version
1.5.1
(pip install skillbridge==1.5.1
) ↩