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

ทําไมนาฬิกา PLL ของฉันจึงไม่ได้รับอย่างถูกต้องใน Timing Analyzer

สิ่งแวดล้อม

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    ในซอฟต์แวร์ Quartus® Prime Pro Edition คุณจะเห็นว่านาฬิกาลูปล็อกเฟส (PLL) ไม่ได้รับอย่างถูกต้องเมื่อนาฬิกาอ้างอิง PLL มีนาฬิกาหลักหลายนาฬิกา ซึ่งเกิดขึ้นเนื่องจากตัววิเคราะห์การกําหนดเวลาไม่สามารถระบุว่าควรใช้นาฬิกาหลักหลายตัวตัวใด

    คุณอาจเห็นข้อความเตือนที่แสดงด้านล่างนี้ในตัววิเคราะห์การกําหนดเวลาเมื่อรูปแบบนาฬิกาเป็นดังนี้:

    คําเตือน(332036): นาฬิกา: clk0 พบในฐานะผู้สมัครค่านาฬิกาหลักที่เป็นไปได้
    คําเตือน(332036): นาฬิกา: clk1 พบในฐานะผู้สมัครค่านาฬิกาหลักที่เป็นไปได้
    คําเตือน(332087): ไม่สามารถรับนาฬิกาหลักสําหรับการกําหนดค่านาฬิกานี้ได้ นาฬิกา: ไม่ได้สร้าง u0_pll450m|iopll_0_n_cnt_clk
    คําเตือน(332036): นาฬิกา: clk0 พบในฐานะผู้สมัครค่านาฬิกาหลักที่เป็นไปได้
    คําเตือน(332036): นาฬิกา: clk1 พบในฐานะผู้สมัครค่านาฬิกาหลักที่เป็นไปได้
    คําเตือน(332087): ไม่สามารถรับนาฬิกาหลักสําหรับการกําหนดค่านาฬิกานี้ได้ นาฬิกา: ไม่ได้สร้าง u0_pll450m|iopll_0_m_cnt_clk
    คําเตือน(332036): นาฬิกา: clk0 พบในฐานะผู้สมัครค่านาฬิกาหลักที่เป็นไปได้
    คําเตือน(332036): นาฬิกา: clk1 พบในฐานะผู้สมัครค่านาฬิกาหลักที่เป็นไปได้
    คําเตือน(332087): ไม่สามารถรับนาฬิกาหลักสําหรับการกําหนดค่านาฬิกานี้ได้ นาฬิกา: ไม่ได้สร้าง u0_pll450m|iopll_0_outclk0

    สิ่งนี้เกิดขึ้นในการออกแบบที่กําหนดเป้าหมายอุปกรณ์ Stratix® 10 และอุปกรณ์ Agilex™ เท่านั้น

    ความละเอียด

    ในการจํากัดนาฬิกาเอาต์พุต PLL อย่างถูกต้องด้วยตนเองให้สร้างนาฬิกาหลักระบุนาฬิกาหลักสําหรับแต่ละนาฬิกาเอาต์พุต PLL และเพิ่มกลุ่มนาฬิกาเพื่อตัดนาฬิกาเอาต์พุต PLL จากนาฬิกาอ้างอิงที่แตกต่างกัน

    ข้อจํากัดการกําหนดเวลาต่อไปนี้สามารถใช้สําหรับแผนงานนาฬิกาด้านบนได้:

    create_clock -name clk0 -period 100MHz [get_ports clk0]
    create_clock -name clk1 -period 100MHz [get_ports clk1]


    create_generated_clock-ชื่อ {u0|iopll_0_m_cnt_clk} -แหล่งที่มา {u0_pll450m|iopll_0|tennm_pll|core_refclk} -divide_by 12 -multiply_by 1 -duty_cycle 50.00 -มาสเตอร์ {clk0} { u0_pll450m|iopll_0|tennm_pll~mcntr_reg } -add
    create_generated_clock-ชื่อ {u0|iopll_0_n_cnt_clk} -แหล่งที่มา {u0_pll450m|iopll_0|tennm_pll|core_refclk} -divide_by 1 -multiply_by 1 -duty_cycle 50.00 -มาสเตอร์ {clk0} { u0_pll450m|iopll_0|tennm_pll~ncntr_reg } -add
    create_generated_clock-ชื่อ {u0|iopll_0_outclk0} -แหล่งที่มา {u0_pll450m|iopll_0|tennm_pll|core_refclk} -divide_by 3 -multiply_by 12 -duty_cycle 50.00 -มาสเตอร์ {clk0} { u0_pll450m|iopll_0|tennm_pll|outclk[1] } -add

    create_generated_clock-ชื่อ {u1|iopll_0_m_cnt_clk} -แหล่งที่มา {u0_pll450m|iopll_0|tennm_pll|core_refclk} -divide_by 12 -multiply_by 1 -duty_cycle 50.00 -มาสเตอร์ {clk1} { u0_pll450m|iopll_0|tennm_pll~mcntr_reg } -add
    create_generated_clock-ชื่อ {u1|iopll_0_n_cnt_clk} -แหล่งที่มา {u0_pll450m|iopll_0|tennm_pll|core_refclk} -divide_by 1 -multiply_by 1 -duty_cycle 50.00 -มาสเตอร์ {clk1} { u0_pll450m|iopll_0|tennm_pll~ncntr_reg } -add
    create_generated_clock-ชื่อ {u1|iopll_0_outclk0} -แหล่งที่มา {u0_pll450m|iopll_0|tennm_pll|core_refclk} -divide_by 3 -multiply_by 12 -duty_cycle 50.00 -มาสเตอร์ {clk1} { u0_pll450m|iopll_0|tennm_pll|outclk[1] } -add

    set_clock_groups -exclusive -group {u0|iopll_0_outclk0} -กลุ่ม {u1|iopll_0_outclk0}

    คุณสามารถหาชื่อโหนดที่ถูกต้องได้ในตัวค้นหาโหนด และพารามิเตอร์ตัวแบ่งและตัวคูณจากการกําหนดค่า PLL

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

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

    เอฟพีจีเอและเอฟพีจีเอ SoC Intel® Agilex™ 7
    Intel® Stratix® 10 FPGA และ SoC FPGA

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