ID Artikel: 000080391 Jenis Konten: Informasi & Dokumentasi Produk Terakhir Ditinjau: 15/11/2017

Bagaimana cara mengimbangi gangguan pada cascading PLL atau jalur clock non-khusus untuk Arria clock referensi 10 PLL?

Lingkungan

  • Intel® Quartus® Prime Edisi Pro
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Deskripsi

    Jika Anda menghubungkan clock referensi PLL dari keluaran PLL atau pin clock non-khusus dalam desain Arria® 10 Anda, gangguan tambahan akan diperkenalkan. Gangguan ini dapat dikompensasi dengan menambahkan batasan ketidakpastian clock 100ps pada clock keluaran PLL hilir dalam desain.

    Lihat dokumen berikut untuk detail penerapan batasan ketidakpastian clock.

    Panduan Penanganan Jalur Clock Path Arria®10 PLL atau Non-khusus 

    Saat meningkatkan desain ke perangkat lunak Quartus Prime v17.1 atau yang lebih baru, batasan yang ditambahkan sebelumnya perlu direvisi:

    a) jika ketidakpastian clock yang ada hanya berasal dari derive_clock_uncertainty set_clock_uncertainty -add -to -from 0.1

    b) jika ketidakpastian clock yang ada berasal dari derive_clock_uncertainty tambahan "set_clock_uncertainty -add" v17.0: set_clock_uncertainty -add -to -from [expr 0.1] v17.1 atau yang lebih baru: set_clock_uncertainty -add -to -dari

    c) jika derive_clock_uncertainty ditimpa oleh "set_clock_uncertainty" (tanpa -add) - Tidak ada perubahan, perlu menjaga batasan yang ada set_clock_uncertainty -ke -dari [expr 0.1]

     

    Jika PLL hilir yang terpengaruh Arria 10 PHYLite IOPLL, lihat langkah-langkah berikut untuk detail menerapkan batasan ketidakpastian clock.

    Dimulai dengan perangkat lunak Quartus Prime versi 17.0, "Use core PLL reference clock connection" tidak lagi terlihat di editor parameter IP Arria 10 Altera PHYLite. Cara yang disarankan adalah menggunakan pin clock khusus untuk menghubungkannya ke clock referensi PHYLite IOPLL. Jika desain Anda mengharuskan untuk menggunakan fitur ini, baca panduan berikut dengan saksama dan patuhilah.

    Untuk mengaktifkan "Use core PLL reference clock connection" (Perangkat lunak Quartus Prime versi 17.0 dan yang lebih baru), silakan tambahkan INI di bawah ini pada berkas quartus.ini.

    ip_altera_phylite_en_pll_core_ref_ck = aktif

    a2t_allow_cascaded_pll_in_cpa_compensation=aktif

    Saat menghubungkan clock referensi PLL dari output PLL atau pin clock non-khusus, gangguan tambahan akan diperkenalkan.

    Untuk desain yang diimplementasikan dengan Arria 10 Altera PHYLite versi 17.0 dan sebelumnya, gangguan ini dapat dikompensasi dengan menambahkan batasan ketidakpastian clock 100ps pada clock output dari PLL hilir dalam desain.

    Tambahkan batasan berikut untuk ketidakpastian clock pada file SDC yang dihasilkan PHYLite untuk Perangkat Lunak Quartus Prime versi 17.0 dan sebelumnya. Anda harus membuat perubahan berikut setiap kali Anda meregenerasi IP Altera PHYLite.

    1. Menetapkan nilai 100ps ke nama variabel gangguan tambahan.

    atur additional_jitter 0,000

    # Pertama-tama tentukan apakah clock referensi telah dibuat (yaitu berbagi clock referensi)

    jika {$var(PLL_USE_CORE_REF_CLK) == "false"} {

    atur ref_clock_exists [ phy_altera_phylite_arch_nf_171_flagyzi_does_ref_clk_exist $pins(pll_ref_clock)]

    jika { $ref_clock_exists == 0 } {

    # Ini adalah clock referensi yang digunakan oleh PLL untuk mendapatkan clock lain di inti

    create_clock -period $ref_period -waveform [ list 0 $ref_half_period ] $pins(pll_ref_clock) -add -name ${inst}_ref_clock

    }

    } lain {

    atur additional_jitter 0,100

    }

    2. Tambahkan ketidakpastian clock tambahan pada clock FIFO tulis:

    atur i_wf_clock 0

    foreach_in_collection wf_clock $write_fifo_clk_neg {

    set vco_clock_id [phy_altera_phylite_arch_nf_171_flagyzi_get_vco_clk_id $wf_clock var]

    jika {$vco_clock_id == -1} {

    post_message -type critical_warning "Gagal menemukan clock VCO"

    } lain {

    set 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] \

    -name "${inst}_wf_clk_grp_${i_grp_idx}_${i_wf_clock}_neg" \

    -source [get_node_info -name $vco_clock_id] \

    -multiply_by 1 \

    -divide_by [expr $var(PLL_VCO_TO_MEM_CLK_FREQ_RATIO)] \

    -fase 180 ]

    }

    i_wf_clock incr

    }

    batasan #new:

    jika {$additional_jitter != 0} {

    set_clock_uncertainty -to [get_clocks ${inst}_wf_clk_grp_*] -add $additional_jitter

    }

    3. Tambahkan ketidakpastian clock tambahan pada jalur penulisan:

    jika {[llength $write_clocks]>0} {

    # Kami tidak perlu nomor derive_clock_uncertainty karena kami telah menyertakan FLS JITTER di set_output_delay

    set_clock_uncertainty -to [get_clocks $write_clocks] [phy_altera_phylite_arch_nf_170_zul23qq_round_3dp [expr 0,5*($var(WR_SSO) $var(WR_JITTER_SCALED)) $additional_jitter ]]

    }

    4. Tidak ada perubahan pada read_clocks

    jika {[llength $read_clocks]>0} {

    # Kami tidak perlu nomor derive_clock_uncertainty karena kami telah menyertakan FLS JITTER di set_input_delay

    set_clock_uncertainty -to [get_clocks $read_clocks] 0.0

    }

    5. Tambahkan ketidakpastian clock tambahan pada transfer c2p/p2c (phy_clk usr_clock)

    jika {$i_phy_clock > $same_tile_index} {

    # C2P/P2C di mana ubin perifer != tile CPA.

    # Untuk transfer ini, SDC secara khusus menggantikan nilai ketidakpastian clock.

    # Oleh karena itu, ketika melakukan overconstraining kita tidak boleh menggunakan opsi "-add".

    atur add_to_derived ""

    set c2p_su [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 0] [lindex $periphery_clock_uncertainty 0]} additional_jitter]

    set c2p_h [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 1] [lindex $periphery_clock_uncertainty 1]} additional_jitter]

    set p2c_su [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 2] [lindex $periphery_clock_uncertainty 2]} additional_jitter]

    set p2c_h [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 3] [lindex $periphery_clock_uncertainty 3]} additional_jitter]

    } lain {

    # C2P/P2C di mana tile perifer == tile CPA

    # Untuk transfer ini, aman untuk menggunakan opsi -add karena kami mengandalkan

    # derive_clock_uncertainty untuk nilai dasar.

    set add_to_derived "-add"

    set c2p_su [expr [lindex $periphery_overconstraints 0] [lindex $periphery_clock_uncertainty 0] additional_jitter/2]

    set c2p_h [expr [lindex $periphery_overconstraints 1] [lindex $periphery_clock_uncertainty 1] additional_jitter/2]

    set p2c_su [expr [lindex $periphery_overconstraints 2] [lindex $periphery_clock_uncertainty 2] additional_jitter/2]

    set p2c_h [expr [lindex $periphery_overconstraints 3] [lindex $periphery_clock_uncertainty 3] additional_jitter/2]

    }

    6. Tambahkan ketidakpastian clock tambahan dalam transfer inti (clock inti usr_clock/tambahan usr_clock/clock inti tambahan)

    set c2c_same_su [expr [lindex $core_overconstraints 0] [lindex $core_clock_uncertainty 0] additional_jitter]

    set c2c_same_h [expr [lindex $core_overconstraints 1] [lindex $core_clock_uncertainty 1]]

    set c2c_diff_su [expr [lindex $core_overconstraints 2] [lindex $core_clock_uncertainty 2] additional_jitter]

    set c2c_diff_h [expr [lindex $core_overconstraints 3] [lindex $core_clock_uncertainty 3] additional_jitter]

    foreach src_core_clock_local $core_clocks_local {

    jika {$src_core_clock_local != ""} {

    foreach dst_core_clock_local $core_clocks_local {

    jika {$dst_core_clock_local != ""} {

    jika {$src_core_clock_local == $dst_core_clock_local} {

    # Transfer jaringan clock yang sama

    set_clock_uncertainty -dari $src_core_clock_local -ke $dst_core_clock_local -setup -add $c 2c_same_su

    set_clock_uncertainty -dari $src_core_clock_local -to $dst_core_clock_local -hold -enable_same_physical_edge -add $c 2c_same_h

    } lain {

    # Mentransfer antara jaringan clock inti yang berbeda

    set_clock_uncertainty -from $src_core_clock_local -to $dst_core_clock_local -setup -add $c 2c_diff_su

    set_clock_uncertainty -dari $src_core_clock_local -to $dst_core_clock_local -hold -add $c 2c_diff_h

    }

    }

    }

    }

    }

    7. Untuk logika pengguna yang melibatkan user_created_clock dan clock keluaran PHYLite, pengguna perlu menambahkan ketidakpastian clock 100ps tambahan pada jalur transfer clock di file sdc pengguna.

    8. Laporkan SDC dan periksa di laporan SDC Assignments>Set Clock Uncertainty, pastikan tambahan 100ps ditambahkan ke jalur transfer clock yang terpengaruh

    9. Retime atau kompilasi ulang desain dan pastikan penutupan waktu

    10. Lakukan pengujian perangkat keras yang ketat untuk memastikan desain bekerja dengan benar sebelum masuk ke produksi

    Saat meningkatkan desain ke perangkat lunak Quartus Prime v17.1 atau yang lebih baru:

    a) Meluncurkan Alat Peningkatan IP untuk meningkatkan Arria 10 Altera PHYLite IP ke v17.1

    b) File PHYLite SDC yang dihasilkan akan memiliki semua ketidakpastian clock yang diperlukan saat clock referensi PLL inti digunakan.

    c) Ketidakpastian clock 100ps tambahan yang ditambahkan untuk jalur logika pengguna yang melibatkan user_created_clock dan clock keluaran PHYLite sebelumnya harus tetap berada di file sdc pengguna.

    d) Melakukan kompilasi penuh pada desain dan memastikan penutupan waktu.

    Produk Terkait

    Artikel ini berlaku untuk 1 produk

    Intel® Arria® 10 FPGA dan SoC FPGA

    Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.