自作CPU #9 A基板の配線が少しすすみました

最近はあまり作業が進んでいません。A基板の配線が少しすすんだので記事にします。

ALUの部分はある程度配線完了しました。配線するときは表面の配線を縦に裏面の配線を横にするようにしています。線数が多いのでマトリックスにしたほうが配線しやすいのです。

f:id:Hamakita:20171215001702p:plain

今悩んでいるのは右上に見える4本の線をどうやって左側に持っていくかというところ。

自作CPU #8 A基板部品配置

A基板(2枚目の基板)の部品配置だけとりあえず完了しました。これから配線作業をします。適当に置かれているチップ部品は無視してください。

f:id:Hamakita:20171206162928p:plain

自作CPU #7 ALUの配線作業開始

1枚目の基板がとりあえず完成したので、2枚目の基板を設計していきます。2枚目の基板は基本的にALUです。

f:id:Hamakita:20171205163757p:plain

1枚目の基板に比べたらずいぶん楽そうです。ちゃっちゃと終わらせてしまいたいですね。

自作CPU #6 1枚目の基板完成

1枚目の基板の配線作業が完了しました。

f:id:Hamakita:20171204235858p:plain

こんなに密度の高い基板を設計したのは初めてでかなりの時間を要しました。

さらにこの基板の上に10cmX10cmの基板を乗っける予定なのでハードウェアの進行度としては2/3程完了したといった具合です。

自作CPU #5 命令デコーダ周りの配線

今日は命令デコーダ周りの配線を半分ぐらいしました。

f:id:Hamakita:20171201222451p:plain

この基板の上にALUを載せたボードを接続する予定です。上の画像の上部に見えるピンヘッダで上下をつなぎます。当然この部分は配線が集中するわけです。

低周波クロックの可変抵抗について少し部品を変更しようと思います。クロックの調整が細かく行えるように高精度の可変抵抗をつかっていたのですが、(画像の左上)これは回すたびにマイナスドライバーが必要でとても不便だと気づいたので、手回しできる大きいやつをつけようと思います。

自作CPU #4 低周波クロックの動作確認

昨日低周波クロックの動作確認をしましたが、計算と合わないのが気になりもう一度波形を確認しました。

f:id:Hamakita:20171130220759p:plain

低周波クロックの最高周波数でこのような波形となりました。

波形から1周期が13msとすると周波数は76.92Hzになりました。

理論値は73.75Hzですから昨日の観測結果より理論値に近いみたいです。

自作CPU #3

今日はスタック周りと昨日やってたプログラムカウンタ周りの電源線を配線しました。

あとクロックジェネレーターとクロック選択回路が少し不安だったので、ブレッドボードへ組み、テストしてみました。問題なく動いたっぽいです。クロックの選択はロータリーDIPSWで16パターン選択できるようにします。

L固定,H固定,手動クロック,低周波数クロック約0.33Hz~約66.66Hz(VRで可変)

976Hz,1.953kHz,3.906kHz,7.813kHz,15.625kHz,31.25kHz,

62.5kHz,125kHz,250kHz,500kHz,1MHz,2MHz

の16パターンです。このうち低周波クロックについて自分でも動作原理を忘れてしまいそうなのでメモしておきます。

低周波クロックの約0.33Hz~約66.66Hzというのはオシロスコープで観察した結果であって理論値とは少しずれています。低周波クロックの回路は、

f:id:Hamakita:20171130002154p:plain

こんな感じです。

  1. OUTがHだったとする。
  2. OUTから電流が抵抗を通りコンデンサに充電される。
  3. インバーターの+閾値まで充電されると論理がひっくり返りOUTがLに
  4. コンデンサから電流が抵抗を通り放電する。
  5. インバーターのー閾値まで放電されると論理がひっくり返りOUTがHに

この繰り返しで動作する。このインバーターは普通のNOT素子(HC04)とは違ってシュミットトリガインバータというもので閾値を二つ持っているのが特徴。このおかげでアナログ的なカーブを描いた電圧の立ち上がり(コンデンサの充電)を入力にしても出力が乱れない。普通のインバーターでは閾値付近の電圧を入力されると出力がチャタリングのように乱れてしまう恐れがある。また閾値を二つ持つことでコンデンサの充放電の時間稼ぎができるためクロックを生成できる。

回路図の可変抵抗によって充放電の時間を調整し、クロックの速さを変える。

データシート

によると+閾値は2.5V,-閾値は1.6Vらしい。

RC直列回路の過渡現象解析からコンデンサの電位差の式はt=0で5vのステップ入力とすると

\[V_C = E(1-e^{-\frac{1}{RC}t})\]

変形して

\[t=-RC\ln(1-\frac{V_C}{E})\]

 半周期は\[V_C=2.5\]までの時間から\[V_C=1.6\]までの時間を引いたものだから

(1.6Vまで充電された状態で充電が始まる。)

R=100k+470の時の周期は2.9sゆえに周波数0.34Hz

さらに

R=0+470の時の周期は13.56msゆえに周波数73.75Hz

0.33Hzの方は辻褄があったのですが66Hzの方が少しずれてしまいました。

放電のケースも考えなければならないかな。 

 

171130追記

もう少し理論値に近いっぽいです。もう一度観測したら

76.92Hzでした。