典型設計應該不會出現(xiàn)時序違例。多 bank 設計更容易受此問題影響。
對于多 bank 接口配置,如果單個 bank 同時具有 RX 和 TX,并且其中序列化因子不同,或者如果在“Advanced”選項卡上使用了 enable_all_ports,則可能發(fā)生此問題。
在 2021.1 版的 Advanced IO Wizard 中為 PLL 提供了經(jīng)過更新的去歪斜電路,此更新可解決大部分時序違例。
如果仍發(fā)生違例,請考慮手動調(diào)整時鐘的 PHASE 屬性,直至解決違例為止。
XPLL 的 CLKIN_DESKEW 連接到 XPLL 的 CLKOUT3(XPLL 將設置為使 CLKOUT3 頻率 = CLKIN 頻率)。

在以下示例中,到 PHY_RDEN 的路徑上存在保持時間違例,最差情況下保持時間為 0.076 ns。

您可使用以下 Tcl 命令來計算 CLKOUT3 的相移,以解決此保持時間問題,然后對該路徑進行定時:
set XPLL [get_cells >]
set THSviolation 0.076
set existingPhaseShift [get_property CLKOUT3_PHASE $XPLL]
set clkout3_divide [get_property CLKOUT3_DIVIDE $XPLL]
set c_stepsize [expr 45.0/$clkout3_divide]
set phaseAdjust [expr {$THSviolation / [get_property PERIOD [get_clocks -of [get_pins -of $XPLL -filter REF_PIN_NAME=~CLKOUT3]]] * 360}]
set updatedPhaseShift [expr {$existingPhaseShift + $phaseAdjust}]
set c_phase_rounded [format %.3f [expr $c_stepsize * round($updatedPhaseShift/$c_stepsize)]]
set c_phase_rounded_margin [format %.3f [expr $c_phase_rounded + $c_stepsize]]
set_property CLKOUT3_PHASE $c_phase_rounded_margin $XPLL
report_timing -from [get_pins {design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/phy_rden_int_bli_reg[*]/C}] -to [get_pins design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/BANK_WRAPPER_INST0/NIBBLE[1].UNISIM.I_XPHY/PHY_RDEN[*]]
同樣,您也可使用以下 Tcl 命令來計算 CLKOUT3 的新相移,以解決此建立時間違例,然后對該路徑進行定時:
set XPLL [get_cells >]
set WNSviolation 0.076
set existingPhaseShift [get_property CLKOUT3_PHASE $XPLL]
set clkout3_divide [get_property CLKOUT3_DIVIDE $XPLL]
set c_stepsize [expr 45.0/$clkout3_divide]
set phaseAdjust [expr {$WNSviolation / [get_property PERIOD [get_clocks -of [get_pins -of $XPLL -filter REF_PIN_NAME=~CLKOUT3]]] * 360}]
set updatedPhaseShift [expr {$existingPhaseShift - $phaseAdjust}]
set c_phase_rounded [format %.3f [expr $c_stepsize * round($updatedPhaseShift/$c_stepsize)]]
set c_phase_rounded_margin [format %.3f [expr $c_phase_rounded - $c_stepsize]]
set_property CLKOUT3_PHASE $c_phase_rounded_margin $XPLL
report_timing -from [get_pins {design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/phy_rden_int_bli_reg[*]/C}] -to [get_pins design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/BANK_WRAPPER_INST0/NIBBLE[1].UNISIM.I_XPHY/PHY_RDEN[*]]
如果 Advanced IO Wizard 有多個實例(如有其它 IP 使用此 Wizard,例如 SGMII,那也計算在內(nèi)),那么在某些情況下,此 Tcl 腳本可以解決 PHY_RDEN 上的保持時間問題,但會在 PHY_WREN 路徑上引發(fā)建立時間問題。
2022.2 版及更低版本的 Advanced IO Wizard 默認在 PHY_WREN 路徑上不使用 BLI 寄存器。如果使用該腳本解決保持時間問題導致 PHY_WREN 出現(xiàn)建立時間問題,請為 PHY_WREN 設置 BLI = TRUE,這樣即可幫助解決此問題。
在 XDC 文件中應用下列約束,然后重新運行實現(xiàn)。
set_property BLI TRUE [get_cells -hierarchical phy_wren_bli_temp_*]
審核編輯:湯梓紅
-
接口
+關(guān)注
關(guān)注
33文章
9306瀏覽量
155663 -
pll
+關(guān)注
關(guān)注
6文章
970瀏覽量
137350 -
時序
+關(guān)注
關(guān)注
5文章
401瀏覽量
38549 -
Versal
+關(guān)注
關(guān)注
1文章
172瀏覽量
8310
發(fā)布評論請先 登錄
AMD Versal Adaptive SoC Clock Wizard AXI DRP示例
一文詳解Advanced IO wizard異步模式
進行RTL代碼設計需要考慮時序收斂的問題
UltraFast設計方法時序收斂快捷參考指南
FPGA的IO口時序約束分析
FPGA時序收斂學習報告
基于MCMM技術(shù)IC時序收斂的快速實現(xiàn)
FPGA中IO口的時序分析詳細說明
從已布線設計中提取模塊用于評估時序收斂就緒狀態(tài)
AMD Versal自適應SoC器件Advanced Flow概覽(上)
AMD Versal自適應SoC器件Advanced Flow概覽(下)

Versal Advanced IO Wizard-部分配置存在時序收斂問題
評論