เนื่องจากปัญหาในซอฟต์แวร์ Intel® Quartus® Prime Pro Edition เวอร์ชั่น 19.1 พฤติกรรมการจําลองฟังก์ชันอาจไม่ถูกต้องเมื่อการออกแบบของคุณมี IP พอร์ต RAM-2 หลายตัวที่เปิดใช้งาน "จําลองโหมดนาฬิกาคู่ TDP" และเรียกใช้สคริปต์การจําลองที่สร้างขึ้นโดยอัตโนมัติ IP RAM หลายตัวสร้างอินสแตนซ์dcfifo_inและdcfifo_outโมเดลย่อยที่มีชื่อโมดูลเดียวกัน แต่ไฟล์dcfifo_inและdcfifo_outของ IP แต่ละไฟล์สร้างโมเดลย่อยที่แตกต่างกันทันที ในสคริปต์การจําลอง dcfifo_in ทั้งหมด dcfifo_out และไฟล์ย่อยของ IP RAM ที่แตกต่างกันจะถูกคอมไพล์ลงในไลบรารีการจําลองเดียวกัน ดังนั้นไฟล์ที่คอมไพล์dcfifo_inและdcfifo_outที่ใหม่กว่าจึงเขียนทับไฟล์ก่อนหน้า IP RAM ทั้งหมดใช้โมดูลdcfifo_inและdcfifo_outเดียวกันและนําไปสู่พฤติกรรมการจําลองที่ไม่ถูกต้อง
เพื่อแก้ไขปัญหานี้ แก้ไขสคริปต์การจําลองในเครื่องมือจําลอง sim/common/<>_files.tcl เพื่อสร้างไลบรารีที่แตกต่างกันสําหรับ IP RAM ต่างๆ และคอมไพล์อินสแตนซ์dcfifo_inและdcfifo_outไปยังไลบรารีต่างๆ ที่สอดคล้องกัน
- สคริปต์ดั้งเดิม:
get_design_libraries proc {} {
ตั้งค่าไลบรารี [dict create]
dict set libraries fifo_191 1
dict set libraries ram_2port_191 1
dict set libraries dpram32x512 1
dict set libraries dpram16x1024 1
return $libraries}
proc get_design_files {USER_DEFINED_COMPILE_OPTIONS USER_DEFINED_VERILOG_COMPILE_OPTIONS USER_DEFINED_VHDL_COMPILE_OPTIONS QSYS_SIMDIR} {
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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_
}
- สคริปต์ที่แก้ไข:
get_design_libraries proc {} {
ตั้งค่าไลบรารี [dict create] dict set libraries fifo_191 1
dict set libraries ram_2port_191_0 1
dict set libraries ram_2port_191_1 1
dict set libraries dpram32x512 1
dict set libraries dpram16x1024 1
return $libraries}
proc get_design_files {USER_DEFINED_COMPILE_OPTIONS USER_DEFINED_VERILOG_COMPILE_OPTIONS USER_DEFINED_VHDL_COMPILE_OPTIONS QSYS_SIMDIR} {
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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"
lappend 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}
ปัญหานี้ได้รับการแก้ไขเริ่มต้นด้วยเวอร์ชัน 19.3 ของซอฟต์แวร์ Intel® Quartus® Prime Pro Edition