CAD for Assurance of Electronic Systems

ObfusX: Routing Obfuscation with ML

By: Wei Zeng, Azadeh Davoodi, and Rasit Onur Topaloglu

Stage: IC Design


This is the source code for their ASPDAC ’21 paper, based on ISPD’11 benchmark parser here, and LEF/DEF parser and writer from jinwookjungs/lefdef_util.


Azadeh Davoodi


The main execuatable main takes the following parameters in the format of:

./main <name1> <value1> <name2> <value2> ...

-design: an identifier of the design, could be any string (required).
-layer: the split layer. E.g. 4 for splitting between M4 and M5 (required).
-maxLayer: the highest metal layer that can be used for lifting and rerouting (required for ISCAS ’85 benchmark).
-json: path to the trained Weka Bagging model as a JSON file (required, generated by weka2json in this repository).
-maxIter: maximum number of iterations, (required, could be set to a large number for unlimited iterations).
-lefFile: path to LEF (library) file (required for ISCAS ’85 benchmark).
-defFile: path to DEF (design) file (required for ISCAS ’85 benchmark).


  • Linux OS
  • CMake >= 3.12
  • Python >= 3.5
  • SHAP library: pip install shap

Toolset can be found at:


Zeng, Wei; Davoodi, Azadeh; Topaloglu, Rasit Onur

ObfusX: Routing Obfuscation with Explanatory Analysis of A Machine Learning Attack Proceedings Article

In: IEEE/ACM Asia and South Pacific Design Automation Conference, 2021.

Abstract | Links | BibTeX


  • National Science Foundation (NSF)
  • Semiconductor Research Corporation (SRC)