FILブロックの出力が期待値と異なる
Show older comments
【概要】お世話になっております。HDL Coderのワークフローアドバイザーを使用してFPGA-in-the-Loop(FIL)の検証を行っています。ワークフローはエラーなく完了しFILブロックは生成されますが、その出力が元のSimulinkモデルの出力(期待値)と一致せず、困っています。
この問題は、非常に単純な加算器モデルで試しても再現します。添付のScope画像は、その際の出力を比較したものです。期待値(dut_ref)とFILブロックの出力に明らかな差異が生じています。
添付画像:
【環境】
- MATLABバージョン: R2025a
- HDL Coderバージョン: R2025a
- ターゲットツール: Xilinx Vivado 2024.2
- ターゲットデバイス: Arty Z7-20
【問題の詳細と調査】
この問題を調査するため、単純な2入力加算器モデルでFILブロックを生成しました。
Vivadoでの論理合成・実装(Synthesis & Implementation)はエラーなく完了し、ビットストリームファイルは正常に生成されます。また、生成されたラッパーHDLファイル内には、設計した加算器(DUT)のインスタンス化も確認できました。
しかし、Simulink上でFILブロックを実行すると、上記画像のように期待値とは異なる結果が出力されます。何らかの理由で、SimulinkとFPGA実機との間でのデータ受け渡しが正しく行われていないようです。
【試したこと】
- ターゲット周波数を25Hzまで下げても問題が再現するため、タイミングの問題である可能性は低いと考えています。
- fil_prjフォルダなどを削除し、クリーンな状態から再実行しても同じ現象が発生します。
【質問】
- このように、論_論理合成・実装がエラーなく完了するにもかかわらず、FILブロックの挙動が期待値と異なる場合、他にどのような原因が考えられますでしょうか?
- この問題をデバッグするために、他に確認すべき点や有効なアプローチはありますでしょうか?
- これは、特定のツールバージョンにおける既知の問題でしょうか?
お手数ですが、ご確認いただけますと幸いです。よろしくお願いいたします。
5 Comments
Hiro Kawai
on 11 Jul 2025
Edited: Hiro Kawai
on 11 Jul 2025
こちらで回答しましたが、ツールの問題は無いように思います。SLXを添付しましたので、ご自身のデザインと比較お願い出来るでしょうか?不明点があればご連絡下さい。
また、HDL VerifierのチュートリアルとしてFILの設定方法等もこちらのp.40~に記載がありますので、ご活用下さい。
Rito Sakima
on 14 Jul 2025
Rito Sakima
on 14 Jul 2025
Rito Sakima
on 14 Jul 2025
Hiro Kawai
on 15 Jul 2025
Compareの結果を見る限り、固定小数点の設定が正しくないように思います。
上記チュートリアルのEX4 (p.43~48) のように、HDL Coderの WorkFlow AdvisorからFILのプロジェクトを作って頂くと固定小数点の設定を省くことが出来ますので、まずはこの方法で試して頂くことをお勧めしています。
EX5 (p.49~56) のようにFILウイザードを使用している場合、お客様デザインの固定小数点の設定 (p.53) が正しいか確認してウイザードを進めて下さい。
尚、こちらでもR2025aを用いて同様のデザイン (Gainで2xして出力) を作って結果を確認していますが、出力は一致しております。 上記でも解決しない場合、FILプロジェクトを作られる際の設定手順をご教示頂く、もしくは一致しないデザインのSimulinkファイルを共有頂ければと思います。
Answers (0)
Categories
Find more on FPGA-in-the-Loop in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


