SWIG/Python bindings for the Unified Coverage Interoperability Standard (UCIS) API from Accellera.

Requires a recent version of SWIG (http://www.swig.org/) [ tested with SWIG v2.0.1 ]

Build info

Modify the Makefile to point to your EDA tool release of the UCIS API and associated implementation.

UCIS_INCLUDE_PATH should point to the location of the ucis.h and UCIS_LIB_PATH should point to the associated libucis.a or libucis.so file.

build with

make python_bindings


make all

Usage info

Your LD_LIBRARY_PATH environment variable needs to point to at least the UCIS_LIB_PATH to access the libucis.so and the location of the resulting _ucis.so from running make for PyUCIS. You'll also need to have the ucis.py file in your PYTHONPATH. Then run python and

import ucis


from ucis import *

Depending on if you want to use a prefix namespace or not when accessing UCIS API calls. All features of the UCIS API then have the same names as defined there.


from ucis import *
import sys

db = ucis_Open('sink.ucdb')

si = ucis_ScopeIterate(db, None, sys.maxint)
sh = ucis_ScopeScan(db, si)

print ucis_GetStringProperty( db, sh, 0, UCIS_STR_INSTANCE_DU_NAME)


  • Callbacks to API methods from Python don't currently work.
  • Some constants such as INT64_NEG1 cannot be used in API places where uint64_t are used in the UCIS standard.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.