2012/11/05
■ [z80]自作Z80 CP/Mマシン(22)
ブレッドボードZ80マイコンのCPUをZ84C0020に換装しました。 もちろんそのままで動きましたが、折角なのでクロックを12MHzに上げてみることに。 FT232Rモジュールからクロックを供給しているのでFT-Progで設定変更できますので簡単です。
ダメモトで以前使ったLチカプログラムを少し変更してみると普通に動いてしまったので、アクセスタイムを計算してみたメモです。(間違ってたら指摘希望っす^^;;)
Z80と言えば元々クロック2.5MHz〜4MHzの感覚でしたし、AKI-80ゴールドキットのTMPZ84C015-12(12MHz)の取説にもデータだけでなくプログラムを収納するのには40ns以下のアクセスタイムのRAMが必要となっているので、設計が古いだけに高クロックにするとアクセスタイムが厳しくなるって思っていましたが意外でした。
- Z80はM1サイクルだけは2.5クロックで後は3クロックアクセスなので、M1サイクルのリードが一番厳しい
- 仕様の以下のパラメータで計算
- (1)TcC クロック周期
- (2)TwCh クロックHiレベル幅
- (13)TdCf(RDf) クロック立ち下がりからRD#=Loまで(Max)
- (15)TsD(Cr) クロック立ち上がりに対するデータセットアップ時間(Min)
- アクセスタイムはRD#立ち下がりからデータが出力されるまでの時間なので、1クロックめの立ち下がり+TdCf(RDf) から 3クロックめ-TsD(cr)
12MHzクロックのZ84C0020の時 TcC=83.3ns、TwCh=41.7ns、TdCf(RDf)=40ns、TsD(Cr)=12ns アクセスタイム = (TcC * 2) - TsD(Cr) - (TwCh + TdCf(RDf)) = (83.3 * 2) - 12 - (41.7 + 40) = 72.9ns
デコード回路なしなら70nsのRAMでOKなようです、今回74HC32の遅延は入りますがメモリ(μPD431000A-85)のCEをイネーブル固定にしているのでアクセスタイムは45nsらしいので余裕みたいです。
さらに実測してみると74HC32の遅延込みでアクセスタイム100nsくらいまで大丈夫かも。(あくまでも参考値です)
おまけ、出力ポートをON-OFFするテストプログラムのリストと波形
1 ; 2 ; lo-hi test 3 ; 4 0000 org 0000h 5 6 0000 START: 7 0000 3E 00 ld a,0 8 0002 LOOP: 9 0002 D3 00 out (00h),a 10 0004 2F cpl 11 0005 C3 0002 jp LOOP
一番上がON-OFFしている出力ポートで、240KHzでON-OFFしてます。
関連エントリ: Z80に関するエントリ、 動画(ニコニコ)はこちら