OpenLane設計フロー |
![]() |
GuiHubのefabless/OpenLaneで説明されているOpenLaneのフローを簡略化すると左図のようになる。標準的なスタンダードセルの設計フローであり、大まかに見ると、論理合成(黄) -> 配置配線(緑) -> 物理検証(青)を自動的に行っている。各設計工程に関する用語は下表のとおり。
|
新規プロジェクトの作成 |
cd OpenLane // 作業ディレクトリに移動(好きな名称でよい) git clone コピーしておいたURL
export OPENLANE_ROOT=$(pwd)/dependencies/openlane_src export PDK_ROOT=$(pwd)/dependencies/pdks export PATH=$PATH:~/.local/bin export PDK=sky130A
source ~/.bashrc cd ~/OpenLane/test01 mkdir dependencies make setup
Successfully installed *** Version *** enabled for the sky130 PDK. make[1]: ディレクトリ 'OpenLane/test01' から出ます
pip install click pip list | grep click // バーションの確認
サンプルプロジェクトのシミュレーション |
cd ~/作業ディレクトリ(OpenLane)/プロジェクト名(test01)/verilog/rtl ls -l
/*--------------------------------------*/ /* User project is instantiated here */ /*--------------------------------------*/
![]() |
[参考] 設計された回路は、user_project_wrapper(またはuser_analog_project_wrapper)に搭載され、user_project_wrapperは、Caravelハーネスに搭載されチップとなる。通常のチップ設計では、パッドとIO回路をチップの周辺に並べて設計したコアに繋ぎこむ作業があるため手間がかかるが、Caravelでは少しの設定とコマンドで実行できる。 |
cd ~/OpenLane/test01/verilog/includes more includes.rtl.caravel_user_project
cd ~/OpenLane/test01/verilog/dv cp -rf io_ports user_proj_example cd user_proj_example mv io_ports.c user_user_proj_example.c more user_user_proj_example.c
mv io_ports_tb.v user_proj_example_tb.v
cd ~/作業ディレクトリ(OpenLane)/プロジェクト名(test01)/ make verify-user_proj_example-rtl
gtkwave verilog/dv/user_proj_example/RTL-user_proj_example.vcd
サンプルプロジェクトのコンパイル |
cd OpenLane/プロジェクト名(test01) less verilog/rtl/user_proj_example.v
make user_proj_example
make user_project_wrapper
klayout gds/user_proj_example.gds &