2021.10.2
前へ
次へ
ホームページトップへ戻る

トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


[第410回]



●トランジスタ版4ビットCPU「MYCPU4TR」組立キット発売のお知らせ

もっと早くここまで来たいと思っていたのですが、思っていた以上に時間がかかってしまいました。
やっと発売のご案内です。
価格やご注文の要領などについてのご案内の前に簡単にMYCPU4TR組立キットについて整理しておきたいと思います。

MYCPU4TRの完成写真は前回お見せしたばかりですが参考までに下に再掲いたします。

このように4枚の基板をスペーサーで固定して重ねて使います。
一番下がREGISTER/ALU基板です。
使用するトランジスタは482個(2SA1015と2SC1815各241個)です。
Aレジスタ、Bレジスタ、WレジスタとALU回路の基板です。
基板のサイズは縦200mm×横380mmです。
その上がPC/IO基板です。
PC(プログラムカウンタ)回路とOUTレジスタとIN回路の基板です。
基板のサイズは縦200mm×横330mmです。
使用するトランジスタは336個(2SA1015と2SC1815各168個)です。
その上はDECODE基板です。
命令をデコードして必要な信号を出力する回路基板です。
基板のサイズは縦200mm×横240mmです。
使用するトランジスタは242個(2SA1015と2SC1815各121個)です。
一番上はSW/CLOCK/MEM基板です。
この基板はCPUの外部回路になります。
命令コードを入力するトグルスイッチ回路と、命令コードを記憶するメモリ回路とCPUを動作させるためのクロック回路の基板です。
基板のサイズは縦200mm×横120mmです。
この基板はIC(および抵抗、コンデンサ、LED等)のみでトランジスタはありません。

スタンダードな使い方としてはこの写真のように一番上に置いたSW/CLOCK/MEM基板上のトグルスイッチを操作してRAM(62256)に命令コードを書いたあと、それを実行します。
上側の8個のトグルスイッチでRAMのアドレス(A0〜A7)を指定します。
下側の8個のトグルスイッチでRAMに書き込む命令コードを設定します。
左下にあるトグルスイッチを下側にするとプログラム書き込みモードになります。
上側にすると実行モードになります。
プログラム書き込みモードのときに右下にあるプッシュスイッチを押すとそのときアドレス指定用のトグルスイッチで設定しているRAMアドレスに命令コード指定用のトグルスイッチで設定している命令コードが書き込まれます。
そのようにするのがスタンダードな使い方ですが、そのほかに効率よくプログラムを書いたりそれを保存しておくためにND80Z3.5(またはND8080など)と接続して、BASICを使って命令コードを記述することもできます。
その具体的な使用例は[第258回]以降に書いていますので参照願います。
通常はRAMにプログラムを書いてそれを実行しますが、そのプログラムをROM化してROMで実行することもできます。
プログラムのROM化については[第290回][第293回]で説明をしています。

上では4枚の基板を組み立てた写真をお見せしました。
組み立てる前の部品実装前の画像は[第378回]にあります。
DECODE回路基板とPC/IO回路基板とREGISTER/ALU回路基板です。
DECODE回路基板はSW/CLOCK/MEM回路基板を作る前でしたからSW/CLOCK/MEM回路基板を取り付けるための穴が開いていません。
最終的な製品版ではそのための穴を開けるためにその近くの配線を一部移動しましたがそれ以外は製品版と変わりません。
部品を実装した画像は[第380回]にあります。
SW/CLOCK/MEM回路基板の画像は[第408回]にあります。

SW/CLOCK/MEM回路以外の回路図は[第392回][第397回]にあります。
SW/CLOCK/MEM回路は当初はHCMOSIC版MYCPU4の回路基板をそのまま使うつもりでしたのでMYCPU4TRのものとしては回路図はお見せしていませんでした。
あらためて以下に示します。
SW入力回路はHCMOSIC版と同じです


CLOCK回路です。

2MHzを追加しました。

MMU、MEMORY回路です。

RAMのアクセスタイムが速過ぎるための誤動作を回避するために一部回路を追加、変更しました([第387回])。
最終的にRAMにはアクセスタイムが遅い昔のRAMを使うことにしました([第408回])から、もとのままの回路でもよいことになったのですがそのようにプリント基板を作ってしまいましたからこの回路図が最終回路になります。

MYCPU4TRは「トランジスタ技術」2020年5月号特集の4ビットマイコンの「上位」互換マイコンです。
「トランジスタ技術」誌の4ビットマイコンにはRAMがなくプログラムアドレスは0〜Fだけですから組めるプログラムは最長でもわずか16ステップです。
それでは余りに短いのとやはりRAMを搭載すべきと考えてMYCPU4TRでは62256を実装しました。
62256は32KBのRAMですがさすがにその全範囲を使うのはやりすぎです。
無理の無い使い方ということでMMU回路によって00〜FFの256バイトのメモリ空間にアクセスできるように考えました。
MYCPU4TRのMMU回路については[第273回]で説明をしています。
そこで説明しているのはHCMOSIC版のMYCPU4の回路ですがMYCPU4TRでも同じです(回路図も一部を除いて同じです)。
MMU機能のほかにもMYCPU4TRでは「トランジスタ技術」誌の4ビットマイコンにはない機能を付加しています。
ADD命令やSUB命令はAレジスタを使って行なわれますがAレジスタに演算結果を残したままBレジスタでも計算を行ないたい場合があります。
その場合にはAレジスタの値を一時的にどこかに移しておいて、Bレジスタの値をAレジスタに移して演算後に結果をBレジスタに返してから、保留していたもとのAレジスタの値をAレジスタに戻すというプログラムを書くことになります。
ところが「トランジスタ技術」誌の4ビットマイコンにはAレジスタの値を保留しておくためのWレジスタがありません。
どうしているのかなあと思って確認してみましたらOUT回路とIN回路を接続してWレジスタの代用にしているようです。
その場合にはOUTポートもINポートも使えませんが確かにひとつのアイデアではあります。
しかしその使い方はさすがにちょっと苦しいような気がします。
できるだけ使用するトランジスタの数を減らしたいためにという苦肉の策のようにも思われます。
確かにトランジスタの使用数を減らしたいという気持ちは同じですけれど、しかしせっかくのCPU回路なのですからここはやっぱり正統派、王道を堂々といきたいと思います。
ということでMYCPU4TRではWレジスタ回路を追加しました。
当然のことながらもともとの「トランジスタ技術」誌の4ビットマイコンにはWレジスタにアクセスするための命令コードがありません。
そこでオリジナルの命令コードと互換性を保ちつつそこにWレジスタにアクセスするための命令コードを追加しました。

MYCPU4TRの命令コードを下に示します。

詳細については[第249回]を参照してください。

基本的なロジック回路は「トランジスタ技術」誌の4ビットマイコンに近いところもありますが、特にレジスタ回路などではできるだけ使用するトランジスタ数が少なくなるように工夫した独自の回路を取り入れています。
その結果として「トランジスタ技術」誌の4ビットマイコンに比較して使用トランジスタ数を大幅に削減することができました。
ちなみに同誌の4ビットマイコンの使用トランジスタ数は1738石とのことですがMYCPU4TRでは1060石です。

使用しているトランジスタは全く異なります。
同誌の4ビットマイコンではMOSFETのBSS84とBSS138を使っています。
当初は私もMOSFETを使うつもりでしたがいろいろ不都合なことが出てきたため、MYCPU4TRではバイポーラトランジスタの2SA1015と2SC1815を使っています。
同誌の4ビットマイコンでは抵抗、コンデンサ、LEDを含めてすべて面実装型のチップタイプを使っているようですが、米粒よりも小さいチップタイプをプリント基板に手ハンダで実装するのは上級者でもホネの折れる作業です。
ここはやはり昔ながらの3本足のトランジスタを使いたいと思います。
そこはどうしても譲れないところです。
それがロマンというものでありましょう。

以上簡単にまとめて説明をいたしました。
「MYCPU4TR」はCMOSIC版の「MYCPU4」をそのままトランジスタ化したものです。
「MYCPU4」については[第248回][第294回]で説明していますのであわせてお読みください。
トランジスタ版の「MYCPU4TR」の回路の多くは「トランジスタロジック回路組立キット」の回路がもとになっています。
「トランジスタロジック回路組立キット」については[第236回][第247回]および[第295回][第350回]で説明していますのであわせてお読みください。
「MYCPU4TR」については[第349回]〜前回([第409回])で説明していますのでご再読願います。
なおもし不明な点や疑問点などがありましたらメールにてお問い合わせください。

[MYCPU4TR組立キットの内容]

キットの内容です。
MYCPU4TRは上のほうでも説明しております通り以下の4点の回路基板から構成されています。
1)SW/CLOCK/MEM回路基板(200mm×120mm)
2)命令デコード回路基板(200mm×240mm)
3)PC(プログラムカウンタ)/IO回路基板(200mm×330mm)
4)REGISTER/ALU回路基板(200mm×380mm)
いずれも両面スルーホールグリーンレジスト基板です。
上記の各基板に実装する必要パーツ一式が含まれます。
ただしプログラムをROM化する場合に必要な27C256ROMはキットには含まれません。
必要な場合には別途27C256WRITERとともにご購入願います(27C256WRITERを使うためにはND80Z3.5など27C256WRITERを接続可能な当社のマイコンボードが必要です)。

1)には62256RAMとクロック発生プログラム書込済みのPIC12F629が含まれます。
上記の各基板を接続するためのフラットケーブル、スペーサー、ネジ類および単独動作に必要な+5V電源もキットに含まれます。
今までの回で動作テストのために作成したプログラムもCDROMに収録してキットに含めるつもりです。
テストプログラムは各回で使ったものをそのまま収録しますので、その多くはZB3BASICプログラムです。
各回で説明しています通り、そのBASICプログラムを実行するにはND80Z3.5またはND8080等ZB3BASICが実行できて82C55を内蔵しているか増設している当社マイコンボードが必要です。
上記マイコンボードがない場合でもBASICプログラムのリストとその回の説明を参考にして命令コードをスイッチ操作でRAMに書き込むことでテストプログラムを実行することは可能です。

2)〜4)のパーツにはICはありません。
トランジスタ、抵抗、コンデンサ、LEDのみでその多くは各基板に共通でかつ数が多いので3枚の基板の分をまとめて品名ごとに分けて袋詰めにする予定です。
個別のパーツの数量についてはこれから組立説明書などを作成していくなかではっきりしてくると思いますが概ね下記の通りです。
トランジスタ2SA1015 530個
トランジスタ2SC1815 530個
トランジスタは以上合計1060個です。
51KΩ抵抗と22pFセラミックコンデンサもトランジスタと同数の1060個です。
コンデンサは22pFのほかに0.1μFセラミックコンデンサをパスコンとして約220個使用します。
LEDは青色LED、赤色LED同数の31個合計62個です。
LED用電流制限抵抗として22KΩをLEDと同数の62本使います。
そのほかにも抵抗とコンデンサはいくつかの値のものを使いますが目立つほどの数ではありません。

[第383回][第405回]で断線(?)している51KΩ抵抗がみつかったことについて書きました。
そこでは1000本以上もの数の抵抗のチェックはとてもできません、と書きました。
しかし落ち着いてよくよく考えてみますとやっぱり検査しないで出すのはちょっと心配です。
51KΩについてはしばらくは全数検査してから発送することにいたします。
なかなかに大変な手間ですが仕方がありません。
抵抗値まで確認するのはちょっと無理ですので簡易検査です。
導通のみテストすることにします。

[トランジスタ版4ビットCPU「MYCPU4TR」組立キット]の価格です。
税抜価格27000円(税込価格29700円)(送料サービス)

[トランジスタ版4ビットCPU「MYCPU4TR」完成品]の価格です。
税抜価格52000円(税込価格57200円)(送料サービス)

組立説明書、取扱説明書もこれから作成に取り掛かります。
実際に皆様のお手元にお届けできますまでにはまだ3〜4週間はかかりそうです。
またパーツについても十分な数を用意しているわけではありません。
基本的にはご注文、お振込みをいただいてからパーツの手配をすることになります。
パーツによっては入荷までに時間がかかるものもあります。
お待たせして申し訳ありませんが何卒ご了承いただきますようお願いいたします。

●ご注文の方法

ご注文はお名前、ご住所、電話番号、ご注文品名を明記の上メールにてお申し込みください。
こちらのメールアドレスにお願いいたします。 thisida@alles.or.jp
折り返しおおよその納期と、念のためお振込みいただく金額をメールにてお知らせしますので、ご確認いただいてから下記要領にてお振込み願います。
ご送金は下記ゆうちょ銀行郵便振替口座宛てにお願いいたします。

郵便振替口座 00810−0−45961 (有)中日電工

代金引換等は取り扱っておりませんのでご了承願います。
ご入金いただいた時点で、正式にご注文をお受けしたことと致します。

なお、できるだけはやくお手元にお届けできるようにするため、ご送金いただきましたらお手数ですが、その旨メールにてお知らせいただきますようお願いいたします。
商品は宅配便にて発送しますので、正確なお届け先ご住所(マンション等の場合には建物名、号棟、号室も明記願います)及び連絡先電話番号もメールにてお知らせください。

●ゆうちょダイレクトに口座をお持ちの場合は、
送金先記号 00810
番号 45961
と入力していただきますと、口座名として(有)中日電工と表示されます。

●郵便局のATMからお振込みいただく場合は、
記号 008100 (振込完了後に印刷される明細票には、00810−0と表記されます)
番号 45961
送金額 〇〇〇〇〇
と入力していただきますと、ATM画面に上記入力データとともに
受取人名 ユウゲンカイシャ チュウニチ デンコウ
が表示されます。
(ATMを使ってご送金いただいたお客様から教えていただきました)

●一般の銀行からご送金いただく場合は、
銀行名「ゆうちょ銀行」(金融機関種別は「銀行」ではなくて「その他」になっている場合があります)
支店名は「O八九(ゼロハチク)」
口座種別は「当座預金」
口座番号は「45961」
口座名「ユウゲンカイシヤ チユウニチ デンコウ」
と指定してください。

トランジスタでCPUをつくろう![第410回]
2021.10.2upload

前へ
次へ
ホームページトップへ戻る