文章 ID: 000087027 內容類型: 產品資訊與文件 最近查看日期: 2017 年 11 月 15 日

如何補償 Arria 10 PLL 參考頻率的 PLL 級聯或非專用頻率路徑的抖動?

環境

  • Intel® Quartus® Prime Pro Edition 軟體
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    描述

    如果您要從 PLL 輸出中連接 PLL 參考頻率,或在 Arria® 10 設計中連接非專用頻率針腳,將會引入額外的抖動。在設計中,在下游 PLL 的輸出頻率增加 100ps 頻率的不確定性限制,可以補償此抖動。

    有關使用頻率不確定性限制的詳細資訊,請參閱下列檔。

    Arria® 10 PLL 級聯或非專用頻率路徑的解決方法指南

    當將設計升級至 Quartus Prime 軟體 v17.1 或更高版本時,先前新增的限制需要修訂:

    a) 如果現有的頻率不確定性僅來自 derive_clock_uncertainty set_clock_uncertainty -add-to -從 0.1

    b) 如果現有的頻率不確定性來自derive_clock_uncertainty額外的「set_clock_uncertainty-add」v17.0:set_clock_uncertainty -新增到 -從 [4 月 0.1] v17.1 或更高版本:set_clock_uncertainty -add -到 -從

    c) 如果derive_clock_uncertainty覆寫為「set_clock_uncertainty」(不 -新增) - 無變更,需要保持現有的限制set_clock_uncertainty - - 從 [expr 0.1]

     

    如果受影響的下游 PLL Arria 10 PHYLite IOPLL,請參閱下列步驟以瞭解適用頻率不確定性限制的詳細資訊。

    從 Quartus Prime 軟體版本 17.0 開始,Arria 10 Altera PHYLite IP 參數編輯器中不再顯示「使用核心 PLL 參考頻率連線」。建議的方法是使用專用的頻率針腳將其連接到 PHYLite IOPLL 參考頻率。如果您的設計需要使用此功能,請仔細閱讀下列準則並遵守這些準則。

    若要啟用「使用核心 PLL 參考頻率連線」(Quartus Prime 軟體版本 17.0 及更新版本),請在 quartus.ini 檔案中新增以下 INI。

    ip_altera_phylite_en_pll_core_ref_ck = 開啟

    a2t_allow_cascaded_pll_in_cpa_compensation開啟

    當從 PLL 輸出或非專用頻率針腳連接 PLL 參考頻率時,將會引入額外的抖動。

    針對採用 Arria 10 Altera PHYLite 版本 17.0 和之前所執行的設計,此抖動可透過在設計中下游 PLL 的輸出頻率增加 100ps 頻率的不確定性限制來獲得補償。

    新增 PHYLite 為 Quartus Prime 軟體版本 17.0 和更早版本所產生的 SDC 檔案中的頻率不確定性的下列限制。每次再生 PHYLite IP Altera時,您都需要做出下列變更。

    1. 將 100ps 值指派給可變名稱的額外抖動。

    設定additional_jitter 0.000

    # 首先確定是否已建立參考頻率 (即參考頻率分享)

    如果 {$var (PLL_USE_CORE_REF_CLK) == 「錯誤」\ {

    設定ref_clock_exists [phy_altera_phylite_arch_nf_171_flagyzi_does_ref_clk_exist $pins(pll_ref_clock)]

    如果 { $ref_clock_exists == 0 {

    # 這是 PLL 用來衍生核心中任何其他頻率的參考頻率

    create_clock-期間 $ref_期間 -waveform [ 清單 0 $ref_半_期間 ] $pins(pll_ref_clock) -新增 -name ${inst{_ref_clock

    }

    { 其他 {

    設定additional_jitter 0.100

    }

    2. 在寫入 FIFO 頻率上新增更多頻率不確定性:

    設定i_wf_clock 0

    foreach_in_collection wf_clock $write_fifo_clk_neg {

    設定vco_clock_id [phy_altera_phylite_arch_nf_171_flagyzi_get_vco_clk_id $wf_clock var]

    如果 {$vco_clock_id == -1® { {

    post_message類型critical_warning「找不到 VCO 頻率」

    { 其他 {

    設定為 local_wf_clk_grp_${i_grp_idx\_${i_wf_clock] [ phy_altera_phylite_arch_nf_171_flagyzi_get_or_add_generated_clock \

    -target [get_node_info-name $wf_clock]

    -名稱「${inst[_wf_clk_grp_${i_grp_idx\_${i_wf_clock\_neg」

    -來源 [get_node_info-name $vco_clock_id] \

    -multiply_by 1 \

    -divide_by [4 月 $var(PLL_VCO_TO_MEM_CLK_FREQ_RATIO))]

    -相 180 ]

    }

    incr i_wf_clock

    }

    #new限制:

    如果 {$additional_jitter != 0® { { \

    set_clock_uncertainty-至 [get_clocks ${inst[_wf_clk_grp_*] -新增 $additional_jitter

    }

    3. 在寫入路徑上新增更多頻率不確定性:

    如果 {[llength $write_clocks]>0\ \ \

    # 我們不需要derive_clock_uncertainty數位,因為我們有包含 FLS JITTER 的set_output_delay

    set_clock_uncertainty──[get_clocks $write_clocks][phy_altera_phylite_arch_nf_170_zul23qq_round_3dp[0.5*($var(WR_SSO)$var(WR_JITTER_SCALED)$additional_jitter]]

    }

    4. read_clocks沒有變更

    如果 {[llength $read_clocks]>0\ { {

    # 我們不需要derive_clock_uncertainty編號,因為我們有包含 FLS JITTER 的set_input_delay

    set_clock_uncertainty──至 [get_clocks $read_clocks] 0.0

    }

    5. 新增 c2p/p2c 傳輸的頻率不確定性 (phy_clk usr_clock)

    如果 {$i_phy_clock > $same_tile_index™ {

    # C2P/P2C 的周邊磚!= CPA 磚。

    對於這些傳輸,SDC 明確覆寫頻率的不確定性值。

    因此,過度限制時,我們不得使用「新增」選項。

    設定add_to_derived「」

    設定c2p_su [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 0] [lindex $periphery_clock_uncertainty 0]] additional_jitter]

    設定c2p_h [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 1] [lindex $periphery_clock_uncertainty 1]] additional_jitter]

    設定p2c_su [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 2] [lindex $periphery_clock_uncertainty 2]] additional_jitter]

    設定p2c_h [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 3] [lindex $periphery_clock_uncertainty 3]] additional_jitter]

    { 其他 {

    # C2P/P2C,周邊磚 == CPA 磚

    對於這些傳輸,可以安全地使用-新增選項,因為我們仰賴

    derive_clock_uncertainty為基本值。

    設定add_to_derived「新增」

    設定c2p_su [expr [lindex $periphery_過度限制訓練 0] [lindex $periphery_clock_uncertainty 0] additional_jitter/2]

    設定c2p_h [expr [lindex $periphery_過度限制訓練 1] [lindex $periphery_clock_uncertainty 1] additional_jitter/2]

    設定p2c_su [expr [lindex $periphery_過度限制訓練 2] [lindex $periphery_clock_uncertainty 2] additional_jitter/2]

    設定p2c_h [expr [lindex $periphery_過度限制訓練 3] [lindex $periphery_clock_uncertainty 3] additional_jitter/2]

    }

    6. 新增核心傳輸的頻率不確定性(usr_clock/額外核心頻率usr_clock/額外核心頻率)

    設定為 c2c_same_su [expr [lindex $core_overconstraints 0] [lindex $core_clock_uncertainty 0] additional_jitter]

    設定c2c_same_h [expr [lindex $core_過度限制訓練 1] [lindex $core_clock_uncertainty 1]]

    設定c2c_diff_su [expr [lindex $core_過度限制訓練 2] [lindex $core_clock_uncertainty 2] additional_jitter]

    設定c2c_diff_h [expr [lindex $core_過度限制訓練 3] [lindex $core_clock_不確定性 3] additional_jitter]

    foreach src_core_clock_local $core_clocks_local {

    如果 {$src_core_clock_local != 「」\ { {

    foreach dst_core_clock_local $core_clocks_local {

    如果 {$dst_core_clock_local != 「」\ { {

    如果 {$src_core_clock_local =$dst_core_clock_local® {

    # 相同的頻率網路傳輸

    set_clock_uncertainty -從 $src_core_clock_local -到 $dst_core_clock_local -setup -add $c 2c_same_su

    set_clock_uncertainty-從 $src_core_clock_local-到 $dst_core_clock_local -hold -enable_same_physical_edge -新增 $c 2c_same_h

    { 其他 {

    # 不同核心頻率網路之間的傳輸

    set_clock_uncertainty -從 $src_core_clock_local -到 $dst_core_clock_local -setup -add $c 2c_diff_su

    set_clock_uncertainty -從 $src_core_clock_local -到 $dst_core_clock_local -hold -add $c 2c_diff_h

    }

    }

    }

    }

    }

    7. 對於涉及user_created_clock和 PHYLite 輸出頻率的使用者邏輯,使用者需要在使用者 sdc 檔案中的頻率傳輸路徑上新增額外的 100ps 頻率不確定性。

    8. 回報 SDC 並查看 SDC 作業>Set Clock Uncertainty 報告,確保在受影響的頻率傳輸路徑中新增額外的 100ps

    9. 重新計時或重新相容設計,並確保時間關閉

    10. 執行嚴格的硬體測試,以確保設計在投入生產前正常運作

    將設計升級至 Quartus Prime 軟體 v17.1 或更高版本時:

    a) 啟動 IP 升級工具,將 Arria 10 Altera PHYLite IP 升級為 v17.1

    b) 當使用核心 PLL 參考頻率時,產生的 PHYLite SDC 檔案將新增所有必要的頻率不確定性。

    c) 對於先前涉及user_created_clock和 PHYLite 輸出頻率的使用者邏輯路徑,額外增加 100ps 頻率的不確定性,必須保留在使用者 sdc 檔案中。

    d) 對設計執行完整編譯,並確保時間結束。

    相關產品

    本文章適用於 1 產品

    Intel® Arria® 10 FPGA 與 SoC FPGA

    這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。