Tanuki_Bayashin’s diary

電子工作を趣味としています。最近はラズベリーパイPicoというマイコンを使って楽しんでいます

【TB-04】4bitCPUの設計(addr 8bit ver)

※なにか気になる点がありましたらコメント欄にご記入ください。

  • 1.はじめに
  • 2.ver2の位置づけ
  • 3.命令フォーマットと命令セット
    • 3.1 2語命令にした理由
    • 3.2 プレフィックス方式のopcode
    • 3.3 命令一覧
  • 4.フラグの保持
  • 5.メモリとスタック
    • 5.1 メモリマップ
    • 5.2 スタック
  • 6.ALUとデコーダのROM
    • 6.1 ALU ROM
    • 6.2 デコーダROM
  • 7.シミュレータで確かめる
  • 8.まとめ
    • 関連記事

1.はじめに

自作4bit CPU「TB-04」のアドレス8bitバージョン(ver2)が完成しました。製作の記録を、設計、回路図とPCB設計、基板が届いてから完成するまでの3回に分けてご紹介します。今回はその1回目、設計編です。

アドレス4bitのver1は、プログラムが16語までしか書けませんでした。そこでver2では、データは4bitのまま、アドレスを8bitに広げてアドレス空間を256語にしました(後で分かりますが実際の命令は96命令までです)。あわせて命令を16から34に増やし、フラグの保持、データメモリ、スタックを加えています。

ver1の記事は次の3本です。

回路図とPCBは GitHub で公開しています。

写真1 TB-04ver2 全体図
続きを読む

FPGA(Tang Primer 25K)にてLチカしてみた

※なにか気になる点がありましたらコメント欄にご記入ください。また、工作や回路を製作する場合には、細かい作業などに対して、細心の注意を払われるようお願いいたします。

【目次】

  • 1.はじめに
  • 2.EDAのインストールからマッピングまで
  • 3.プログラミング時の不具合
  • 4.FLASHメモリにも書き込みたい
  • 5.LEDの点滅周期
  • 6.まとめ
  • 付録 openFPGALoaderのインストールの仕方

1.はじめに

いろいろあってFPGA(Tang Primer 25Kという機種)にてLチカしてみました。

写真1 実機の写真

Tang Primer 25Kについて(秋月電子)
akizukidenshi.com

プログラマーでFPGAに書き込むときにつまづいたのでその辺についてまとめておきたいと思います。

また過去にFPGAの使い方の基礎についてまとめたものも載せておきます。
tanuki-bayashin.hatenablog.com

続きを読む

【TB-04】自作したCPUの命令ROMをメモリ拡張してみた

※なにか気になる点がありましたらコメント欄にご記入ください。また、工作や回路を製作する場合には、細かい作業などに対して、細心の注意を払われるようお願いいたします。

【目次】

  • 1.はじめに
  • 2.拡張の仕方

1.はじめに

自作した4bitCPU(TB-04)のアドレス空間が16ビットしかなかったので、16進のロータリースイッチを使って上位4ビット分をメモリ拡張してみました。

実際はメモリ拡張と言うより、プログラムの切り替えを行っている程度ですが、自分用の備忘録としてまとめておきます。

写真1 製作したページ切り替えのためのロータリースイッチ

実際の写真を上に示します(荒っぽい配線をしました)。

tanuki-bayashin.hatenablog.com

tanuki-bayashin.hatenablog.com

続きを読む

AIとの対話 その7 電気の歴史~CPU誕生

AIと対話しながら話を書いています。CPUが誕生するまでを追ってきました(執筆担当はAIです)。

  • 導入
  • 1. 見捨てられた設計図
  • 2. 電卓用の十二個のICからの出発
  • 3. 二つの路線、一つの答え
  • 結び
  • 後日談

導入

1969年、頭脳の材料はすでにそろっていた。ICは集積密度の壁を崩し、TTLは配線を共通の言葉に変え、電卓戦争は買い続ける顧客を生んだ。あとは誰かが、それを一枚のチップに組み上げるかどうかだった。

同じ年、複数の企業がほぼ同時にその作業に着手していた。CTC(データポイント社)、TI、そしてインテル。三社は同じ種を手にしていたが、育てる理由の強さは同じではなかった。

続きを読む

【TB-04用】7SEG表示装置(16進)の製作

※なにか気になる点がありましたらコメント欄にご記入ください。また、工作や回路を製作する場合には、細かい作業などに対して、細心の注意を払われるようお願いいたします。

【目次】

  • 1.はじめに
  • 2.回路図
  • 3.ソフトウェア
    • MounRiver Studio の使い方
    • 書き込みでつまずく2点
  • 4.動作のようす
  • 5.まとめ

1.はじめに

16進表示ができる7セグ用のLED表示装置を製作しました。7セグ用の表示装置では最近は10進表示が多く、16進に対応するものは見つけられませんでした。

そのため自分で作ってしまいました。マイコンはCH32V003を用いました。

図1 設計した7セグ表示器(3D表示)

ここでは7セグの表示器を作ったときのハード、ソフト両面について技術的な内容を備忘録として残しておこうと思います。

ちなみに以下の記事で出てくるMM74C922と組み合わせれば、キー入力した値を16進数で表示させることが可能になります。
tanuki-bayashin.hatenablog.com

●ちぇりーたくあん氏の設計を参考にさせていただいた点について
本作品の一部(XCH-Link Eと接続する端子のピン配置、電源端子近くのバイパスコンデンサの配置)は、ちぇりーたくあん氏(X:@cherry_takuan)によるNLP-16A のdebug回路設計を参考にし、本回路に適した形にアレンジして使用しています。
元設計は CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/) のもとで公開されています。

続きを読む

AIとの対話 その6 電気の歴史~ICの誕生

AI(Claude)と対話をし編集してまとめた記事です。CPUが生まれる辺りまでの歴史を追っています

  • 導入
  • 1. 巨大な需要、静かな圧力
  • 2. 電卓戦争という民生の需要
  • 3. TTLという規格
  • 結び

導入

固体素子の時代を経て、電子はシリコンという小さな結晶の中に居場所を得た。だが、この結晶は最初から「計算する」ために生まれたわけではない。トランジスタも、集積回路も、電気を制御し、増幅し、記憶させるための道具として生まれ、その用途は計算機に限られてはいなかった。

それでも、この結晶はやがて一つの方向へ収束していく。命令を与えれば、その通りに振る舞いを変える。何のためのものでもなく、同時にどんな仕事の頭脳にもなり得る——そういう小さなチップが、この先の物語の到達点である。

その到達点にたどり着くまでに、いくつもの流れが合流することになる。国家の予算に支えられた巨大な需要、一円を削り合う電卓メーカーの競争、そして名もない技術者たちが積み重ねた小さな規格。それぞれ別の場所で動いていたものが、やがて一つの結び目に集まっていく。

その結び目がどうやって出来上がっていったか、ここから追っていきたい。

続きを読む

AIとの対話 その5 電気の歴史~ 固体素子の時代

  • 導入 ― 理論はそろった、後は本体だけ
  • 1. ENIAC ― 機械の時代の終わりと、電子の時代の始まり
  • 2. ガレージと研究所 ― 1939年のパロアルト、1947年のマレーヒル
  • 3.帰還 ― パロアルトに戻ったショックレー
  • 4. 普及 ― 特殊な市場から量産へ
  • 5. 配線の暴虐、そして一枚の欠片へ
  • 6. 一つの会社の、二つの物語
  • 結び ― 静かな収束

CPU前夜までの電気にまつわる歴史を、AIと対話をしながら作っているところです。

導入 ― 理論はそろった、後は本体だけ

前回の結びで、いくつかの名前が出そろっていた。ブール代数を回路に持ち込んだシャノン、計算という営みの限界を問うたチューリング、そしてその先に姿を見せかけていたフォン・ノイマンとENIAC。理論という意味では、この時点でほとんどのピースは揃っていたと言っていい。

ただ一つ、足りないものがあった。この理論を実際に動かすための、電子の身体である。

真空管は、電気信号を増幅し、スイッチのように制御することができた。だがその身体は大きく、熱を持ち、すぐに壊れた。理論がどれほど精緻であっても、それを支える部品がこの調子では、機械は倉庫ひとつ分の大きさになり、電源を入れれば街の明かりが揺らぐ。そんな時代だった。

この足りない身体を、電子たちがどうやって手に入れていったか。真空管の限界にぶつかった機械の話から、その身体を根本から作り替えることになる、ある固体の話まで。舞台は大西洋を越えたアメリカへと移る。

続きを読む