« SN74AUC126のOEは正論理 | トップページ | 高速ディジタル信号に入れるバッファICの効果を確かめてみた »

2022.08.30

暴れるLVCMOS18

開発中の8ch 125MHz DACボードは、FPGAとDACを直結せずにバッファを入れています。

Buffer

なぜかというと、FPGAの端子からこの基板までは距離が長いので、LVCMOS18では信号の反射やサグが目立ってしまうからです。

 

下の図は、基板上のDACの信号線です。

Scope_192

反射によって信号電圧にピークが出るし、HHと続くところとHLとなるところではベースラインが変わってきてしまいます。

それでも、CLKとDATAの位相をうまく調整すれば125MHzで動かないこともないのですが、反射した信号はノイズとなってDACの出力を乱します。だから、FPGAとDAC間の信号で使われる電流は少なければ少ないほどいいのです。

 

幸い、XILINX FPGA (7シリーズ)では、XDCファイルにDRIVE制約を書けば、出力電流を2mA,4mA,6mA,8mA,12mA(デフォルト),16mAで変えることができるので、電流を絞れば反射は抑えることができます。

こんな感じで書きます。

set_property DRIVE 8 [get_ports {dac1_data_op[*]}]

電流を減らして反射を抑えると波形の立ち上がりがなまって遅くなるので高速な動作ができなくなり、電流を増やすと立ち上がりは鋭くなりますが反射によってビット間干渉を起こしノイズ源にもなります。つまり、基板によって最適な出力電流があります。

 

7Series FPGAのI/OにはDCIとかいう機能もあって出力インピーダンスを変えることができるので、この出力電流の調整はDCIと同じような機能を用いて実現しているのでしょう。

例えば、1.8VのLVCMOS18にして6mAの設定にした場合、300Ωの抵抗が出力ピンに直列に入るのではないかと想像しています。ダンピング抵抗の大きさを変えているのとみなすことができます。

 

電流を絞ってもFPGAから来た信号はLVCMOSですから受信側ICの入力インピーダンスで反射するので波形は乱れます。それをDACで直接受けるとノイズとなって混入します。そのため、間に一度バッファを入れたいのです。

バッファの前に220Ωの終端抵抗で受けるようにすることで、8mAの電流でも1.7Vの電圧を確保してLVCMOS18の閾値を超えるようにしました。

次の図はFPGAからの電流を変えながら測ったときの波形です。

どういう設定だったかは忘れました。

Scope_197 Scope_195

LVCMOSはシングルエンドで終端抵抗も何もない規格ですが、無理やり終端抵抗を入れることで反射を少しだけ抑えることができます。

理想は下の図のような波形をこの6倍の速さで動かすことです。

Scope_193

 

|

« SN74AUC126のOEは正論理 | トップページ | 高速ディジタル信号に入れるバッファICの効果を確かめてみた »

コメント

コメントを書く



(ウェブ上には掲載しません)




« SN74AUC126のOEは正論理 | トップページ | 高速ディジタル信号に入れるバッファICの効果を確かめてみた »