Artikel-ID: 000075352 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 10.10.2017

Warum sehe ich Verletzungen des Setup-Timings in meinem Arria 10 SerialLite 3 Streaming-Design?

Umgebung

  • Intel® Quartus® Prime Pro Edition
  • Serieller Lite III Streaming Intel® Arria® 10 FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    Aufgrund eines Problems in den Quartus Prime® Software-Versionen 16.1.2 und früher könnte Ihr Arria® 10 SerialLite™ III Kern in den Pfaden zwischen "pld_10g_tx_pempty_reg Knoten" und "altera standard synchronizer stdsync_txpempty|din_s1" des unten gezeigten Typs Verletzungen des Setup-Timings aufweisen:

    Von Knoten: seriallite_iii_streaming:seriallite_iii_streaming_inst|seriallite_iii_streaming_seriallite_iii_a10_161_jvvqjaa:seriallite_iii_streaming|interlaken_native_wrapper_duplex_seriallite_iii_streaming_seriallite_iii_a10_161_zgsou7q:A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|seriallite_iii_streaming_seriallite_iii_a10_161_zgsou7q:DUPLEX_WRAPPER.interlaken_inst|seriallite_iii_streaming_altera_xcvr_native_a10_161_koe2tsa: native_ilk_wrapper|twentynm_xcvr_native:g_xcvr_native_insts[5].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm5es:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm5es:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs.inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg
    Zu Knoten: seriallite_iii_streaming:seriallite_iii_streaming_inst|seriallite_iii_streaming_seriallite_iii_a10_161_jvvqjaa:seriallite_iii_streaming|interlaken_native_wrapper_duplex_seriallite_iii_streaming_seriallite_iii_a10_161_zgsou7q:A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[5].stdsync_txpempty|din_s1
    Startuhr: seriallite_iii_streaming_inst|seriallite_iii_streaming|g_xcvr_native_insts[*]|tx_pma_clk
    Verriegelungentakt: seriallite_iii_streaming_inst|seriallite_iii_streaming|g_xcvr_native_insts[0]|tx_pma_clk

     

    Lösung

    Um dieses Problem zu umgehen, muss der Benutzer die generierte ip.sdc-Datei (seriallite_iii_streaming*.sdc) ändern.

    Die ursprünglichen .sdc-Koninten finden Sie unten:

    set_max_skew -von [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pcs|inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] -zu [get_keepers {*$module_name*|interlaken_native_wrapper_duplex|stdsync_txpempty|din_s1}] -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0,85

     

    set_net_delay -von [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native:g_xcvr_native_insts[*].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs.inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] -zu [get_keepers {*$module_name*|interlaken_native_wrapper_duplex_*: A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[*].stdsync_txpempty|din_s1}] -max. -get_value_from_clock_period dst_clock_period -value_multiplier 0,85

     

    set_max_delay -von [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native:g_xcvr_native_insts[*].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs.inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] -zu [get_keepers {*$module_name*|interlaken_native_wrapper_duplex_*: A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[*].stdsync_txpempty|din_s1}] 100

    set_min_delay -von [get_keepers {*$module_name*|*interlaken_native_wrapper_duplex|*|twentynm_xcvr_native:g_xcvr_native_insts[*].twentynm_xcvr_native_inst|twentynm_xcvr_native_rev_20nm4:twentynm_xcvr_native_inst|twentynm_pcs_rev_20nm4:inst_twentynm_pcs|gen_twentynm_hssi_10g_tx_pcs.inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg}] -zu [get_keepers {*$module_name*|interlaken_native_wrapper_duplex_*: A10_ILK_PHY_DPLX.interlaken_native_wrapper_duplex|altera_std_synchronizer_nocut:pcs_lanes[*].stdsync_txpempty|din_s1}] -100

     

    Sollte durch die folgenden Geräte ersetzt werden:

     

    inst_xcvr_list festlegen [get_entity_instances twentynm_xcvr_native]

     

    foreach each_xcvr_inst \$inst_xcvr_list {

    if { [string equal "quartus_sta" \$::TimeQuestInfo(nameofstackutable)] } {

    set_max_skew -von [get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] -zu [get_keepers {*stdsync_txpempty|din_s1}] -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0,85

    }

    set_net_delay -von [get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] -zu [get_keepers {*stdsync_txpempty|din_s1}] -max. -get_value_from_clock_period dst_clock_period -value_multiplier 0,85

     

    set_max_delay -von [get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] -zu [get_keepers {*stdsync_txpempty|din_s1}] 100

    set_min_delay -von [get_keepers \$each_xcvr_inst*|*inst_twentynm_hssi_10g_tx_pcs~pld_10g_tx_pempty_reg.reg] -zu [get_keepers {*stdsync_txpempty|din_s1}] -100

    }

     

    Dieses Problem wurde ab Softwareversion 17.0 der Quartus Prime® Software behoben.

     

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 2 Produkte

    Intel® Arria® 10 FPGAs und SoC FPGAs
    Intel® programmierbare Geräte

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.