AR# 38083

MIG v3.6-v3.61、Virtex-6 DDR3 - 基本パーツが x16 の UDIMM をターゲットにするとマルチコントローラー Verilog デザインのシミュレーションでエラーが発生する

説明

基本パーツが x16 の UDIMM をターゲットにしていると、MIG v3.6-v3.61 マルチコントローラー DDR3 SDRAM Verilog デザインのシミュレーションで次のようなエラー メッセージが表示されます。

# -- Compiling module sim_tb_top
# ** Error: ../sim/sim_tb_top.v(1091): Range must be bounded by constant expressions.
# ** Error: ../sim/sim_tb_top.v(1091): Range must be bounded by constant expressions.
# ** Error: ../sim/sim_tb_top.v(1092): Range must be bounded by constant expressions.
# ** Error: ../sim/sim_tb_top.v(1092): Range must be bounded by constant expressions.
# ** Error: /tools/gensys/questa/6.5c/linux_x86_64/vlog failed.

この問題は、UDIMM をターゲットにしていない VHDL デザイン、シングル コントローラー Verilog デザイン、マルチ コントローラー Verilog デザインでは見られません。

ソリューション

sim_tb_top (テストベンチ) モジュールのメモリー モデルにパラメーター DQ_WIDTH が正しくマップされていないためにこの問題が発生します。

たとえば、2 つのコントローラーに対しデザインが生成されていて (GUI で [Number of Controllers] が 2 に設定されている) 、2 番目のコントローラーに x16 UDIMM が選択されている場合、sim_tb_top での UDIMM のメモリー モデルへのポート マップは次のようになります。

既存コード :
.dq ({c1_ddr3_dq_sdram[DQ_WIDTH-1:(C1_DQ_WIDTH-8)],
c1_ddr3_dq_sdram[DQ_WIDTH-1:(C1_DQ_WIDTH-8)]}),

このポート マップを次のように変更します。
修正コード :
.dq ({c1_ddr3_dq_sdram[C1_DQ_WIDTH-1:(C1_DQ_WIDTH-8)],
c1_ddr3_dq_sdram[C1_DQ_WIDTH-1:(C1_DQ_WIDTH-8)]}),

UDIMM が 2 番目のコントローラーに選択されている場合、上記の例で DQ_WIDTH パラメーターが正しくマップされます。DQ_WIDTH パラメーターを正しくマップするには、すべての x16 UDIMM コントローラーに対しこの修正を行う必要があります。

この問題は、ISE Design Suite 13.1 MIG v3.7 リリースで修正されています。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
37173 MIG v3.6 - ISE Design Suite 12.3 でのリリース ノートおよび既知の問題 N/A N/A

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
38951 MIG v3.61 - ISE Design Suite 12.4 ~ 14.2 でのリリース ノートおよび既知の問題 N/A N/A
37173 MIG v3.6 - ISE Design Suite 12.3 でのリリース ノートおよび既知の問題 N/A N/A
AR# 38083
日付 05/20/2012
ステータス アクティブ
種類 既知の問題
デバイス 詳細 概略
IP