1. Gordon McGregor
  2. PyUcis





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.