はじめに
先週は、SilicocCompilerのサンプルのログを眺めてみました。
SiliconCompilerは、surellog => yosys => OpenRoad のフローのASIC開発ツールです。
OpenLane
同じようなものに、OpenLaneがあります。
論文は、ここ : OpenLANE: The Open-Source Digital ASIC Implementation Flow ソースコード等は、OpenLaneは、OpenRordの github からダウンロードできます。
SiliconCompiler と同様に、
- Yosys : Yosys Open SYnthesis Suite
- openROAD : RTL to GDS in 24 hours, no human in the loop
- openSTA : Static Timing Analyzer
- Klayout : Your Mask Layout Friend
GDS = Graphic Design System
OpenROADの中で、Yosys + ABC を使っているんですね。
と
ZeroASIC でも使われている
- Magic : Magic is a venerable VLSI layout tool, written in the 1980's at Berkeley
- Netgen : Netgen is a tool for comparing netlists, a process known as LVS, which stands for "Layout vs. Schematic".
そして、
- Fault : Fault is a complete open source design for testing (DFT) Solution that includes automatic test pattern generation for netlists, scan chain stitching, synthesis scripts and a number of other convenience features.
- CVC : Circuit Validity Checker. Voltage aware ERC checker for CDL netlists.
- SPEF-Extractor : A Python library that reads LEF and DEF files, extracts the RC parasitics and generates their corresponding SPEF file.
- CUGR : CUGR is a VLSI global routing tool
も使われているようです。
Open Source な EDA については、 semiwiki.com にて、見つけることができます。
下図は、OpenLaneのgithubから説明のために引用します。
各ツールの詳細は、OpenLane Design Stages に詳しく書いてあります。
ビルドしてみた
Windows 11 Pro & WSL2 にて、ビルドしてみた。Dockerベース。
python3 -m venv YYYY source YYYY/bin/activate python3 -m pip install pyyaml click
docker の起動
sudo service docker start
git clone https://github.com/The-OpenROAD-Project/OpenLane.git cd OpenLane/ make pull-openlane
sudo usermod -aG docker <USER>
しても、docker の部分で文句言われたので、とりあえず、sudo 付けちゃえ!
sudo make pull-openlane make pdk
buildできたので、テスト
make test
マスクデータを klayout で表示。ドキュメントでは、results/spm.gds になっているけど、results/finishing/spm.gds の間違え。
klayout designs/spm/runs/openlane_test/results/finishing/spm.gds
OpenLaneって、tcl ベースなの? まー、EDA Tool のコマンドスクリプトは tcl なので。。。?
紹介ブログ
OpenLane と SkyWater PDK (process development kit)については、下記のブログが詳しいです。
おわりに
もともと、OpenLaneとSkyWater PDKが先で、SiliconCompilerは最近公開されたました。
OpenLaneとSiliconCompilerの違いは、SiliconCompilerは、PythonからOpenRoad等を呼び出しています。ユーザーからは何がどのように起動されているかまでは意識しなくてよく、Python APIとして定義されているものを使えばいいだけなのでPythonユーザーが多い現在の状況ではいいのでは?と思っています。