標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第391回]

●regWRのテスト回路の説明です

regWRのテスト回路の波形写真をあらためて撮り直しました。
説明をするために、もう一度回路図をお見せします。

74HC05のpin12が、命令回路から出力されるregWR信号のモデルです。
出力されるregWR信号は、Tnクロックに同期するタイミングで出力されます。
テスト回路ですから、てきとうなTn信号として、ここではT4を選び、その期間に出力しています。
regWR信号は複数の命令回路から出力されますから、オープンコレクタ出力になります。
そのregWR信号を受けているのが74HC04のpin13です。
この74HC04の出力をもとにして、各レジスタへの「ほんとうのregWR信号」を作ります。
実際に各レジスタに送られるregWRやメモリに対するMEMWR信号は、このテスト回路では、74HC74のQ_出力信号です。

写真をお見せする前に、タイミングチャートで説明をします。

regWR(in)はTn信号のはじめに出力(↓)され、その期間の終わりに立ち上がり(↑)ますが、オープンコレクタ出力なので立ち上がりはゆっくりになります。
この波形を整形するために74HC74を使います。
CLOCK(2MHz)を反転したクロックを74HC74のCK入力にします。
regWR(in)はインバートされて74HC74のCLRとDに入力されますから、その期間だけ74HC74のQ、Q_出力が能動になります。それ以外の期間はQ_はHです(CLR=Lなので)。
regWR(in)が立ち下がってから半クロック遅れて、74HC74のCK入力が↑になります。
このタイミングで、74HC74のQ_がLになります。
これがregWR(out)、MEMWRの立ち下りになります。
データバスやアドレスバスはTn(本当はMn)に同期してアクティブになりますから、データバス、アドレスバスがアクティブになってから74HC74のQ_がLになるときまでに、最大で250nsの余裕ができます。
WR信号の立ち下りが問題になるのは、MEMWRだけです(レジスタはWR信号の上がりエッジでラッチされるが、メモリはWR信号が下がった状態でアドレスが不安定であると誤まったアドレスに書き込まれてしまう)。
その回避のために、最大で250nsの余裕があることになります。
そしてWR信号の立ち上がりは、regWR(in)の立ち上がりと同じタイミングになります。
regWR(in)をインバートして74HC74のCLR入力にしているため、regWR(in)が立ち上がると、74HC74のQ、Q_出力がクリアされるのでQ_つまりregWR(out)、MEMWRがHになるのです。
一旦クリアされた出力は、次のCK入力が↑になるまで、再び変化することはありませんから、regWR(in)の立ち上がりがゆっくりでも、それによってチャタリング的な誤出力はおこりません。
ただ立ち上がりのタイミングが遅れること自体は改善されませんから、[第370回]のような誤動作を防ぐことには役立ちません(その誤動作対策については別の方法を考えています)。

●regWR回路の波形写真です


上(CH1)がregWR(in)、74HC05の出力信号で、下(CH2)が74HC74のDとCLRへの入力信号です。
regWR(in)の立ち上がりがゆっくりなのですが、これでは余りはっきりわかりません。


水平軸を10倍にしました。
おお、これならよくわかります。
パルス幅は約500nsあります。


CH2(下側)は74HC74のCK入力です。
CLOCKの反転信号なので、74HC74のQ_出力はregWR(in)よりも半クロック(250ns)遅れてLになります。


CH2(下側)は74HC74のQ_出力です。
これがレジスタやメモリへのWR信号になります。
信号幅は300nsくらいあります。

2009.12.3upload

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