こんにちは、マス男です。

前回のコラムでは、「 Auto Detect 」で正しく JTAG 配線でき、かつ、デバイスが起動していることを確認しました。

しかし、 マス男の基板はコンフィグレーションが成功する時もあれば、失敗する時もあり、動作がとても不安定だったのです。

コンフィグレーション・エラーをモニタしてみた

下記の表はハチ先輩のコラム 『コンフィグレーション・シーケンス』 からの引用です。

信号名 属性 説明
nCONFIG 入力 High コンフィグレーションを開始
Low FPGA をリセット状態 ( POR を実施中 )
nSTATUS 双方向オープンドレイン 出力 = High 正常なコンフィグレーション状態
出力 = Low コンフィグレーション・エラー
入力 = High 正常なコンフィグレーション状態
入力 = Low エラー・ステート
CONF_DONE 双方向オープンドレイン 出力 = High (解放) コンフィグレーション・データ受信完了
出力 = Low コンフィグレーション前・コンフィグレーション中

 

 

オシロスコープで nCONFIG、 nSTATUS、CONF_DONE を観測しました( 図1 )。

 

図1. コンフィグレーション・失敗のシーケンス  (右図は赤丸領域を拡大した様子)

 

 

・nCONFIG が High になるとコンフィグレーション開始です。

 

・nSTATUS はコンフィグレーションを監視する信号です。

 図1より、 Low ( 失敗 )と High ( 再実行 )を繰り返し、コンフィグレーションが失敗し続けていることが分かります。

 

・CONF_DONE はコンフィグレーションデータ受信完了すると High になります。

 図1 より、 常に Low のままで、コンフィグレーションが完了しない様子が分かります。

 

電源・GND 配線は基板の大動脈である

先輩 「 FPGA に接続する GND の配線、細いワイヤーだな。」

 

マス男 「細いワイヤーですけど、 GND にはちゃんとつながっていますよ?」

 

先輩 「電源・GND 配線の電流容量が小さいと、十分な電流を流すことができないから、基板全体が正常に動作できない。電源・GND 配線は基板の大動脈だよ。」

 

マス男の基板裏の配線の様子です( 図2 )。

FPGA に接続されている GND の配線が細いワイヤー( 青色 )であり、 GND がとても弱い設計でした。

図2. GND が弱い様子

 

 

2倍の太さのワイヤーを使用して電流容量を大きくし、GND を強化しました( 図3 )。

図3. GND 強化後

 

GND を強化したことにより、コンフィグレーションが常に成功し、基板動作が安定しました。

図4 は GND 強化後にオシロスコープで測定したコンフィグレーション・シーケンスです。

図4. コンフィグレーション成功のシーケンス

図4 より、コンフィグレーションデータ受信完了できたので CONF_DONE ピン が High になった様子が分かります。

 

先輩 「基板全体に必要な電流量を考慮して設計したの?」

 

マス男 「電圧については FPGA の絶対最大定格が規定されているので考慮しましたが、電流については何も考えていませんでした。」

 

先輩 「電流を考えないなんて、ダメな設計だな。基板が動くわけがないよ。」

学んだこと

電源・GND 配線は基板の大動脈である。
基板全体に必要な電流を供給できる電源・GND 配線を設計しなければならない。