Demo datasets generated with open source Logic Synthesis framework ABC from UC Berkeley [see https://github.com/berkeley-abc/abc]
Link to paper: https://ycunxi.github.io/cunxiyu/papers/dac18.pdf
- Python 2.7/3.x
- [Tensorflow] backend
- [Keras] high-level neural networks API
- [pandas, numpy, sklearn, h5py]
- [matplotlib] plot
- [ABC] [OPTION] if you are interested in applying to your own designs, you need to generate corresponding data points , with your own technology lib; abc.rc file (100k flows) is included in /datasets
/datasets/abc_100k_random_flows.rc
64-bit Montegomery Multiplier datasets (csv format): datasets/64bitGF/delay/
For example: rw; rw; rf; rfz; b; rf; b; rw; rfz; rs -K 6; b; rf; b; rs -K 6; rwz; rfz; rs -K 6; rw; rwz; rwz; rf; rwz; rfz; rs -K 6
Note: please always start with "strash" ("st") before applying the random flows.
Command: ./abc -c "read i10.aig; synthesis_rand_1"
stout by ABC shown bellow
ABC command line: "read i10.aig; synthesis_rand_1".
Entered genlib library with 15 gates from file "yourLib.genlib".
Converting "yourLib.genlib" into supergate library "yourLib.super".
Maximum level: Original = 35. Reduced due to choices = 35.
Choice stats: Choice nodes = 0. Total choices = 0.
Nodes = 2063. Total 5-feasible cuts = 28104. Per node = 13.6. Time = 0.01 sec
Delay : Delay = 0.00 Flow = 63162.9 Area = 11799.0 0.0 % Time = 0.00 sec
AreaFlow : Delay = 218.63 Flow = 8340.9 Area = 8892.0 24.6 % Time = 0.01 sec
Area : Delay = 218.63 Flow = 0.0 Area = 7415.0 37.2 % Time = 0.01 sec
Area : Delay = 218.63 Flow = 0.0 Area = 7172.0 39.2 % Time = 0.01 sec
Output V435(0) : Delay = (218.63, 218.63) NEG
Output V398(0) : Delay = (218.52, 218.52) NEG
Output V432 : Delay = (217.67, 217.67) POS
Output V393(0) : Delay = (216.03, 216.03) NEG
Output V357 : Delay = (205.00, 205.00) POS
Total runtime = 0.06 sec
i10 : i/o = 257/ 224 lat = 0 nd = 1581 edge = 3676 area =7172.00 delay =218.63 lev = 21
These jupyter files only includes the demo training and testing results of CNN classifier. For generating datasets, see above & /datasets dir.
- dac18_keras_train_n_inference.ipynb (keras implementation)
Includes training and inference. Trained model has been saved in "dac18_GF_delay_model_save_test.h5" - dac18_keras_inference_only.ipynb
Loads pre-trained model and do inference only.
Developing Synthesis Flows without Human Knowledge. Cunxi Yu, Houping Xiao and Giovanni De Micheli
ACM/IEEE Design Automation Conference (DAC'18)
@article{cunxi-dac18-cnnFlowGen,
title = "{Developing Synthesis Flows without Human Knowledge}",
author = {Cunxi Yu and Houping Xiao and Giovanni De Micheli},
journal = {Design Automation Conference (DAC'18)},
month = {June},
year = {2018},
}
Cunxi Yu, LSI, EPFL
Email: cunxi.yu@epfl.ch