この記事は、オープンソース半導体 Advent Calendar 2025 の9日目の記事です。qiita.com
オープンソース半導体ということで、誰でも無料で設計できる環境があるのですが、実際にやろうとする人はまだまだ少数
ですが「CPUを作る!」というとソフトウェアエンジニアの皆さんも少し興味が湧くのではないでしょうか?
まあ、CPUといっても今回ワタシが作ったのは1ビットのCPUなんですが☺️
何か手を動かして作るということは、とても大事ですよね!
まずは設計環境をつくることからはじめます。
コレはWindowsPCにWSL のイメージを入れるだけ!カンタンです!
環境が作れたら、「こういう回路を作ろう!」という回路設計をします。
今、ワタシが使っているソフトウェアは Xschem(エックススキーム)です。
今回の回路はこちら

今のところ、回路設計から自動的にレイアウト設計はしてくれないので
製造する時に使うgdsデータは自分で回路設計図を見ながらレイアウトしていきます。
レイアウトで使うソフトウェアはKLayout(ケイレイアウト)です。
今回の設計は、スタセル(スタンダードセル)と呼ばれる AND や OR などの論理回路を、置いてつないでいくだけの設計です!
設計したものを実際に製造するとなると、ファブと呼ばれる製造工場ごとに作り方が違うため、「こういうルールで作ってくれ!」という独自のルールがあります。
そのルールを守って設計してないと製造できませんので、ルールが守られているかチェックする必要があって、それをDRC(デザインルールチェック)といいます。
レイアウト設計できた!って思ってもこのDRCが通らないといけません。
やっとDRCが通ったとなっても、これで終わりではなくLVS(Layout versus schematic)を通る必要があります。これは回路図と製造用のレイアウトが同じかどうかチェックするものです。
ここでハマることがあります。今回はハマってしまってなかなか通らなかったんですが、寝不足だと集中力が切れちゃう時があるので、ひと晩しっかり寝て見直すと、いろいろミスを発見することができました。なんで昨日できなかったんだろう?不思議!
それで完成したレイアウトがコレです。

自分でつくる喜び!満喫!
あと、レイアウト設計することで、自分の好きな絵を載せられる楽しみがあります!
メタル層で自分のSNSのアイコンを作ってみました!

2月には製造されてくる予定らしいので、とっても楽しみ!
実際にモノがくるっていうのが素敵ですよね!
興味のある人は、ぜひオープンソース半導体系コミュニティ「ISHI会」の
Discord を覗きにきてくださいねー!
待ってまーす💖
明日は@jun1okamura (Jun-ichi OKAMURA)さんの『KLayout の Python API を試してみた!(Instance Class)』です!お楽しみに〜
(おしまい)