記事 ID: 000080398 コンテンツタイプ: トラブルシューティング 最終改訂日: 2021/08/27

/*synthesis preserve*/ が関連ポートに「1 インスタンスの推論されていない RAM ロジックが見つかりました」というメッセージが表示されるのはなぜですか?

環境

    インテル® Quartus® Prime 開発ソフトウェア・スタンダード・エディション
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

以下のコードの例では、/*synthesis preserve** が原因で Quartus® Standard の RAM 推論に問題があります。

 

モジュールメモリー

#(パラメーター DATA_WIDTH=8、パラメーター ADDR_WIDTH=6) (

入力 [(DATA_WIDTH-1):0] データ、

入力 [(ADDR_WIDTH-1):0] read_addr、write_addr、

入力 we、clk、

出力 [(DATA_WIDTH-1):0] q、

output reg [3:0] 状態 = 0/*synthesis preserve*/

);

simple_dual_port_ram_single_clock simple_dual_port_ram_single_clock_inst (

.data (データ)

.read_addr (read_addr)

.write_addr (write_addr)

.we (インテル)

.clk (clk)

.q (q)

);

解決方法

この問題は、Verilog 95 スタイルを使用する際にモジュール宣言内の保持がモジュール全体に適用される既知の制限によって発生します。この問題を解決するには、Verilog 2001 属性スタイルを使用します。つまり:

置き換える:

output reg [3:0] 状態 = 0/*synthesis preserve*/

以下の機能を備えたもの

(*preserve*) 出力 reg [3:0] 状態 = 0

この問題は、インテル® Quartus® Pro バージョンのソフトウェアには存在しません。Quartus® スタンダード・バージョンの場合、回避策を使用してください。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。