ID bài viết: 000080391 Loại nội dung: Thông tin sản phẩm & Tài liệu Lần duyệt cuối: 15/11/2017

Làm thế nào để tôi bù đắp cho sự jitter của tầng PLL hoặc đường dẫn đồng hồ không chuyên dụng cho Arria đồng hồ tham chiếu 10 PLL?

Môi Trường

  • Intel® Quartus® Prime Phiên bản Pro
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Mô tả

    Nếu bạn đang kết nối đồng hồ tham chiếu PLL từ đầu ra PLL hoặc chân đồng hồ không chuyên dụng trong thiết kế Arria® 10 của bạn, sẽ được giới thiệu thêm sự jitter. Sự jitter này có thể được bù đắp bằng cách thêm một sự hạn chế không chắc chắn về đồng hồ 100ps tại đồng hồ đầu ra của PLL hạ lưu trong thiết kế.

    Vui lòng tham khảo tài liệu sau để biết chi tiết về việc áp dụng hạn chế không chắc chắn về đồng hồ.

    Hướng dẫn giải quyết Đường dẫn Đồng hồ Arria®10 PLL hoặc Không chuyên dụng 

    Khi nâng cấp thiết kế lên phần mềm Quartus Prime v17.1 trở lên, cần hiệu chỉnh các hạn chế bổ sung trước đó:

    a) nếu sự không chắc chắn về đồng hồ hiện có chỉ xuất phát từ derive_clock_uncertainty set_clock_uncertainty -add -to -từ 0.1

    b) nếu sự không chắc chắn về xung giờ hiện có bắt nguồn từ derive_clock_uncertainty "set_clock_uncertainty -add" v17.0 bổ sung: set_clock_uncertainty -add -to -từ > [expr 0.1] v17.1 trở lên: set_clock_uncertainty -add -to -từ

    c) nếu derive_clock_uncertainty bị ép xung bởi "set_clock_uncertainty" (không -thêm) - Không thay đổi, cần giữ cho sự hạn chế hiện có set_clock_uncertainty -sang -từ [expr 0.1]

     

    Nếu PLL hạ lưu bị ảnh hưởng Arria IOPLL 10 PHYLite, hãy tham khảo các bước sau để biết chi tiết về việc áp dụng hạn chế không chắc chắn về đồng hồ.

    Bắt đầu với phần mềm Quartus Prime phiên bản 17.0, kết nối xung thông tham chiếu PLL lõi Sử dụng" không còn hiển thị trong trình chỉnh sửa tham số IP Arria 10 Altera PHYLite. Cách khuyến nghị là sử dụng chân đồng hồ chuyên dụng để kết nối nó với đồng hồ tham chiếu PHYLite IOPLL. Nếu thiết kế của bạn cần sử dụng tính năng này, vui lòng đọc cẩn thận các hướng dẫn sau đây và tuân thủ chúng.

    Để cho phép kết nối đồng hồ tham chiếu PLL lõi" (phần mềm Quartus Prime phiên bản 17.0 trở lên), vui lòng thêm INI bên dưới trong tệp quartus.ini.

    ip_altera_phylite_en_pll_core_ref_ck = bật

    a2t_allow_cascaded_pll_in_cpa_compensation=on

    Khi kết nối đồng hồ tham chiếu PLL từ đầu ra PLL hoặc chân đồng hồ không chuyên dụng, sẽ được giới thiệu thêm sự jitter.

    Đối với thiết kế được thực hiện với Arria 10 Altera PHYLite phiên bản 17.0 và trước đó, sự jitter này có thể được bù đắp bằng cách thêm sự không chắc chắn về đồng hồ 100ps tại đồng hồ đầu ra của PLL hạ nguồn trong thiết kế.

    Thêm các ràng buộc sau đây cho sự không chắc chắn về đồng hồ trong tệp SDC do PHYLite tạo ra cho Phần mềm Quartus Prime phiên bản 17.0 trở lên. Bạn sẽ cần thực hiện các thay đổi sau mỗi khi bạn hồi Altera IP PHYLite.

    1. Gán giá trị 100ps cho tên thay đổi thêm jitter.

    đặt additional_jitter 0,000

    # Đầu tiên xác định xem đồng hồ tham chiếu đã được tạo hay chưa (ví dụ: Chia sẻ đồng hồ tham chiếu)

    nếu {$var(PLL_USE_CORE_REF_CLK) == "false"} {

    đặt ref_clock_exists [ phy_altera_phylite_arch_nf_171_flagyzi_does_ref_clk_exist $pins(pll_ref_clock)]

    nếu { $ref_clock_exists == 0 } {

    # Đây là đồng hồ tham chiếu được PLL sử dụng để dẫn xuất bất kỳ đồng hồ nào khác trong lõi

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

    }

    } khác {

    đặt additional_jitter 0,100

    }

    2. Thêm sự không chắc chắn về xung nhịp bổ sung trên xung nhịp FIFO ghi:

    đặt i_wf_clock 0

    foreach_in_collection wf_clock $write_fifo_clk_neg {

    đặt vco_clock_id [phy_altera_phylite_arch_nf_171_flagyzi_get_vco_clk_id $wf_clock var]

    nếu {$vco_clock_id == -1} {

    post_message -type critical_warning "Không tìm thấy đồng hồ VCO"

    } khác {

    đặt 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] \

    -tên "${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)] \

    -pha 180 ]

    }

    incr i_wf_clock

    }

    #new hạn:

    nếu {$additional_jitter != 0} {

    set_clock_uncertainty -to [get_clocks ${inst}_wf_clk_grp_*] -thêm $additional_jitter

    }

    3. Thêm sự không chắc chắn về đồng hồ bổ sung trên đường dẫn ghi:

    nếu {[llength $write_clocks]>0} {

    # Chúng tôi không cần số hiệu derive_clock_uncertainty vì chúng tôi đã đưa FLS JITTER vào 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. Không có thay đổi trên bảng read_clocks

    nếu {[llength $read_clocks]>0} {

    # Chúng tôi không cần số hiệu derive_clock_uncertainty vì chúng tôi đã đưa FLS JITTER vào set_input_delay

    set_clock_uncertainty -to [get_clocks $read_clocks] 0.0

    }

    5. Thêm sự không chắc chắn về xung giờ bổ sung trên truyền c2p/p2c (phy_clk usr_clock)

    nếu {$i_phy_clock > $same_tile_index} {

    # C2P/P2C trong đó ô peritile != CPA.

    # Đối với những lần truyền tải này, SDC loại trừ dứt khoát các giá trị không chắc chắn của đồng hồ.

    # Do đó, khi vượt quá giới hạn, chúng tôi không được sử dụng tùy chọn "-add".

    đặt add_to_derived ""

    đặt c2p_su [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 0] [lindex $periphery_clock_uncertainty 0]} additional_jitter]

    đặt c2p_h [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 1] [lindex $periphery_clock_uncertainty 1]} additional_jitter]

    đặt p2c_su [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 2] [lindex $periphery_clock_uncertainty 2]} additional_jitter]

    đặt p2c_h [expr {$p 2c_c2p_multi_tile_clock_uncertainty [lindex $periphery_overconstraints 3] [lindex $periphery_clock_uncertainty 3]} additional_jitter]

    } khác {

    # C2P/P2C trong đó ô peritile == CPA

    # Đối với các chuyển giao này, bạn nên sử dụng tùy chọn -add vì chúng tôi tin tưởng

    # derive_clock_uncertainty giá trị cơ bản.

    đặt add_to_derived "-add"

    đặt c2p_su [expr [lindex $periphery_overconstraints 0] [lindex $periphery_clock_uncertainty 0] additional_jitter/2]

    đặt c2p_h [expr [lindex $periphery_overconstraints 1] [lindex $periphery_clock_uncertainty 1] additional_jitter/2]

    đặt p2c_su [expr [lindex $periphery_overconstraints 2] [lindex $periphery_clock_uncertainty 2] additional_jitter/2]

    đặt p2c_h [expr [lindex $periphery_overconstraints 3] [lindex $periphery_clock_uncertainty 3] additional_jitter/2]

    }

    6. Thêm sự không chắc chắn về xung giờ bổ sung trong quá trình truyền lõi (usr_clock/xung lõi bổ sung usr_clock/xung lõi bổ sung)

    đặt c2c_same_su [expr [lindex $core_overconstraints 0] [lindex $core_clock_uncertainty 0] additional_jitter]

    đặt c2c_same_h [expr [lindex $core_overconstraints 1] [lindex $core_clock_uncertainty 1]]

    đặt c2c_diff_su [expr [lindex $core_overconstraints 2] [lindex $core_clock_uncertainty 2] additional_jitter]

    đặt c2c_diff_h [expr [lindex $core_overconstraints 3] [lindex $core_clock_uncertainty 3] additional_jitter]

    foreach src_core_clock_local $core_clocks_local {

    nếu {$src_core_clock_local != ""} {

    foreach dst_core_clock_local $core_clocks_local {

    nếu {$dst_core_clock_local != ""} {

    nếu {$src_core_clock_local == $dst_core_clock_local} {

    # Truyền mạng đồng hồ đồng hồ

    set_clock_uncertainty -từ $src_core_clock_local -to $dst_core_clock_local -setup -add $c 2c_same_su

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

    } khác {

    # Truyền giữa các mạng đồng hồ lõi khác nhau

    set_clock_uncertainty -từ $src_core_clock_local -to $dst_core_clock_local -setup -add $c 2c_diff_su

    set_clock_uncertainty -từ $src_core_clock_local -to $dst_core_clock_local -hold -add $c 2c_diff_h

    }

    }

    }

    }

    }

    7. Đối với logic người dùng liên quan đến user_created_clock và đồng hồ đầu ra PHYLite, người dùng sẽ cần thêm sự không chắc chắn về đồng hồ 100ps bổ sung trên đường dẫn truyền đồng hồ đó trong tệp sdc của người dùng.

    8. Báo cáo SDC và kiểm tra trong báo cáo Không chắc chắn về thời gian gán SDC>Set Clock, đảm bảo thêm 100ps được thêm vào đường dẫn truyền đồng hồ bị ảnh hưởng

    9. Thời gian phục hồi hoặc biên dịch lại thiết kế và đảm bảo thời gian kết thúc

    10. Thực hiện kiểm tra phần cứng nghiêm ngặt để đảm bảo thiết kế hoạt động đúng trước khi đi vào sản xuất

    Khi nâng cấp thiết kế lên phần mềm Quartus Prime v17.1 trở lên:

    a) Khởi chạy Công cụ nâng cấp IP để nâng Arria ip PHYLite Altera 10 lên v17.1

    b) Tệp PHYLite SDC được tạo ra sẽ có tất cả sự không chắc chắn về xung nhịp cần thiết được thêm vào khi sử dụng xung nhịp tham chiếu PLL lõi.

    c) Sự không chắc chắn về xung lượng 100ps bổ sung được thêm vào cho đường dẫn logic người dùng liên quan đến đồng hồ đầu ra user_created_clock và PHYLite trước đây sẽ yêu cầu duy trì trong tệp sdc của người dùng.

    d) Thực hiện tổng hợp đầy đủ trên thiết kế và đảm bảo thời gian đóng.

    Các sản phẩm liên quan

    Bài viết này áp dụng cho 1 sản phẩm

    FPGA Intel® Arria® 10 và FPGA SoC

    Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.