インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション・バージョン 19.1 の問題により、デザインに複数の RAM-2 ポート IP が含まれている場合に「エミュレート TDP デュアルクロックモード」を有効にし、自動生成されたシミュレーション・スクリプトを実行すると、機能のシミュレーション動作が正しくない可能性があります。複数の RAM IP はすべて、同じモジュール名でdcfifo_inをインスタンス化し、サブモジュールをdcfifo_outします。しかし、各 IP のdcfifo_inファイルとdcfifo_outファイルは、異なるサブモジュールをインスタンス化します。シミュレーション・スクリプトでは、すべてのdcfifo_in、dcfifo_out、および異なる RAM IP のサブモジュール・ファイルが同じシミュレーション・ライブラリーにコンパイルされます。したがって、後でコンパイルされたdcfifo_inとdcfifo_outファイルは以前のファイルを上書きします。すべての RAM IP は同じdcfifo_inモジュールとdcfifo_outモジュールを使用するため、不正なシミュレーション動作が生じます。
この問題を回避するには、sim/common/_files.tcl でシミュレーション・スクリプトを変更して、異なる RAM IP 用に異なるライブラリーを作成し、dcfifo_inをコンパイルし、インスタンスを対応する異なるライブラリーにdcfifo_outします。
- 元のスクリプト:
proc get_design_libraries {} {
set ライブラリー [dict create]
dict set ライブラリー fifo_191 1
dict set ライブラリー ram_2port_191 1
dict set ライブラリー dpram32x512 1
dict set ライブラリー dpram16x1024 1
return $libraries}
proc get_design_files {USER_DEFINED_COMPILE_OPTIONS USER_DEFINED_VERILOG_COMPILE_OPTIONS USER_DEFINED_VHDL_COMPILE_OPTIONS QSYS_SIMDIR} {
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/dcfifo_in.v」」-work ram_2port_191
lap design_files 「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/dcfifo_out.v」」-work ram_2port_191
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/dpram32x512_ram_2port_191_6nqqinq.v」」-work ram_2port_191
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/tdp_dpram32x512_ram_2port_191_6nqqinq.v」」-work ram_2port_191
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/dcfifo_in.v」」-work ram_2port_191
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/dcfifo_out.v」」-work ram_2port_191
lap design_files 「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/dpram16x1024_ram_2port_191_u7jjoxa.v」」-work ram_2port_191
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/tdp_dpram16x1024_ram_2port_191_u7jjoxa.v」」-work ram_2port_191
$design_files を返す
}
- 変更されたスクリプト:
proc get_design_libraries {} {
set ライブラリー [dict create] dict set ライブラリー fifo_191 1
dict set ライブラリー ram_2port_191_0 1
dict set ライブラリー ram_2port_191_1 1
dict set ライブラリー dpram32x512 1
dict set ライブラリー dpram16x1024 1
返品$libraries}
proc get_design_files {USER_DEFINED_COMPILE_OPTIONS USER_DEFINED_VERILOG_COMPILE_OPTIONS USER_DEFINED_VHDL_COMPILE_OPTIONS QSYS_SIMDIR} {
lap design_files 「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/dcfifo_in.v」」-work ram_2port_191_1
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/dcfifo_out.v」」-work ram_2port_191_1
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/dpram32x512_ram_2port_191_6nqqinq.v」」-work ram_2port_191_1
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram32x512/dpram32x512/ram_2port_191/sim/tdp_dpram32x512_ram_2port_191_6nqqinq.v」」-work ram_2port_191_1
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/dcfifo_in.v」」-work ram_2port_191_0
lap design_files「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/dcfifo_out.v」-work ram_2port_191_0
lap design_files 「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/dpram16x1024_ram_2port_191_u7jjoxa.v」」-work ram_2port_191_0
lap design_files 「vlog $USER_DEFINED_VERILOG_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS \」[normalize_path「$QSYS_SIMDIR/dpram16x1024/dpram16x1024/ram_2port_191/sim/tdp_dpram16x1024_ram_2port_191_u7jjoxa.v」」-work ram_2port_191_0
$design_files} を返す
この問題は、インテル® Quartus® Prime 開発ソフトウェア・プロ・エディションのバージョン 19.3 以降で修正されています。