CAD for Assurance of Electronic Systems
 

ObfusX: Routing Obfuscation with ML

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

Stage: IC Design

Summary

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.

Contact

Azadeh Davoodi

Usage

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).

Dependencies

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

Toolset can be found at: https://github.com/wei-zeng/obfusx

References

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

Acknowledgments

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