Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unihd-cag/skillbridge
A seamless python to Cadence Virtuoso Skill interface
https://github.com/unihd-cag/skillbridge
asic cadence cadence-virtuoso design-automation hardware python skill skillbridge virtuoso
Last synced: 20 days ago
JSON representation
A seamless python to Cadence Virtuoso Skill interface
- Host: GitHub
- URL: https://github.com/unihd-cag/skillbridge
- Owner: unihd-cag
- License: lgpl-3.0
- Created: 2019-09-24T12:40:58.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-24T07:30:56.000Z (8 months ago)
- Last Synced: 2024-04-25T06:44:05.632Z (8 months ago)
- Topics: asic, cadence, cadence-virtuoso, design-automation, hardware, python, skill, skillbridge, virtuoso
- Language: Python
- Homepage: https://unihd-cag.github.io/skillbridge/
- Size: 944 KB
- Stars: 159
- Watchers: 10
- Forks: 34
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-hwd-tools - unihd-cag/skillbridge - A seamless python to Cadence Virtuoso Skill interface (Full Custom Design / Verification)
README
# Python-Skill Bridge
[![PyPI version](https://badge.fury.io/py/skillbridge.svg)](https://badge.fury.io/py/skillbridge)
![build](https://github.com/unihd-cag/skillbridge/workflows/Python%20package/badge.svg)### Prerequisites
- Python 3.8 or higher[^1]
- pip
- IC 6.1.7 or ICADV/M or higher[^1]: For Python 3.6 and Python 3.7 please install version `1.5.1` (`pip install skillbridge==1.5.1`)
### 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
- methodsRead more in the [full documentation](https://unihd-cag.github.io/skillbridge/).
### Installation
```bash
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.1. Type `skillbridge path` into your shell to acquire the correct `PATH-TO-IPC-SERVER`
2. Open Virtuoso
2. 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
```bash
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.```lisp
load("PATH-TO-IPC-SERVER")
pyStartServer
```##### Connecting to the server
```python
from skillbridge import Workspacews = Workspace.open()
```##### Accessing the currently open edit cell view
```python
cell_view = ws.ge.get_edit_cell_view()
```##### Inspecting available properties
```python
>>> dir(cell_view)
['DBUPerUU', 'any_inst_count', 'area_boundaries', 'assoc_text_displays', 'b_box', ...]
```or type `cell_view.` in jupyter/ipython
##### Reading properties
```python
>>> print(cell_view.b_box)
[[0, 10], [2, 8]]
```##### Call any SKILL function
```python
>>> ws['plus'](3, 4)
7
```*equivalent to:*
```lisp
(plus 3 4)
```