「CPUの創りかた」を読んでCPUをつくった(ガーバーデータ配布あり)

「CPUの創りかた」を読んでCPUをつくった(ガーバーデータ配布あり)
カテゴリー: まなぶ
投稿日:
更新日:
書いた人: 山椒ねこまんま

図書館で「CPUの創りかた」を借りて読んでみたところ、CPUをつくりたくてたまらなくなってしまいました。

勢いのままに制作を開始しとりあえず完成させることはできたのですが、ずいぶん不恰好なものになってしまいました(サムネイルを見ていただけるとすぐにわかると思います)。

せっかくなので作成記録を残しておきます。


部品

品名個数値段
100uF 16V 電解コンデンサ117
10uF 16V 電解コンデンサ351
74HC10155
74HC14150
74HC32128
74HC74133
74HC1382100
74HC1532118
74HC1614396
74HC2831187
74HC5401119
DIPスイッチx4144
DIPスイッチx8161,232
単極双投(SPDT)トグルスイッチ2(家にあったやつ 200円くらい)
DIP14 ICソケット4160
DIP16 ICソケット9450
DIP20 ICソケット169
USB_C Receptacle1(Amazonで購入 10個399円)
ピンヘッダ 2.54mm 1x22---
ピンヘッダ 2.54mm 1x42---
ピンヘッダ 2.54mm 1x82(家にあったやつ 合わせて30円くらい)

部品のほとんどは樫木総業で注文しました。 合計で大体 4,000円 でした。

後々基板(PCBA)に大体 6,000円 かかったので、合計 10,000円 ほどでつくれたことになります。


設計

回路

設計には KiCad 7 を使用しました。

クロック・リセット回路

クロック・リセット

CPU・電源回路

CPUと電源

ROM回路

ROM

高画質版(SVG)は こちら からご覧いただけますよ!

ほとんど本に載っている回路のままですが、 こちらのブログ を参考に、74HC154 を入手性の良い 74HC138 に置き換え、実行中のメモリ位置を表示するようにしました。

また、電源をDCジャックではなく USB C から取るようにしました。


基板

クロック・リセットとCPUと電源の基板

クロック・リセットとCPUと電源

ROM基板

ROM

基板料金と運送料の関係上 10cm x 10cm に収めたかったので、CPU達とROMとで基板を分けました。

はじめての基板設計だったのでなかなか楽しかったです。 フットプリントの選定ミスをやらかしてしまいましたけどね。

まぁ動いたからヨシ!!

ちなみにこの画像は修正版のものです。 修正前のやつは撮り忘れちゃいました。 修正したのはピンヘッダとトグルスイッチのフットプリントです。


組み立て

届いた基板

JLCPCBに注文した基板が届いたので組み立てていきま...あれ?

基板のミスに気づく

なんかピンヘッダ用の穴がちっちゃいな...

そう、実物が届いたタイミングでようやく設計ミスに気づきました...

このあと、トグルスイッチ用の穴が小さいことも発覚

といっても、また 6,000円払うのもな〜と思ったのでこの基板のまま続行することにしました。 このときは動作するかどうかもわかりませんでしたし

手配線

ピンヘッダ用のところにはんだ付けしようとしてもうまくいかなかったので、電気的に同じDIPスイッチやピンソケットの足を KiCad で確認して配線しました。

なかなか芸術的です。

完成

完成!


テスト

こちらのページ にのっているテストプログラムを実行してみました。

テスト1

out im 命令テスト

テスト2

mov A,im / add A,im / mov B,A / mov B,im / add B,im / mov A,B / out Breg / jmp im 命令テスト

テスト3

in A / in B / jnc im 命令テスト

問題なさそうです!


感想

設計ミスに気づいたときは焦りましたが、ちゃんと動作してくれて安心しました。

これで私も CPU制作経験者 になったわけです!☆
といっても今回はほぼ本のままにつくっただけですので、次は独自設計でつくってみたいですね。

「CPUの創りかた」はとってもわかりやすいのでおすすめですよ!

そしてもし読んだなら、せっかくですのでCPUをつくっちゃいましょう! とてもいい経験になりますよ〜


ガーバーファイル

ガーバーファイル(修正版)とKiCad7プロジェクトファイルは GitHub においてあります。 JLCPCB用に書き出したものなので他の製造業者で問題なく使用できるかは不明です。

JLCPCBに発注する場合、PCBAに使用するパーツのページでBasic以外のものは実装しないようにしないと高つくので注意してくださいね。


アプリを作ったりしています! よかったらみていってくださいね→ つくったもの
今のイチオシ↓