OpenLane セットアップガイド(2024年1月版)

(2024/01版)efabless 社 chipignite サービスを利用したチップ作製を目指す.

動作環境

動作環境 : Windows11 22H2, VMWare workstation pro 17.0.2, Ubuntu 22.04.3 LTS

使用ソフトウェア : OpenLane 2024.01.12

2024年1月現在,OpenLaneは頻繁に更新されており,導入手順がそのまま利用できない場合も予想される.

必要パッケージの導入

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python3 python3-venv python3-pip make git
python3 -m pip install pyyaml click

Docker-ce, community edition の導入

docker は 無償の商用利用可能な CLI を導入する.(docker desktopは有償)

2024年1月現在,無償のDockerエンジンのみの導入方法は英語ドキュメントのみであり,そちらを参照する.

公式情報:https://docs.docker.com/engine/install/ubuntu/

まず,Dockerの公開鍵を設定する.ca-certificates 導入時にエラーなど発生する場合は,sudo apt autoremove を実行する.

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

つぎに,Dockerのレポジトリを設定する.

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

エンジンのインストールを行う.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

dockerの動作確認を行う.

sudo docker run hello-world

ローカル計算機でdockerをユーザ権限により動作させる設定

グループ docker にユーザを登録してユーザ権限で実行できるように設定する.なお,hello-world 実行時に設定が反映されない場合は再起動する.

sudo groupadd docker
sudo usermod -aG docker ${USER}
docker run hello-world

参照: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04

Docker導入のトラブルシューティング

パッケージ元の追加を実行すると,apt 実行時に「複数回設定されています」など表示されインストールなどできない状態となる.

これは,/etc/apt/sources.list.d/ 下のパッケージ記述が重複しているため.grep /etc/apt/sources.list.d/* docker など実行した際に複数表示される場合は,当該の *.list からdocker記載を「#」でコメントアウトすることで回避できる.

Docker導入のトラブルシューティング2

日本語翻訳のDockerバージョン19など古いインストール方法では,GPGの公開鍵が無効である不具合が生じることがある.この場合,下記の手順によりdockerエンジン,レポジトリの削除により回避する.

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt remove docker-ce
sudo apt autoremove

sudo rm /etc/apt/sources.list.d/archive_uri-https_download_docker_com_linux_ubuntu-jammy.list
sudo rm /etc/apt/sources.list.d/archive_uri-https_download_docker_com_linux_ubuntu-jammy.list.save

OpenLane 本体(dockerコンテナ)

サイズが大きいため,gitではdepthにて最新のコミットを取得する様に指定する.

git clone --depth 1 https://github.com/The-OpenROAD-Project/OpenLane.git
cd OpenLane
make

動作テスト.designs/spm/runs/openlane_test_results 下にテスト回路がビルドされる.

make test

VMのDISPLAY設定変更

OpenLaneのコンテナ起動スクリプトmake mountでは,hostネットワークが利用される.このとき,XwindowのGUIを接続することができない場合がある.

(恐らくWindows上のVMwareの場合,Microsoft Defenderにてブロックされている)

このため,Makefile の34行DOCKER_OPTIONSにて,–network hostを–network bridgeに変更する.

DOCKER_OPTIONS += -e DISPLAY=$(DISPLAY) -v /tmp/.X11-unix:/tmp/.X11-unix -v $(HOME)/.Xauthority:/root/.Xauthority --network bridge --security-opt seccomp=unconfined

最後に,make test にて合成した回路を表示させ,正しく表示されることを確認する.

make mount
klayout -e -nn $PDK_ROOT/sky130A/libs.tech/klayout/tech/sky130A.lyt \
   -l $PDK_ROOT/sky130A/libs.tech/klayout/tech/sky130A.lyp \
   ./designs/spm/runs/openlane_test/results/final/gds/spm.gds