2018-02-14 21:55 — asano
カテゴリー:
先日のZ8581やNS32C201, 8080用の8224など、昔のプロセッサには専用のクロックICが用意されていることがよくありました。
普通のロジックICで扱えないほど周波数が高いわけでも無いのに何故専用ICが用意されていたのでしょう?
それは電圧レベル的にもタイミング的にも特殊な信号が要求されることが多かったからです。通常ロジックレベルの矩形波を供給すればよい、組み込み用なら発振回路も内蔵されていて水晶を繋げるだけで良いこともある、現在とは状況が違っていました。
電圧レベル
Intel 8080
まずはかなり厄介な部類のIntel 8080のDC特性をデータシートから拾ってみます。
Symbol | Parameter | Min | Max | Unit |
---|---|---|---|---|
VILC | Clock Input Low Voltage | VSS - 1 | VSS + 0.8 | V |
VIHC | Clock Input High Voltage | 9.0 | VDD + 1 | V |
VIL | Input Low Voltage | VSS - 1 | VSS + 0.8 | V |
VIH | Input High Voltage | 3.3 | VCC + 1 | V |
※ VCC=+5V, VDD=+12V
VILC, VILについては普通です。
クロック以外の入力信号のVIHの3.3Vは当時一般的だったN TTLではドライブできませんが、8228 System Controller and Bus Driver for 8080A CPUを使えばTTLレベルに変換できました。現在の74HCシリーズなら直接ドライブ可能です。
さて本題のVIHCですが、なんと9Vをスイングしなくてはなりません。8224 Clock Generator and Driverはこのドライバを持っていますが、汎用品でならディスクリートで組むか7407のような高耐圧オープンコレクタバッファを低抵抗でプルアップでしょうか。8224, 8228は8080より遅れて登場していますので、それまでは苦労したのだと思います。
Zilog Z80
Zilog Z80 CPUは命令の拡張もさることながら、ハードウェア設計がやりやすくなったことも人気の秘密でしょう。
それでもクロック入力は特別な扱いになっていました。上と同様にDC特性をデータシートから拾ってみましょう。
Symbol | Parameter | Min | Max | Unit |
---|---|---|---|---|
VILC | Clock Input Low Voltage | -0.3 | 0.45 | V |
VIHC | Clock Input High Voltage | VCC - 0.6 | VCC + 0.3 | V |
VIL | Input Low Voltage | -0.3 | 0.8 | V |
VIH | Input High Voltage | 2.0 | VCC | V |
※ VCC=+5V
VIL, VIHは普通のTTLレベルになっています。
VILC, VIHCは5Vスイングにはなっていますが、VIHCのVCC-0.6Vは普通のTTLでは無理です。よくZ80 CPUのCLKに330Ω程度のプルアップが付いていることがありましたが、あれはこのVIHCの対策です。
まぁ実績はある回路なので実用上問題は無いのでしょう。市販のパソコンにも使われている例があります。
とはいえZilog公認の方法("Z80-CPU Technical Manual"参照)なので何らかの確認はされているはずです。
もちろん74HCなどのCMOSでドライブすれば問題ありません。
Intel 8085
8085ではついにクロック信号の特別扱いがなくなり、VILC, VIHCという項目はなくなっています。
Symbol | Parameter | Min | Max | Unit |
---|---|---|---|---|
VIL | Input Low Voltage | -0.5 | 0.8 | V |
VIH | Input High Voltage | 2.2 | VCC + 0.5 | V |
これなら普通のTTLで問題ありません。
Motorola MC6800
MotorolaのMC6800はZ80に近い特性になっています。時代的には8080に近いので比べてみると、電源が5V単一なこととこのクロックの点でかなり使いやすくなっているといえるでしょう。
データシートからDC特性の一部を抜粋してみます。
Characteristic | Symbol | Min | Max | Unit | |
---|---|---|---|---|---|
Input High Voltage | Logic | VIH | VSS + 2.0 | VCC | V |
φ1,φ2 | VIHC | VCC - 0.6 | VCC + 0.3 | V | |
Input Low Voltage | Logic | VIL | VSS - 0.3 | VSS + 0.8 | V |
φ1,φ2 | VILC | VSS - 0.3 | VSS + 0.4 | V |
VILC, VIHCはZ80 CPUとほぼ一緒です。
MOS Technology 6502
MCS6500ファミリにはクロックジェネレータ内蔵の650xと外部クロックの651xがあります。
Characteristic | Symbol | Min | Max | Unit | |
---|---|---|---|---|---|
Input High Voltage | Logic,φ0 | VIH | VSS + 2.4 | VCC | Vdc |
φ1,φ2 | VIHC | VCC - 0.2 | VCC + 0.25 | Vdc | |
Input Low Voltage | Logic,φ0 | VIL | VSS - 0.3 | VSS + 0.4 | Vdc |
φ1,φ2 | VILC | VSS - 0.3 | VSS + 0.2 | Vdc |
650xではφ1,φ2は内蔵クロックジェネレータの出力なので外部から入力するのはφ0だけで、これはTTLレベル(マージンがありませんが)です。
651xではφ1,φ2を外部から5V一杯の振幅で供給する必要があります。
次回はタイミングについて書く予定です。
コメントを追加