クリティカルな問題
インテル® Quartus® Prime Pro ソフトウェア・バージョン 22.3 以前の問題により、次のいずれかのレポート方法によって、MLABに実装されている読み取りイネーブル機能を含むメモリーのループが報告されることがあります。
- タイミング・アナライザー・レポートで「* ノードの組み合わせループが見つかりました」という警告が表示される。
- 「LNT-30011 - デザインに組み合わせループが含まれています」デザイン・アシスタント (合成) レポートのルール違反。
- 「TMC-20017 - ループが検出されました」デザイン・アシスタント(サインオフ)レポートのルール違反。
- タイミング・アナライザーで「check_timing」レポートを実行すると「ループ」が報告されます。
- 「ノード: * はクロックと判断されましたが、関連するクロック割り当てなしで見つかりました。」タイミング・アナライザー・レポートで警告を表示します。
報告されたループは、読み取りイネーブル機能をサポートするために MLAB の出力にラッチが実装されたために生じます。このラッチはタイミングが正しく分析されていないため、ハードウェアで機能を保証できません。
この問題は、MLAB メモリ ブロックに配置されている次のメモリ実装スタイルで発生する可能性があります。
- 読み取りイネーブル機能を含むメモリーを直接推論する RTL コード。
- ダイレクト・メモリーのインスタンス化: 読み取りイネーブル機能、MLAB または AUTO のram_block_type設定など
この問題を回避するには、次のいずれかの 操作を行います 。
- 読み取りイネーブル機能の使用は避けてください。
- RTL 推論メモリーの場合、ramstyle 属性を使用してメモリーを強制的に M20K メモリーブロックに格納します。
- ダイレクト・メモリーのインスタンス化の場合は、ram_block_typeを M20K に設定します
- M20K メモリーから MLABへのマッピングを防止するには、次の QSF 割り当てを使用します:「set_global_assignment -name BLOCK_RAM_TO_MLAB_CELL_CONVERSION OFF」
この問題は、インテル® Quartus® Prime Pro Edition ソフトウェアの今後のリリースで修正される予定です。