openlane gfmpw-1b 環境構築メモ
OpenMPW(GFMPW-1)に参加するためのopenlaneとcaravelの環境構築
M1-Macを使ってるので参考になる人は少ないと思われる。
バグが何個かあるので修正しないといけない(バグが残ってるのになぜ募集を開始したのだろうか?)
前提条件:xquartzとdockerをインストール済み
openlaneの環境構築
git clone
GFMPW-1のページによると、gfmpw-1b
を引っ張ってこいとのこと。
git clone -b gfmpw-1b https://github.com/efabless/caravel_user_project.git
detached HEAD状態になるので、直してあげる。
git checkout -b <branch name> gfmpw-1b
OpenMPW入門 改訂版によると、いくつか環境変数を設定してあげないといけないようだ。makefileを見たところ、この環境変数をよしなに設定してくれそうな雰囲気を感じるが、ダメだった。ちゃんと設定しよう。
# こいつは要らないけどあったほうが便利だと思う
export CARAVEL_USER_PROJECT=$(pwd)/caravel_user_project
# この3つの環境変数が必要
export OPENLANE_ROOT=${CARAVEL_USER_PROJECT}/dependencies/openlane_src
export PDK_ROOT=${CARAVEL_USER_PROJECT}/dependencies/pdks
export PDK=gf180mcuD
setup
まずcd $OPENLANE_ROOT
する。そこにあるmakefileがおかしいので修正する
ifeq ($(PDK),gf180mcuC)
PDK_FAMILY = gf180mcu
endif
ifeq ($(PDK),gf180mcuD) # この3行を追加する
PDK_FAMILY = gf180mcu # もしかしたらOpenlane側でもう修正されてこの手順は不要かもしれない
endif #
終わったら
make pdk
make setup
test
以上でopenlaneの環境構築が終わった。一応確認しておく
make test
してBasic test passedと出れば問題なくインストール出来ている。
GUIの設定(Linuxならこの手順は不要)
まずはxhost +localhost
を実行。
次に、再び$OPENLANE_ROOT/Makefile
を修正する。
X Window関連のDockerオプションの設定を行う部分があるが、Linuxの場合しかない(なんで???)ので、Macの場合の記述を追加してあげる。else ifeq...Darwin
の箇所。DISPLAY=host.docker.internal:0
にしないとダメだった。もっといい方法があれば教えてください!!!!!!
# Allow using GUIs
UNAME_S = $(shell uname -s)
ifeq ($(UNAME_S),Linux)
DOCKER_OPTIONS += -e DISPLAY=$(DISPLAY) -v /tmp/.X11-unix:/tmp/.X11-unix -v $(HOME)/.Xauthority:/.Xauthority --network host --security-opt seccomp=unconfined
ifneq ("$(wildcard $(HOME)/.openroad)","")
DOCKER_OPTIONS += -v $(HOME)/.openroad:/.openroad
endif
else ifeq ($(UNAME_S),Darwin)
DOCKER_OPTIONS += -e DISPLAY=host.docker.internal:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v $(HOME)/.Xauthority:/.Xauthority --network host --security-opt seccomp=unconfined
ifneq ("$(wildcard $(HOME)/.openroad)","")
DOCKER_OPTIONS += -v $(HOME)/.openroad:/.openroad
endif
endif
klayout
引き続き$OPENLANE_ROOT
で作業する。make mount
でDocker環境に入ったあと
.flow.tcl -design spm
でspmとかいうデザインをビルドする。終わったら
klayout designs/spm/runs/RUN_<time stamp>/results/final/gds/spm.gds
でレイアウトを確認できる。
やったぜ!
Caravelの環境構築
実は上記の手順でCaravelとOpenLaneを両方インストールしてくれている。なので特にやることはない。
Caravelの動作確認
cd $CARAVEL_USER_PROJECT
make user_proj_example
make user_project_wrapper
klayout gds/user_project_wrapper.gds