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

不正なマルチポート・アドレス幅

環境

    インテル® Quartus® II サブスクリプション・エディション
BUILT IN - ARTICLE INTRO SECOND COMPONENT

クリティカルな問題

詳細

Arria V またはCycloneをターゲットとする DDR2 および DDR3 インターフェイスの場合 [ハード外部メモリー・インターフェイスを有効にする] パラメーターが付いた V デバイス 電源がオンで、複数のポートのフロントエンドの幅 (以下に示すように) 表の場合、修正係数が必要です。

この問題により、デザインがシミュレーションに失敗する可能性があります。これ ハードメモリーを対象とする DDR2 および DDR3 インターフェイスに影響する問題 Arria V または Cyclone V デバイス。この問題は今後修正される予定です。 ( UniPHY 対応 DDR2 および DDR3 SDRAM コントローラーの数)

訂正が必要なアドレス幅

メモリー・インターフェイスの合計幅

マルチポート・フロントエンド幅修正が必要

8

32

-1

8

64

-2

8

128

-3

8

256

-4

16

64

-1

16

128

-2

16

256

-3

32

32

1

32

128

-1

32

256

-2

40

160

-1

40

320

-2

解決方法

この問題の回避策は次のとおりです。

  1. テキスト・エディターでファイルを開きます altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv
  2. altera_mem_if_hard_memory_controller_top(arriav/cyclonev).svで、 次の行を次の後に追加 // New parameters for HMC します。
parameter AVL_ADDR_WIDTH_PORT_0 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_1 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_2 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_3 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_4 = AVL_ADDR_WIDTH ; parameter AVL_ADDR_WIDTH_PORT_5 = AVL_ADDR_WIDTH ;
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).svで、 AVL_ADDR_WIDTHそれぞれを置き換えます AVL_ADDR_WIDTH_PORT_# 。 例えば:
  • 置き換える input [AVL_ADDR_WIDTH - 1 : 0] avl_addr_0;

    次の機能を備

input [AVL_ADDR_WIDTH_PORT_0 - 1 : 0] avl_addr_0;
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).svで、 次の行をコメントアウトします。assign i_avst_cmd_data_0 = i_avst_cmd_data_g[0];
  • まで

assign avl_size_g[5] = avl_size_5;
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).svで、 上記のセクションの直後に次の行を追加します。
assign i_avst_cmd_data_0 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_0,{34-AVL_ADDR_WIDTH_PORT_0-2{1\'b0}},avl_addr_0,avl_write_req_0,avl_read_req_0}; assign i_avst_cmd_data_1 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_1,{34-AVL_ADDR_WIDTH_PORT_1-2{1\'b0}},avl_addr_1,avl_write_req_1,avl_read_req_1}; assign i_avst_cmd_data_2 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_2,{34-AVL_ADDR_WIDTH_PORT_2-2{1\'b0}},avl_addr_2,avl_write_req_2,avl_read_req_2}; assign i_avst_cmd_data_3 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_3,{34-AVL_ADDR_WIDTH_PORT_3-2{1\'b0}},avl_addr_3,avl_write_req_3,avl_read_req_3}; assign i_avst_cmd_data_4 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_4,{34-AVL_ADDR_WIDTH_PORT_4-2{1\'b0}},avl_addr_4,avl_write_req_4,avl_read_req_4}; assign i_avst_cmd_data_5 = {{42-AVL_SIZE_WIDTH-34{1\'b0}},avl_size_5,{34-AVL_ADDR_WIDTH_PORT_5-2{1\'b0}},avl_addr_5,avl_write_req_5,avl_read_req_5};
  • altera_mem_if_hard_memory_controller_top(arriav/cyclonev).svで、 次の行にコメントアウトしてください。
i_avst_cmd_data_g[port_i] = {avl_size_g[port_i],{34-AVL_ADDR_WIDTH-2{1\'b0}},avl_addr_g[port_i],avl_write_req_g[port_i],avl_read_req_g[port_i]};
  • インスタンス化するすべてのラッパーで altera_mem_if_hard_memory_controller_top(arriav/cyclonev).sv 、 各バス幅を次のように更新します avl_addr_ 。 次:
Replace input wire [21:0] avl_addr_0, // .address

次の機能を備

input wire [21:0] avl_addr_0, // .address

関連製品

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

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

1

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