典型設(shè)計應(yīng)該不會出現(xiàn)時序違例。多 bank 設(shè)計更容易受此問題影響。
對于多 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 將設(shè)置為使 CLKOUT3 頻率 = CLKIN 頻率)。
在以下示例中,到 PHY_RDEN 的路徑上存在保持時間違例,最差情況下保持時間為 0.076 ns。
您可使用以下 Tcl 命令來計算 CLKOUT3 的相移,以解決此保持時間問題,然后對該路徑進(jìn)行定時:
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 的新相移,以解決此建立時間違例,然后對該路徑進(jìn)行定時:
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 默認(rèn)在 PHY_WREN 路徑上不使用 BLI 寄存器。如果使用該腳本解決保持時間問題導(dǎo)致 PHY_WREN 出現(xiàn)建立時間問題,請為 PHY_WREN 設(shè)置 BLI = TRUE,這樣即可幫助解決此問題。
在 XDC 文件中應(yīng)用下列約束,然后重新運(yùn)行實現(xiàn)。
set_property BLI TRUE [get_cells -hierarchical phy_wren_bli_temp_*]
審核編輯:湯梓紅
-
接口
+關(guān)注
關(guān)注
33文章
8667瀏覽量
151524 -
pll
+關(guān)注
關(guān)注
6文章
780瀏覽量
135223 -
時序
+關(guān)注
關(guān)注
5文章
391瀏覽量
37367 -
Versal
+關(guān)注
關(guān)注
1文章
161瀏覽量
7683
發(fā)布評論請先 登錄
相關(guān)推薦
評論