入力DC電圧特性~XC2C256の場合
CPLDやFPGAに限らず、ほとんどのICは、入力端子に加わった電圧が
ある電圧以上なら'H'、ある電圧以下なら'L'と認識するようにできている。
CMOS ICだと、HとLの境目はだいたい0.5*VCCになるのであるが、
中身はCMOSでも、入力特性だけはTTL互換やLVTTL互換にしたICはいっぱいある。
そういうICは、入力特性が
VIH High level input voltage 2V(min)
VIL Low level input voltage 0.8V(max)
というように、0.8V以下を'L'、2.0V以上を'H'とするようにできている。
XILINXのCPLD、XC2C256も例外ではない。
データシートによれば0.8V以下は'L'で、2.0V以上は'H'である。
さて、この中間の電圧、たとえば1.6Vを入力したらどうなるか?
実際にやってみた。
まず、CPLDを消去して空にした状態で、半固定抵抗をつかって0V~3.3VまでのDC電圧を作り出し、入力ピンに加えていく。
そして、'H'と認識したか、それとも'L'と認識したかを調べる。これはバウンダリスキャンを使って、CPLDがブランク状態のまま調べる。
結果は、下の図のとおり。

なんと、ヒステリシス特性をもっていた!
入力が既にHと認識されているときに1.2Vくらいまで入力電圧を下げないとLにならず、Lと認識されているときには2.0V近くまで上げないとHと認識されなかった。
確かにCoolRunnerIIにはBus-Hold回路というのが入力に入っているのだけれども、これはプログラムされるまでは動作しないはずである。だからなぜヒステリシス特性が生じたのかは分からない。
世の中の全てのデバイスがこうなっているとは限らないし、私が使ったCoolRunnerではたまたまこうなっただけかもしれない。
CPLDに限らず、TTL特性やLVTTL特性のICの入力に0.8V~2.0Vまでの電圧を入れる可能性があるときには注意した方がいいだろう。
| 固定リンク
コメント