汎用ロジックTTLのみでコンピュータを作る   

RETROF-16H 部品実装(5)

Copyright © 2014 T.GATARO All Rights Reserved.

部品実装(1)はこちら  部品実装(2)はこちら 部品実装(3)はこちら 部品実装(4)はこちら


「RETROF-16三部作の比較」(別窓で開きます)はこちら

「汎用ロジックでコンピュータを作る」のトップページ(目次)はこちら   管理人のメインページはこちら

緊急処置、そして検証は続く…

 

画像(左)は演算命令の動作確認が終わり、条件分岐命令の動作確認を始めた時点のものです。
この時点で既に大きな設計ミスがいくつか発覚しており、そのうちの2つはどうしてもNOTゲートを追加しなければ修復不可能でした。残念ながら基板上に予備ゲートはありません。最初から作り直すことも脳裏をよぎりました。
しかしこの時点で作り直しても、他の不具合が更に発見される可能性が大です。最悪リファイン(作り直し)の連鎖になる危険もあります。結局、何とかしてNOTゲートを無理矢理追加することで作業を継続することにしました。

当初は表面実装型のTTLを基板裏面(銅箔配線面)に両面テープで固定し、俗に言う「空中配線」で対処するつもりでした。しかしTTLを固定する適当なスペースがありません。色々と悩んだ挙句、基板左下のICソケットの中にちょうど良いスペースがあることに気付きました。上記画像(右)は、そのスペースに設置したNOTゲート(注)です。

一般の電機メーカーがこの様な実装を行ったら、即、信用低下による倒産危機でしょう。趣味の製作であっても決して褒められた対処方法ではありません。しかし今回は「やむを得ない緊急処置」として本対策を敢行致しました。(14-05-15)

(注)実際にはNORゲートである74HCT02Dを使用しています。このNORゲートの2回路を2つのNOTゲートとして使用しました。この2つのNOTゲートの挿入位置は、1つは「無条件ジャンプ命令の実装」の項で紹介した8bitショートジャンプの不具合修正用です(その時点では74ACT04を使う予定でしたが、手元に74HCT02Dしか無かったためこちらを使用しました)。もう1つは本頁で以下に紹介する「フラグレジスタのクロック信号の反転」に用いています。

フラグレジスタの実装とホールド確認(14-05-17)

※下記回路図はバグがある修正前のものです。修正にはNOTゲートを1つ追加する必要があります(仔細本文)。

この回路図はフラグレジスタの動作に関する部分のみを抽出したものです。機械語コードの最上位が0である命令は、全てその命令の第5ステージでアキュムレータ(以下ACC)とフラグレジスタ(以下FR)にクロックパルスが1発与えられます。回路図中のORゲートが、機械語コードの最上位が0「かつ」第5ステージであることを判断しています(負論理ですので「かつ」ANDではなくORになります。)

さて、Acc(74LS395)のクロックは立下り、FR(74L379)のクロックは立上りで働きますから、第5ステージで下向きのパルスが一発加わると、まずAccに演算結果がホールドされ、次の瞬間にフラグレジスタがホールドされます。

設計時点ではこれで問題ないと思っていたのですが、これが大きな勘違いでした
先に、Accに演算結果をホールドしてしまうと、その瞬間にALUの出力は更新されたAccの値とMPR(多目的レジスタ、回路図左下)との演算結果になってしまいます。つまりFRは全く関係ない演算の結果をホールドしてしまうのです。修正方法としてはFRのクロックにNOTゲートを追加し、AccとFRのホールドを同時に行なう事で解決しました。

74LS379にLEDを乗せて確認

フラグの状態は、FR(74LS379)の背中に乗せたLEDで確認できるようにしました。
フラグの動作の具体的検証は、各種の演算命令を実行した直後にHALT命令を実行する機械語プログラムを与え、HALTによる停止時に上記のLEDを視認するという原始的な方法で行いました。


条件分岐命令の実装と「1から10までの足し算」(14-05-18)

 
 UP大幅遅延中。 (仔細あって「ヤマト2199」と「ジバニャン」と「ロボニャン」のプラモデルを製作している為)

まだまだ続きます

平日は0~2時間、休日は4~8時間程度を本作業に費やしています。しかし本HPの更新も含め「完全単独作業」を貫いているので、完成はいつになるか全くわかりません。

できる限りこの様な感じで、リアルタイム(実際にはHTMLを打つ手間隙を要するのでリアルタイムではなく数時間~数日遅れ)で状況を紹介しています。(詳しい状況や非公式な裏話はTwitterで発信しております)。
御質問等はTwitterにてお願いします(ID=duo6750)。真面目な御質問は歓迎いたしますし、極力お答えしたく思います(注)

Twitterは、気楽に絡んでください。思った事は正直に申します。但し、酒を飲むと意味不明のツイートやシモネタツイートとなります。「あ、酔っ払ったな」と思ったら、適当な所で無視して下さい。

(注)、Twitterのダイレクトメール機能は利用していませんので、通常のオープンな「呟き」でお願いします。
また、Facebook、Skype、その他の連絡手段での本件のお問い合わせは御遠慮願います。
 
RETROF-16Hの部品実装(1)へ戻る RETROF-16Hの部品実装(2)へ戻る RETROF-16Hの部品実装(3)へ戻る RETROF-16Hの部品実装(4)へ戻る