ปัญหาสำคัญ
เมื่อคุณสร้างอินสแตนซ์การกําหนดค่าที่แตกต่างกันของ RapidIO I IP Core ในของคุณ การออกแบบ การชนกันของชื่อไลบรารีในการกําหนดค่าอาจทําให้เกิดการสังเคราะห์ เครื่องมือในการวิเคราะห์อย่างไม่ถูกต้องสําหรับโมดูลเหล่านั้นที่มีชื่อเดียวกันในโมดูลทั้งหมด ตั้ง ค่า คอน ฟิก การออกแบบของคุณอาจล้มเหลวในการสังเคราะห์เนื่องจากพอร์ตที่ขาดหายไป หรือ การสังเคราะห์อย่างไม่ถูกต้องที่จะทําให้เกิดพฤติกรรมที่ผิดปกติในฮาร์ดแวร์
ปัญหานี้มีผลต่อการออกแบบในซอฟต์แวร์ Quartus Prime Pro Edition
การออกแบบ Quartus Prime Standard Edition ไม่ได้รับผลกระทบ
ตั้งชื่อไลบรารีเฉพาะให้กับไฟล์ .qip แต่ละไฟล์ที่สร้างขึ้นด้วย RapidIO IP หลัก:
ขั้นตอนที่ 1: เปิด .qip ในเครื่องมือแก้ไขข้อความ
ขั้นตอนที่ 2: แทนที่ชื่อไลบรารีเริ่มต้นแต่ละชื่อต่อไปนี้ด้วย ชื่อที่ไม่ซ้ํา
- ไลบรารี "altera_rapidio_
- ไลบรารี "altera_xcvr_native_a10_"
- ไลบรารี "altera_xcvr_reset_control_"
- ไลบรารี "altera_xcvr_atx_pll_a10_"
ตัวอย่างเช่น:
set_global_assignment -library "altera_rapidio_160" -name SDC_FILE [file
join
$::quartus(qip_path)"altera_rapidio_160/synth/rio_altera_rapidio_160_puccaoq.sdc"]
set_global_assignment -library "altera_rapidio_160" -name VERILOG_FILE [file
join $::quartus(qip_path)
"altera_rapidio_160/synth/rio_altera_rapidio_160_puccaoq.v"]
set_global_assignment -library "altera_rapidio_160" -name VERILOG_FILE [file
join $::quartus(qip_path) "altera_rapidio_160/synth/altera_rapidio_io_master.v"]
set_global_assignment -library "altera_rapidio_160" -name VERILOG_FILE [file
join $::quartus(qip_path)
"altera_rapidio_160/synth/altera_rapidio_io_slave.v"]
set_global_assignment -library "altera_xcvr_native_a10_160" -name
SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/alt_xcvr_resync.sv"]
set_global_assignment -library "altera_xcvr_native_a10_160" -name
SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/alt_xcvr_arbiter.sv"]
set_global_assignment -library "altera_xcvr_native_a10_160" -name
SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/twentynm_pcs.sv"]
set_global_assignment -library "altera_xcvr_native_a10_160" -name
SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/twentynm_pma.sv"]
ตั้งชื่อเฉพาะให้กับแต่ละไลบรารี:
set_global_assignment -library "_altera_rapidio_160" -name
SDC_FILE [file join $::quartus(qip_path)
"altera_rapidio_160/synth/rio_altera_rapidio_160_puccaoq.sdc"]
set_global_assignment -library "_altera_rapidio_160" -name
VERILOG_FILE [file join $::quartus(qip_path)
"altera_rapidio_160/synth/rio_altera_rapidio_160_puccaoq.v"]
set_global_assignment -library "_altera_rapidio_160" -name
VERILOG_FILE [file join $::quartus(qip_path)
"altera_rapidio_160/synth/altera_rapidio_io_master.v"]
set_global_assignment -library "_altera_rapidio_160" -name
VERILOG_FILE [file join $::quartus(qip_path)
"altera_rapidio_160/synth/altera_rapidio_io_slave.v"]
set_global_assignment -library "_altera_xcvr_native_a10_160"
-name SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/alt_xcvr_resync.sv"]
set_global_assignment -library "_altera_xcvr_native_a10_160"
-name SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/alt_xcvr_arbiter.sv"]
set_global_assignment -library "_altera_xcvr_native_a10_160"
-name SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/twentynm_pcs.sv"]
set_global_assignment -library "_altera_xcvr_native_a10_160"
-name SYSTEMVERILOG_FILE [file join $::quartus(qip_path)
"altera_xcvr_native_a10_160/synth/twentynm_pma.sv"]
ขั้นตอนที่ 3: ใช้ขั้นตอนข้างต้นกับอินสแตนซ์อื่นๆ ของ RapidIO I IP Core สร้างไฟล์ .qip ขึ้น ตรวจสอบให้แน่ใจว่าชื่อไลบรารีที่ระบุต้องไม่ซ้ํากันใน .qip แฟ้ม
ขั้นตอนที่ 4: คอมไพล์การออกแบบของคุณ ในการ สังเคราะห์ Spectra-Q รายงานการอ่านไฟล์ต้นฉบับ คุณจะสังเกตว่าโมดูล RapidIO (altera_rapidio_*) ได้รับการแมปกับไลบรารีที่คุณกําหนดไว้ใน .qip แฟ้ม
ปัญหานี้ได้รับการแก้ไขในคอร์ RapidIO I IP เวอร์ชัน 16.1