トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第248回]
●TTL(HCMOS)で作る4ビットCPU組立キット
久し振りの連載再開です。
前回([第247回])を書きましたのが5月14日でしたからちょうど5ヶ月振りということになります。
前回は春真っ盛りの季節でしたのに今はもう秋風が吹く季節になってしまいました。
おお。
まるで能因法師です。
その間なにもしていなかったわけではありません。
ご承知の通りその間は「TINY BASIC」について書いていたのですけれど、そればっかりじゃありません。
そんな悠長なことをしておりましたら、老い先短い命がじきに尽きてしまいます。
え…と。
はて。
何をやっていたんでしたっけ。
このところ物忘れがとみにひどくなってきております。
前回のところを読み直してみましたら
まずは「新トランジスタロジック回路組立キット」の試作基板を作って、それから…。
と書いております。
コロナウィルスの影響らしくてその試作基板がまだ出来てきません。
ということで試作基板ができてくるのを待っている状況だったのでした。
ええ。
試作基板はもうとっくの昔に出来上がってきております。
それで試作を行なって、その結果、もう製品版の「新トランジスタロジック回路組立キット」もしっかり出来ております。
それだけでも皆様にご披露申し上げればよいのですけれど、なにしろまだ「TINY BASIC」の連載中であったということもあって、つい書けずに今まできてしまいました。
今まで書かずにきてしまったのには別の理由もありました。
前回を読み直してみますと、
「TTLで作る4ビットCPU組立キット」をまず作りたいと思います。
なんてことを書いています。
そうそう。
そういうことだったのでした。
まずは「新トランジスタロジック回路組立キット」を作って、それから「トランジスタで作る4ビットCPU組立キット」を作るというつもりだったのですが、その前に「TTLで作る4ビットCPU組立キット」なんてものがあるとよいのではなかろうか、という考えが頭に浮かびました。
そういうことなら「新トランジスタロジック回路組立キット」はその後の方がよいのでは?
「TTLで作る4ビットCPU組立キット」なんてものが頭に浮かんでしまったものですから、それが出来てしまうまで「新トランジスタロジック回路組立キット」の発表は棚上げ、ということにしてしまいました。
また前置きが長くなってしまいました。
その「TTLで作る4ビットCPU組立キット」もできております。
と言うか、ちょうど出来立てのほやほやです。
ですのでこれからしばらくその内容紹介を書きました後で、「新トランジスタロジック回路組立キット」とともに発売開始ということにしたいと思っています。
実のところ5ヶ月かけてやっとそこまで出来たところですので、これから本格的に「トランジスタで作る4ビットCPU組立キット」に取り組む予定です。
勿論、勿論忘れてはおりませんです。
最終的には「TTLで作る8ビットCPU組立キット」につなげていくつもりです(それまで生きておれるかなあ)。
またまた戯言を書いてしまいました。
まずは「TTLで作る4ビットCPU組立キット」の実物写真から紹介いたします。
以前にも書いておりますように、正確にはTTLICではなくてHCMOSICですから、「HCMOSICで作る4ビットCPU組立キット」と書くべきなのですが、どうもやっぱり収まりがよくありません。
写真を見ていただければわかりますようにTTLICではなくて74HCシリーズを使っています。
こちらがHCMOSIC版4ビットCPUの中心とも言うべきレジスタ回路基板です。
そうそう。
4ビットCPUですから名前は「MYCPU4」にしました。
こちらが命令デコード回路です。
REG/IO基板とDECODE基板の2枚で4ビットCPU回路を構成します。
えっ?
たったこれだけ?
そう。
たったこれだけです。
これだけで「トランジスタ技術」誌2020年5月号の4ビットCPU回路の「上位」互換回路になっています。
ここで「上位」と書いたわけはいずれ詳しく説明することになりますが、「MYCPU4」は同誌発表の回路にさらに少しですが機能追加をしているからです。
「トランジスタ版4ビットCPU」はこの2枚の基板の回路をトランジスタ化することになります。
こちらは「トランジスタ技術」誌の回路にはない回路です。
ROM/RAMとCPUクロック回路です(あ。「トランジスタ技術」誌の回路にもクロック回路は有りましたよね)。
CPU回路に対して外部メモリ、クロック回路ということになります。
本来はCPU回路の外に置くべき回路ですから、この回路はトランジスタ化しません。
「トランジスタ版4ビットCPU回路」ができたときにもその外部回路としてそのままつないで使うことを想定しています。
RAMだけではなくてROMも実装できるように考えてあります。
こちらはスイッチ入力回路です。
昔懐かしいスイッチパチパチ回路です。
アドレス8ビット、データ8ビットの入力用外部回路です。
この回路を使って上のメモリ回路のRAMにプログラムを書き込みます。
注意深い読者でしたらひょっとすると「トランジスタ技術」誌の4ビットCPUのアドレスは4ビットなのでは?
ということにお気付きかもしれません。
そこのところにもどうしても工夫したかった「上位互換」があります。
せっかくRAMとして62256を搭載するのに、そのうちのたった16バイトしか使わないなんてあんまりではないか、と考えました。
まあ、五十歩百歩かもしれませんが、せめて256バイトぐらいのプログラムが組めなくては実際にはおもちゃ程度のことしかできないのではないかと思います。
で、そこをなんとか工夫してせめて8ビットアドレス、256バイトのメモリ空間を使うことができるように考えてあります。
ですからアドレス入力スイッチはA0〜A7の8ビットです。
「トランジスタ技術」誌の4ビットCPUもデータはD0〜D7の8ビットです。
上の4枚の基板を接続しました。
この4枚だけで単独動作します。
それだけでは面白くありません。
せっかくND80Z3.5があるのですから、有効活用を考えましょう。
ND80Z3.5の82C55に接続して、BASICプログラムでRAMに命令を書き込むこともできるように考えました。
BASICでプログラムを書くといっても実際には4ビットCPUの命令コードを82C55経由でRAMに対してOUTするだけです。
スイッチパチパチのほうが早いですけれど、一番の強みはプログラムをセーブしておくことができるという点です。
実際回路のテストをする過程でND80Z3.5は大いに役立っています。
時間があったらMYCPU4のマシン語命令用の簡単なアセンブラも作ってしまいたいと思っています。
それで作成したオブジェクトプログラムをND80Z3.5経由でRAMに書き込めるようにできたら便利だと思います。
トランジスタでCPUをつくろう![第248回]
2020.10.14upload
前へ
次へ
ホームページトップへ戻る