ID Artikel: 000075415 Jenis Konten: Pemecahan Masalah Terakhir Ditinjau: 22/08/2017

Mengapa Intel Arria 10 laporan inti PCIe clock tidak dibatasi?

Lingkungan

  • Intel® Quartus® Prime Edisi Pro
  • Intel® Arria® 10 Cyclone® 10 Hard IP untuk PCI Express*
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Deskripsi

    Karena masalah di Quartus® Prime 16.1, ada clock yang tidak dibatasi yang dilaporkan ketika Anda mengompulasikan Arria® 10 desain PCIe Hard IP Gen3.

    Hal ini disebabkan oleh hilangnya kontainer di altera_pcie_express.sdc.

    Resolusi

    Untuk mengatasi masalah ini, tingkatkan ke perangkat lunak versi 17.1 atau tambahkan perintah sdc berikut ke akhir file altera_pcie_express.sdc yang ada.

    proc skp_sdc_puts {msg {channelId stdout}} {
    menempatkan ">> $msg altera_pcie_a10_skp.sdc" $channelId
    }

    proc parent_of_clock {clock_name {MAX_ATTEMPTS 100}} {
    skp_sdc_puts "***********************
    skp_sdc_puts "************************** Mencari hierarki $clock_name ***************** "
    skp_sdc_puts "***********************

    atur percobaan 0
    set induk {}

    sementara { $attempts < $MAX_ATTEMPTS } {
    skp_sdc_puts "Mencari clock yang cocok dengan \"$parent$clock_name\"..."

    set matched_clock_collection [get_clocks -nowarn $parent$clock_name] ;# Coba wildcard ini.
    set num_matched_clocks [get_collection_size $matched_clock_collection]

    jika { $num_matched_clocks == 1 } { ;# Ini adalah hierarki yang kami cari.
    # Cari tahu nama lengkap orang tua.
    set parent [join [lrange [split [query_collection $matched_clock_collection] {|}] 0 {end-1}] {|}]

    skp_sdc_puts "Orang tua ditemukan : $parent"
    skp_sdc_puts "***********************
    skp_sdc_puts "************************** Selesaikan pencarian dengan hasil : $parent*******"
    skp_sdc_puts "***********************

    $parent pengembalian
    } elseif { $num_matched_clocks > 1 } {;# Multi clock dengan nama yang sama - hal ini tidak boleh terjadi.
    skp_sdc_puts "Galat: Beberapa clock cocok $parent$clock_name!" {stderr}
    skp_sdc_puts "Galat: Clock yang cocok adalah:" {stderr}
    skp_sdc_puts "Error: [query_collection $matched_clock_collection -report_format]" {stderr}
    skp_sdc_puts "***********************
    skp_sdc_puts "*************************** Selesaikan pencarian dengan galat *************
    skp_sdc_puts "***********************

    Kembali
    } di lain { ;# Naik satu tingkat hierarki.
    tambahkan orang tua {*|}
    upaya incr
    }
    }

    skp_sdc_puts "Error: Tidak dapat menemukan induk dari $clock_name dalam upaya $MAX_ATTEMPTS!"
    skp_sdc_puts "***********************
    skp_sdc_puts "*************************** Selesaikan pencarian dengan galat *************
    skp_sdc_puts "***********************

    Kembali
    }


    derive_pll_clocks -create_base_clocks;# derive_pll_clocks perlu dipanggil sebelum menghubungi parent_of_clock
    derive_clock_uncertainty;# untuk menghasilkan hierarki yang tepat.


    atur awalan [parent_of_clock {tx_serial_clk}]


    untuk {set i 0} {$i != 8} {incr i} {
    create_generated_clock -divide_by 1 \
    -source "$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" \
    -name "$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" ;# target

    create_generated_clock -multiply_by 1 -divide_by 1 \
    -source "$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" \
    -name "$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" ;# target
    }

    remove_clock "$prefix|tx_bonding_clocks[0]"
    create_generated_clock -multiply_by 1 -divide_by 10 \
    -source "$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" \
    -nama "$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

    set rx_clkouts [daftar]
    untuk {set i 0} {$i != 8} {incr i} {
    "|rx_clk "$prefix|g_xcvr_native_insts[$i]|rx_clk" remove_clock
    remove_clock "$prefix|g_xcvr_native_insts[$i]|rx_clkout"
     
    create_generated_clock -multiply_by 1 \
    -source "$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]" \
    -name "$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" ;# target

    create_generated_clock -multiply_by 1 \
    -source "$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]" \
    -name "$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 - eksklusif \
    -group "$prefix|tx_bonding_clocks[0]" \
    -group "$prefix|g_xcvr_native_insts[$i]|rx_clkout"
    set_clock_groups - eksklusif \
    -group "$prefix|tx_bonding_clocks[0]" \
    -group "$prefix|rx_pcs_clk_div_by_4[$i]"
    }

    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.