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

Requires a recent version of SWIG ( [ 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 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 and the location of the resulting from running make for PyUCIS. You'll also need to have the 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.