読者です 読者をやめる 読者になる 読者になる

幼女でもできる自作CPUチップ (8) ALUのLSI向けレイアウト

電子工作 自作LSI

 前回の記事

ourfool.hatenablog.com

では、CPUを構成する基本の基本の素子である論理ゲートのレイアウトをおこなった。

 今回は、これらの論理ゲートを組み合わせて、半加算器から全加算器、さらには、ALUのレイアウトを作っていく。

 まず、NANDゲートとインバータを組み合わせて半加算器を作る。

f:id:ourfool:20160715231701j:plain

続いて、この半加算器を組み合わせて全加算器を作る。

f:id:ourfool:20160715231747j:plain

さらに、全加算器にマルチプレクサとインバータを加えて、減算を可能にする。

f:id:ourfool:20160715231906j:plain

最後にNANDゲート、NORゲートとマルチプレクサを追加して、論理演算機能を追加すれば、1bit ALUの完成である(勝利)

f:id:ourfool:20160715232021j:plain

 ここまでで1bitのデータに対して加減算や論理演算ができるALUを作ったわけだが、それではあまりにつまらないことしかできないので、これを4つ組み合わせて4bitの計算を可能にする。基本的に4つ並列にするだけなので簡単である*1

f:id:ourfool:20160715232458j:plain

ここで、周りを囲っている線は電源とGND。リング状にしておくと色々と捗る。

 さて、レイアウトが終わった段階で、4bit ALUの機能をLT Spiceでもって検証した。今回使わせていただいたツールには、トランジスタの接続を表現するネットリストをレイアウトから抽出する機能がある。抽出したネットリストをLT Spiceで検証し、所望の動作を示していれば安心といったわけである。

f:id:ourfool:20160715232939j:plain

上に加算モードでのALUの動作を示した。波形は上4つが出力、下8つは4bitから成るData1, 4bitから成るData2である。クッソ不親切だが、よく見ると加算動作がおこなわれていることがわかるはずである。

 そんなわけで(詳細に説明するのが面倒だしつまらないのでドチャクソ駆け足にはなったが)、テストチップ向けの4bit ALUのレイアウトと検証を完了した。この回路が載ったテストチップは8月の頭に製造予定で、9月には測定による検証が始められるはずである。なお、実際にチップ内のパッドにつながれたレイアウトは以下のような感じになった。

f:id:ourfool:20160715233403j:plain

いろいろと深く考えた結果、空きスペースにはとある萌えキャラを搭載した。わかる人には今後の意図がわかる(?)かもしれない。ご期待いただきたい。

 そんなわけで、テストチップ用のALUのレイアウトと検証を完了した。次回は測定用の基板設計、あるいは、実際のチップ製造について書く予定である。

*1:ただし、加減算器のキャリー信号だけはケアしてやらなければならない。