Posts Issued on June 1, 2020

FM-7 Z80カードの調査(2)

posted by sakurai on June 1, 2020 #267

ライト時のデータバス衝突の軽減

FM-8もFM-7も、Z80CPUのデータバスバッファに双方向バッファ74LS245を使用しています。245ではDIRにより方向制御を行いますが、6809の場合方向制御は$\text{R/}\overline{\text{W}}$信号であり、ノーマリリードです。Z80にも似たような$\overline{\text{WR}}$があるため、FM-8のZ80カードではこれをデータバスバッファのDIRに使用していました。

ところが、図267.3を見るとわかるように、$\overline{\text{WR}}$はストローブ信号であり、方向制御に使用すると、T1のクロックの下りからT2のクロックの立下りと、さらにT3のクロックの立下りから立上がりまでの間、CPUはデータを出力しているにも関わらず、バッファはリード方向となっています。従って、Z80と245の間で電源からGNDへのDCパスとなる可能性があります。

図%%.3
図267.3 メモリリードライトサイクルの波形

通常、Z80システムでは図267.4のように、データバスバッファのDIRには$\overline{\text{RD}}$を用います。FM-8, 7の6809システムがノーマリリードバスアーキで設計されているのに対して、$\overline{\text{RD}}$を用いるとZ80切り替え時にはノーマリライトとなります。データバスバッファのDIRに$\overline{\text{RD}}$を用いれば、バス衝突は解消できますが、一方バスアーキテクチャの変更にはリスクがあるため、無理やりノーマリリードの信号を作り出しています。
図%%.3
図267.3 メモリリードライトサイクルの波形

まずM18.4によりリフレッシュでないメモリ要求信号(!RFSH & MREQ)を作成します。これはリードとライトの両方でアサートされるため、$\overline{\text{RD}}$信号で打ち消し、ライト信号を取り出します(M19.8)。これは同時変化の信号の論理を取っているため、M5を用いてクロックで叩きます。これが基本的に$\text{R/}\overline{\text{W}}$となります。


左矢前のブログ 次のブログ右矢