先日、初めての半導体設計を体験してきました!
「一日で環境構築~回路~レイアウト~テープアプトまでを一気にやる」という素晴らしい企画で、大変貴重な機会だったこともあり、ブログに記載します。
参加した経緯
自作OS/CPUをやっているフォロワーさんが、8bit CPUをテープアウトしたという話を聞いていて、その中で「OpenMPW Shuttle Program」という仕組みを知りました。
RISC-V 2023 Summerで発表していたみたいです。
「OpenMPW Shuttle Program」とは、無料で130nm or 180nmプロセスの半導体を製造できるGoogle後援の素晴らしい仕組みです。
> Google は GlobalFoundries、SkyWater Technology、Efabless と提携して、製造可能なシリコンの設計をあらゆるデベロッパーが行えるように、完全なオープンソースのプロセス デザイン キット(PDK)とツールチェーンを提供しています。
> 1 か月おきにオープンソースの設計を提出して Open MPW シャトル プログラムに参加し、無料で製造してもらうことができます。
自分も半導体製造してみたい、やり方を知りたいと思っていたところ、X経由で初心者向け&テープアウトまでサポートして貰える本イベントを知り、参加しました。
バックグラウンド
普段は、家電系メーカーでAI/SW/システムエンジニアをしています。
大学でMEMS(Micro Electro Mechanical System)の研究をしてはいましたが、出身が機械系なこともあり、半導体は知識のみ。
理論的には少し勉強しているが、実務経験0のSWエンジニアという状態でした。
イベントの流れ
当日まで
環境構築を事前に実施しました。
Githubに公開されているスクリプトを走らせるだけ。WindowsのWSL環境で実行。
#なお、7月末に実行したのですが8月にアップデートがあったことを知らず、当日実行し直しました。
当日
13:00に渋谷GMOへ集合。
#とても眺めの良いオフィスでした。。!場所提供に感謝。
おそらく顔見知りな方々が集まっていたみたいで、ソロ参加は自分ともう1~2人ほど?
大雑把な流れを把握。
当日のゴール
CMOSインバータの設計をして、テープアウト用データを作成しました。
詳細は以下リンクに資料が掲載されています。
CMOSインバータって何?という方には、こちらの記事が分かりやすくお勧めです。
(デジタル回路を履修している人向けに言うと、ようにNotゲートですね!
当日の流れ
#手順の右に記載している単語が、使用したツールです。
- 回路図(テストベンチ)を描く:xschem
- 回路のシミュレーションを行い、回路特性を確認する:LTSPICE
- 回路図を基にレイアウトを描く:klayout
- レイアウトを検証する:klayout
- Githubに設計ファイルをアップロードする
- インバータをフレームに乗せてピンと接続する(事務局で実施して下さりました)
詳しくは以下リンクをご確認下さい。
使用したツール
全部セットアップスクリプトを実行すればインストールされます。
xschem schematic circuit editor - VHDL Verilog Spice netlister
KLayout Layout Viewer And Editor
当日詰まった箇所
①環境構築が実は出来ていなかった。
→最新セットアップスクリプトを実行して解決ウ!
②xschemのGUI操作やボタンが分からん
→優しくメンターの方に教えて頂きました。
③シミュレーションが起動しない。。
→wslのhome直下にsrcディレクトリが作成されており、その中からコードをコピー(したはず)
④Klayoutの起動でエラー発生
→セットアップスクリプトを実行すればOKと言ったが、あれは嘘(嘘ではない)で、Ubuntu環境によっては上手く入らない模様。
Klayoutの公式ページからdebパッケージを直接持ってきて
sudo apt -qq install -y ./klayout_$KLAYOUT_VERSION-1_amd64.deb
でインストールしたら起動した。
⑤PFETとNFETの配置が資料通りにならなくてよくわからん
→確か選択>移動タブ>回転>180℃回転させた(気がする
⑥DRCが通らない。。
→Database unitを0.1μmにする、ワイヤーのXY座標を整数にする、直線or直角にする。
⑦LVSのやり方がわからない。。
→OpenRule1umPDK_KLayout/macros at main · 3zki/OpenRule1umPDK_KLayout · GitHub
からスクリプトをダウンロードして、lib/PTC06フォルダにいれた(気がする
klayoutを再起動して、新しくできたタブからチェックを実行。
感想
おんぶ抱っこでしたが、とりあえず最後まで設計出来ました!!
テープアウトして実物が届くのは2025年年明けとのことで、楽しみに待っています。
企業のNDAで秘密とされている半導体設計のノウハウが知れて大変勉強になりました。
開催して下さったISHI会の皆様、ありがとうございました!!
----------------
大学後半~社会人1年目にかけて、低レイヤに情熱を持つ方々に感化されて自作OSを勉強し始め、「NAND2Tetris」というNANDからOS上で動くテトリスを動かすコースを受講しました。
(日本語だと「コンピュータシステムの理論と実践」という本で同等の内容が出ています。
ゆくゆくはこのCPUを設計出来たら良いなあ。。
「ディジタル回路設計とコンピュータアーキテクチャ」という本も好きで、こちらも活かしたい。
(もう少し実用よりにしたい気持ちもあり