BDが壊れる、壊れたBDのtclファイルができるとかだったら、そのプロジェクト自体を諦めるよ。
今回は動作していた回路が1bitシフトレジスタを追加しただけで動かなくなってしまう現象に遭遇した。
何が起こったのか全くわからなかった。
そうすると、今度は、Synthesisすら通らなくなった。
Design Initializeでエラーになる。
意味がわからん。
どうしたものか・・・
ぼぉ〜っと、眺めていたらリセット信号を反転させるのに使っていたVertorのブロックが[0:0]ではなくて[7:0]になっていた。
ブロックが壊れたんだと思って、Vectorブロックを削除して置き直しても同じ症状のまま。
途方に暮れた。
本当に意味がわからない。
再び、ぼぉ〜っと、眺めていたら・・・
Low Activeのリセット端子にHigh Activeのリセット信号がつながっている。
なんと、リセット信号がシャッフルされてしまったのだ。
私が作るモジュールのリセット信号はLow Active、XilinxのHLSが出力するのはHigh Activeだ。
リセット信号はPSからLow Activeのものを使用して、Vetcorブロックで反転してHigh Activeのリセット信号として使っている。
どこで不具合が発生したのか不明だが、とにかくHigh/Low Activeのリセット信号がしゃっふるされてしまったのだ。
そりゃ、リセットされっぱなしのモジュールが出るさ。
動かないさ。
シャッフルされたリセット信号、[7:0]になったリセット信号を直したら動作した。
デザインがファイルレベルで使えないなら諦めやすいのだが、Implementも通ってBitファイルができるのに急に動かなくなれるなんて、急には見当がつかない。
さっきまで動いたものが動かなくなる不具合なんて、これほど質が悪いものはない。
現在、Vivado 2016.3で遭遇した最大の不具合だ。
まだまだ,見つかるのかな?