ID บทความ: 000080660 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 07/10/2016

ทําไมการออกแบบตัวอย่างสาธิตฮาร์ดแวร์ Core IP DisplayPort ไม่แสดงภาพเมื่อซิงก์คอร์ DisplayPort IP เชื่อมต่อกับ GPU ของ Intel®

สิ่งแวดล้อม

  • Intel® Quartus® Prime Pro Edition
  • โปรเซสเซอร์ Intel® Nios® II
  • IP เอฟพีจีเอ Intel® DisplayPort*
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    เนื่องจากปัญหาเกี่ยวกับการออกแบบตัวอย่างสาธิตฮาร์ดแวร์ Core IP DisplayPort (เวอร์ชั่น 16.0 และก่อนหน้า) ทําให้มองไม่เห็นภาพเมื่อเชื่อมต่อกับ GPU ของ DisplayPort® IP ในขณะที่ค่า RX และ TX MSA อาจมีลักษณะที่ถูกต้อง จะไม่มีภาพปรากฏขึ้นบนหน้าจอ ซึ่งเกิดจากความไม่ตรงกันระหว่างโหมดการนาฬิกาที่ใช้โดย Intel GPU และแหล่งคอร์ IP DisplayPort Intel GPU ใช้การนาฬิกาแบบซิงโครนัส ในขณะที่แหล่งที่มาของคอร์ DisplayPort IP ใช้การตอกบัตรแบบอสมวาร ซึ่งทําให้เกิดปัญหาสองประการกับการออกแบบตัวอย่างสาธิตฮาร์ดแวร์

    ประการแรก การออกแบบตัวอย่างฮาร์ดแวร์ใช้ค่า NVID คงที่สําหรับโมดูลการกู้คืนสัญญาณนาฬิกาพิกเซล (PCR) การตั้งค่านี้มีไว้สําหรับ GPU ที่ใช้การนาฬิกาแบบอสมวารและจะไม่ทํางานกับ Intel GPU

    ประการที่สอง เนื่องจากโหมดการตอกบัตรของ Intel GPU จะตั้งค่าบิต 0 ของการลงทะเบียน RX MSA MISC0 เป็น 1 ในขณะที่แหล่งที่มาของคอร์ DisplayPort IP จะตั้งค่าบิต 0 ของการลงทะเบียน TX MSA MISC0 เป็น 0 แม้ว่าจะอยู่ในข้อมูลจําเพาะเพื่อให้บิตเหล่านี้แตกต่างกัน ซอฟต์แวร์Nios® II (โดยเฉพาะ EDID ผ่านรหัส) คาดหวังให้ RX MSA MISC0 ตรงกับ TX MSA MISC0 และปิดใช้งานแหล่งคอร์ DisplayPort IP หากมีความไม่สอดคล้องกัน

    ความละเอียด

    ก่อนอื่นให้ปรับเปลี่ยนไฟล์ Verilog ระดับบนสุดเพื่อปิดใช้งานโดยใช้ค่า NVID คงที่สําหรับโมดูล PCR ในไดเรกทอรีโครงการหลัก ให้แก้ไขไฟล์ a10_dp_demo.v เพื่อเปลี่ยนหนึ่งบรรทัด

    จาก:

    defparam bitec_clkrec_i.FIXED_NVID = 1;

    ถึง:

    defparam bitec_clkrec_i.FIXED_NVID = 0;

    ประการที่สอง แก้ไขซอฟต์แวร์ Nios II เพื่อเพิกเฉยต่อบิต 0 เมื่อเปรียบเทียบการลงทะเบียน RX MSA MISC0 และ TX MSA MISC0 ในไดเรกทอรีโครงการหลัก ให้ปรับเปลี่ยนไฟล์ main.c เพื่อเปลี่ยนสองบรรทัด

    จาก:

    rx_misc0 = IORD(btc_dprx_baseaddr(0), DPRX0_REG_MSA_MISC0) & 0xFFF F;

    tx_misc0 = IORD(btc_dptx_baseaddr(), DPTX0_REG_MSA_MISC0) & 0xFFF F;

    ถึง:

    rx_misc0 = IORD(btc_dprx_baseaddr(0), DPRX0_REG_MSA_MISC0) & 0xFFF E;

    tx_misc0 = IORD(btc_dptx_baseaddr(), DPTX0_REG_MSA_MISC0) & 0xFFF E;

    หลังจากทําการปรับเปลี่ยนเหล่านี้ให้เรียกใช้สคริปต์ build_sw.sh เพื่อสร้างโครงการซอฟต์แวร์ใหม่แล้วคอมไพล์โครงการในซอฟต์แวร์ Quartus® Prime หรือคุณสามารถเรียกใช้สคริปต์ runall.tcl อีกครั้ง ซึ่งจะดําเนินการทั้งสองขั้นตอนเหล่านี้ให้คุณ

    ทั้งสองปัญหาเหล่านี้ได้รับการแก้ไขในการออกแบบตัวอย่างสาธิตฮาร์ดแวร์ Quartus Prime v16.1 DisplayPort

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 4 ผลิตภัณฑ์

    Intel® Arria® 10 FPGA และ SoC FPGA
    Arria® V FPGA และ SoC FPGA
    Cyclone® V FPGA และ SoC FPGA
    Stratix® V FPGA

    เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้