ID bài viết: 000075415 Loại nội dung: Xử lý sự cố Lần duyệt cuối: 22/08/2017

Tại sao báo cáo lõi PCIe IP Intel Arria 10 bị hạn chế?

Mô tả

Do sự cố trong Quartus® Prime 16.1, có báo cáo đồng hồ không bị hạn chế khi bạn biên dịch các thiết kế Arria® 10 PCIe Hard IP Gen3.

Điều này là do thiếu các ràng buộc trong altera_pcie_express.sdc.

Độ phân giải

Để giải quyết vấn đề này, hãy nâng cấp lên phần mềm phiên bản 17.1 hoặc thêm các lệnh sdc sau vào cuối tệp altera_pcie_express.sdc hiện có.

proc skp_sdc_puts {msg {channelId stdout}} {
đặt "$channelId"altera_pcie_a10_skp.sdc >> $msg"
}

proc parent_of_clock {clock_name {MAX_ATTEMPTS 100}} {
skp_sdc_puts "*
skp_sdc_puts "****** Tìm kiếm hệ thống phân cấp của $clock_name **
skp_sdc_puts "*

nỗ lực set 0
đặt cha mẹ {}

trong khi { $attempts < $MAX_ATTEMPTS } {
skp_sdc_puts "Tìm kiếm đồng hồ khớp với \"$parent$clock_name\"..."

đặt matched_clock_collection [get_clocks -nowarn $parent $clock_name] ;# Hãy thử ký tự đại diện này.
đặt num_matched_clocks [get_collection_size $matched_clock_collection]

nếu { $num_matched_clocks == 1 } { ;# Đây là hệ thống phân cấp mà chúng tôi đang tìm kiếm.
# Tìm hiểu tên đầy đủ của phụ huynh.
đặt cha mẹ [tham gia [lrange [split [query_collection $matched_clock_collection] {|}] 0 {end-1}] {|}]

skp_sdc_puts "Phụ huynh đã tìm thấy : $parent"
skp_sdc_puts "*
skp_sdc_puts "***$parent*
skp_sdc_puts "*

trả lại $parent
} elseif { $num_matched_clocks > 1 } { ;# Nhiều đồng hồ có cùng tên - điều này không nên xảy ra.
skp_sdc_puts "Lỗi: Nhiều đồng hồ khớp với $parent$clock_name " {stderr}
skp_sdc_puts "Lỗi: Đồng hồ phù hợp là:" {stderr}
skp_sdc_puts "Lỗi: [query_collection $matched_clock_collection -report_format]" {stderr}
skp_sdc_puts "*
skp_sdc_puts "***
skp_sdc_puts "*

Trở lại
} khác { ;# Tăng lên một cấp độ hệ thống phân cấp.
phụ huynh phụ thêm {*|}
nỗ lực incr
}
}

skp_sdc_puts "Lỗi: Không thể tìm thấy phụ huynh của $clock_name trong nỗ lực $MAX_ATTEMPTS?"
skp_sdc_puts "*
skp_sdc_puts "***
skp_sdc_puts "*

Trở lại
}


derive_pll_clocks -create_base_clocks;# derive_pll_clocks cần được gọi trước khi gọi cho parent_of_clock
derive_clock_uncertainty;# để tạo ra hệ thống phân cấp thích hợp.


đặt tiền tố [parent_of_clock {tx_serial_clk}]


cho {set i 0} {$i != 8} {incr i} {
create_generated_clock -divide_by 1 \
nguồn "$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_rx_pcs.inst_twentynm_hssi_8g_rx_pcs|byte_deserializer_pcs_clk_div_by_2_txclk_reg" \
-tên "$prefix|rx_pcs_clk_div_by_4[$i]" \
"$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_rx_pcs.inst_twentynm_hssi_8g_rx_pcs|sta_rx_clk2_by2_1" ;# mục tiêu

create_generated_clock -multiply_by 1 -divide_by 1 \
nguồn "$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_tx_pcs.inst_twentynm_hssi_8g_tx_pcs|byte_serializer_pcs_clk_div_by_2_reg" \
-tên "$prefix|tx_pcs_clk_div_by_4[$i]" \
"$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_tx_pcs.inst_twentynm_hssi_8g_tx_pcs|sta_tx_clk2_by2_1" ;# mục tiêu
}

remove_clock "$prefix|tx_bonding_clocks[0]"
create_generated_clock -multiply_by 1 -divide_by 10 \
Nguồn "$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_pll.g_pll_g3n.lcpll_g3xn|lcpll_g3xn|a10_xcvr_atx_pll_inst|twentynm_hssi_pma_cgb_master_inst|clk_fpll_b" \
-master_clock "$prefix|tx_serial_clk" \
-Tên "$prefix|tx_bonding_clocks[0]" \
"$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_pll.g_pll_g3n.lcpll_g3xn|lcpll_g3xn|a10_xcvr_atx_pll_inst|twentynm_hssi_pma_cgb_master_inst|cpulse_out_bus[0]"

set_multicycle_path -setup -through [get_pins -compatibility_mode {*pld_rx_data*}] 0

đặt rx_clkouts [danh sách]
cho {set i 0} {$i != 8} {incr i} {
remove_clock "$prefix|g_xcvr_native_insts[$i]|rx_clk"
remove_clock "$prefix|g_xcvr_native_insts[$i]|rx_clkout"
 
create_generated_clock -multiply_by 1 \
nguồn "$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_rx_pcs.inst_twentynm_hssi_8g_rx_pcs|byte_deserializer_pcs_clk_div_by_4_txclk_reg" \
-master_clock "$prefix|tx_bonding_clocks[0]" \
-tên "$prefix|g_xcvr_native_insts[$i]|rx_clk" \
"$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_rx_pcs.inst_twentynm_hssi_8g_rx_pcs|sta_rx_clk2_by4_1" ;# mục tiêu

create_generated_clock -multiply_by 1 \
nguồn "$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_rx_pcs.inst_twentynm_hssi_8g_rx_pcs|byte_deserializer_pld_clk_div_by_4_txclk_reg" \
-master_clock "$prefix|tx_bonding_clocks[0]" \
-Tên "$prefix|g_xcvr_native_insts[$i]|rx_clkout" \
"$prefix|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts[$i].twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|gen_twentynm_hssi_8g_rx_pcs.inst_twentynm_hssi_8g_rx_pcs|sta_rx_clk2_by4_1_out"

set_clock_groups -exclusive \
-nhóm "$prefix|tx_bonding_clocks[0]" \
-nhóm "$prefix|g_xcvr_native_insts[$i]|rx_clkout"
set_clock_groups -exclusive \
-nhóm "$prefix|tx_bonding_clocks[0]" \
-nhóm "$prefix|rx_pcs_clk_div_by_4[$i]"
}

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

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

Hiện tất cả

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.