Cocoon is an open-source infrastructure for integrated EDA with interoperability and interactivity. It contains a set of cross-tool interfaces and plays the role of EDA agent that can help IC designers choose EDA point tools to assemble a legal design flow and to produce ICs with a higher quality of results (QoR). It can also help EDA researchers and tool developer research new design methodology and cross-stage optimization. Below are key features of Cocoon:
Agile RTL-to-GDSII frontend and backend VLSI flow generation.
Completely user-defined tech library, component EDA tool and design constraints.
Multi-flow parallelism and automatic iterative circuit timing optimization.
cd ./thirdparty/DREAMPlace/
mkdir build
cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=../install
make
make install
Build yosys (optional):
cd ./thirdparty/yosys/
mkdir build
cd build/
make -f ../Makefile
Basic Usage
Once you have installed the previous required dependencies, you can run Cocoon from the command line using your customized configuration file in INI format.
Three demo configurations demo/config.sample1.ini, demo/config.sample2.ini, demo/config.sample3.ini are provided, where your can find detailed description of user-defined options from the comments. Here’s an example of 2 parallel flows.
You can directly run with the sample configurations with the demo designs, gcd (Verilog) and ALU (Chisel), together with the open-source FreePDK45nm library we provide in ./demo/. For example:
cd cocoon/
python run.py ./demo/config.sample1.ini
With correctly customized configuration, you can run your own flow by executing:
cd cocoon/
python run.py /Path/to/your/config.ini
Ongoing work
Integrate more EDA tools
Efficient resource scheduling
Legality check (LVS, DRC, etc.) and post-simulation (e.g. timing, power)
If you use cocoon in your research, please cite our WOSET’20 paper: Jiaxi Zhang, Tuo Dai, Zhengzheng Ma, Yibo Lin, Guojie Luo, "Cocoon: An Open Source Infrastructure for Integrated EDA with Interoperability and Interactivity", Workshop on Open-Source EDA Technology (WOSET), November 2020.
@article{zhang-cocoon-woset2020,
title = "{Cocoon: An Open Source Infrastructure for Integrated EDA with Interoperability and Interactivity}",
author = {Jiaxi Zhang and Tuo Dai and Zhengzheng Ma and Yibo Lin and Guojie Luo}
journal = {Workshop on Open-Source EDA Technology (WOSET)},
month = {Nov},
year = {2020},
}
Cocoon: An Infrastructure for Integrated EDA
Cocoon is an open-source infrastructure for integrated EDA with interoperability and interactivity. It contains a set of cross-tool interfaces and plays the role of EDA agent that can help IC designers choose EDA point tools to assemble a legal design flow and to produce ICs with a higher quality of results (QoR). It can also help EDA researchers and tool developer research new design methodology and cross-stage optimization. Below are key features of Cocoon:
Cocoon Architecture
Dependency
Setup
Basic Usage
Once you have installed the previous required dependencies, you can run Cocoon from the command line using your customized configuration file in INI format.
Three demo configurations
demo/config.sample1.ini
,demo/config.sample2.ini
,demo/config.sample3.ini
are provided, where your can find detailed description of user-defined options from the comments. Here’s an example of 2 parallel flows.You can directly run with the sample configurations with the demo designs, gcd (Verilog) and ALU (Chisel), together with the open-source FreePDK45nm library we provide in
./demo/
. For example:With correctly customized configuration, you can run your own flow by executing:
Ongoing work
Related works
Publication
If you use cocoon in your research, please cite our WOSET’20 paper:
Jiaxi Zhang, Tuo Dai, Zhengzheng Ma, Yibo Lin, Guojie Luo, "Cocoon: An Open Source Infrastructure for Integrated EDA with Interoperability and Interactivity", Workshop on Open-Source EDA Technology (WOSET), November 2020.