ModelSim*-インテル FPGA エディション・ソフトウェアを使用して、テストベンチ例または<IP _name>_sim・ファイルセットを含む UniPHY DDR3 IP 上でシミュレーションを実行すると、以下のタイプのトランスクリプト・メッセージが生成される場合があります。
注: DLL インスタンス・<IP_name>_example_sim.e0.if0.dll0.dll_wys_m.inst の入力周波数は、指定されたクロック周波数と一致するようになりました。
警告: DLL インスタンス <IP_name>_example_sim.e0.if0.dll_wys_m.inst の入力周波数違反。指定された入力期間は 2500 ps ですが、実際は 3750 ps です
また、シミュレーションがキャリブレーションを完了することはありません。
これは、DDR3 UniPHY パラメーター・エディター -> PHY Settings パラメーターの「メモリークロック周波数」と「PLL リファレンス・クロック周波数」の組み合わせで発生する可能性があります。
これは、UniPHY DDR3 IP テストベンチ・クロック・ソースコードの丸め問題が原因です。
デザイン例のテストベンチの回避策は次のとおりです。
Verilog:
ファイル <IP_name>_example_sim.v では、altera_avalon_clock_source のpll_ref_clk・インスタンスについて、コード行に記載されています。
CLOCK_RATE (x) ここで x は、DDR3 メガウィザード PHY 設定 ->「PLL リファレンス・クロック周波数」として指定されたフリークエンシーを示すフリークエンシー値変更 x です。
Vhdl:
- ファイル・サブモジュール/altera_avalon_clock_source.vhd で、行を 変更 します。
generic (CLOCK_RATE: 整数 :=10)、 -- デフォルトレート 10 MHz (100ns)
宛先:
generic (CLOCK_RATE: real :=10.0); -- デフォルトレート 10 MHz (100ns)
- ファイル <IP_name>_example.vhd で、 次を変更します。
コンポーネント altera_avalon_clock_source は
汎用 (
CLOCK_RATE: 正 := 10
);
ポート (
clk: アウト std_logic -- clk
);
エンド・コンポーネント altera_avalon_clock_source;
宛先:
コンポーネント altera_avalon_clock_source は
汎用 (
CLOCK_RATE: リアル:= 10.0
);
ポート (
clk: アウト std_logic -- clk
);
エンド・コンポーネント altera_avalon_clock_source;
- ファイル <IP_name>_example.vhd で、入力周波数 x を DDR3 パラメーター・エディター PHY 設定 ->「PLL リファレンス・クロック周波数」で指定された値に 変更 します。例えば、入力周波数が 100MHz の場合、x の値に 100 を入れます。
変更
pll_ref_clk: コンポーネント altera_avalon_clock_source
汎用マップ (
CLOCK_RATE => x
)
ポートマップ (
clk => pll_ref_clk_clk_clk -- clk.clk
);
宛先:
pll_ref_clk: コンポーネント altera_avalon_clock_source
汎用マップ (
CLOCK_RATE = > "PLL リファレンス・クロック周波数"
)
ポートマップ (
clk => pll_ref_clk_clk_clk -- clk.clk
);
この問題は、Quartus® II ソフトウェア・バージョン 12.0 以降で修正されています。