如果您已經(jīng)在使用全新速度文件運(yùn)行時(shí)序,而且 OSERDES CLK 和 CLKDIV 或者 IDDR CLK 和 CLK_B 之間有歪斜違規(guī),接下來(lái)幫助解決歪斜違規(guī)問(wèn)題的步驟已在本答復(fù)記錄中歸檔。
提供幾個(gè)解決方案:
推薦的解決方案:將您的項(xiàng)目遷移至 Vivado 2016.4,將時(shí)鐘拓?fù)涓轮帘敬饛?fù)記錄所描述的推薦拓?fù)洳⑦\(yùn)行正常綜合及實(shí)現(xiàn)流程。
Vivado 2016.4 可在時(shí)序分析中自動(dòng)報(bào)告 OSERDES 和 IDDR 的歪斜檢查情況。
第二種解決方案:更新時(shí)鐘拓?fù)浜鬄槟捻?xiàng)目繼續(xù)使用較早的 Vivado 版本,包括運(yùn)行綜合及實(shí)現(xiàn)方案。 使用本答復(fù)記錄附帶的 Tcl 腳本 (reportIOSERDES.tcl) 報(bào)告有關(guān) OSERDES 及 IDDR 的歪斜檢查。 使用 Vivado 2016.4 在已布線的 DCP 上運(yùn)行時(shí)序簽收 (report_timing_summary),并修復(fù)剩余的歪斜違規(guī)問(wèn)題(查看(68266))。
第三種解決方案:升級(jí)時(shí)鐘拓?fù)浜?,繼續(xù)使用帶有相應(yīng)速度文件補(bǔ)丁的較早 Vivado 版本(僅限于某些 Vivado 版本,按需提供),包括運(yùn)行綜合及實(shí)現(xiàn)方案。 使用本答復(fù)記錄附帶的 Tcl 腳本 (reportIOSERDES.tcl) 報(bào)告有關(guān) OSERDES 及 IDDR 的歪斜檢查。
OSERDES CLK 至 CLKDIV 歪斜
OSERDESE3 的最佳時(shí)鐘拓?fù)淙缦聢D所示。
MMCME3 的 CLKOUT 應(yīng)并行驅(qū)動(dòng)兩個(gè) BUFGCE_DIV,這可使用一個(gè) BUFGCE_DIV 的分頻功能創(chuàng)建較慢的 CLKDIV。
注意,也不一定就需要驅(qū)動(dòng)高速時(shí)鐘 (CLK) 的全局緩沖器為 BUFGCE_DIV 單元。如果缺乏 BUFGCE_DIV,它也可以是 BUFGCE。
使用 MMCME3 的多組輸出創(chuàng)建 CLK 和 CLKDIV 時(shí),請(qǐng)查看確保符合歪斜要求。
圖:推薦的時(shí)鐘拓?fù)?/strong>
請(qǐng)注意:因?yàn)?BUFGCE_DIV 正在使用被下分頻的較高頻率時(shí)鐘。
因此,架構(gòu)邏輯必須使用圖(支持 BUFGCE_DIV 的架構(gòu)時(shí)鐘)中所示的 BUFGCE_DIV 驅(qū)動(dòng)。
圖:支持 BUFGCE_DIV 的架構(gòu)時(shí)鐘
如圖所示:BUFGCE_DIV 對(duì)齊,BUFGCE_DIVIDE = 2 或者 4 個(gè)計(jì)數(shù)器可以在不同的時(shí)間啟動(dòng)。
CLK_DIV2 A 和 CLK_DIV2 B 進(jìn)行 2 分頻時(shí)出現(xiàn)了兩個(gè)對(duì)齊。同樣,進(jìn)行 4 分頻時(shí),CLK_DIV4 A/B/C/D 出現(xiàn)了 4 個(gè)可能的對(duì)齊。
計(jì)數(shù)器可通過(guò)使用 CLR 和 CE 輸入與既定的時(shí)鐘邊緣對(duì)齊。
圖:BUFGCE_DIV 對(duì)齊
此外,如果您需要 MMCM 輸出為相位對(duì)齊(就是 CLKOUTx_PHASE)而且無(wú)法應(yīng)用 correctcontrols 控制圖(BUFGCE_DIV 對(duì)齊)的時(shí)序,您可以使用 aseparate BUFG 時(shí)鐘緩沖器進(jìn)行架構(gòu)連接。
在支持 MMCM 時(shí)鐘輸出的架構(gòu)時(shí)鐘使用 3 個(gè) MMCM 輸出的圖中。CLKOUT0 可驅(qū)動(dòng)架構(gòu)邏輯(另外一個(gè) MMCM CLKOUT1)來(lái)驅(qū)動(dòng) OSERDES CLKDIV 并驅(qū)動(dòng)另外一個(gè) MMCM CLKOUT2 來(lái)驅(qū)動(dòng) OSERDES CLK。
OSERDES 的 CLK 及 CLKDIV 端口由只連接至 ERDES 的 BUFG 驅(qū)動(dòng),將具有類似的加載/布線。此外,只要布線終點(diǎn)類似,CLKOUT1 和 CLKOUT2 也可用于其它組件原語(yǔ)(ISERDES、IDELAY、ODELAY、IDELAYCTRL)。
圖:支持 MMCM 時(shí)鐘輸出的架構(gòu)時(shí)鐘
在 支持 MMCM 時(shí)鐘輸出的架構(gòu)時(shí)鐘圖中, 時(shí)鐘輸出分頻設(shè)置將是 DATA_WIDTH 的比率,這樣:
CLKOUT0_DIVIDE_F = CLKOUT2_DIVIDE * DATA_WIDTH / 2
CLKOUT1_DIVIDE = CLKOUT2_DIVIDE * DATA_WIDTH / 2
輸出來(lái)自 MMCM,因此實(shí)現(xiàn)既定相移時(shí),MMCM 只會(huì)鎖死,在這種情況下可以由 CLKOUT__PHASE 定義。
CLOCK_DELAY_GROUP
如果設(shè)計(jì)仍然無(wú)法滿足要求,下一步就得嘗試減少 CLK 與 CLKDIV 引腳之間的歪斜,將一個(gè) CLOCK_DELAY_GROUP 分配給網(wǎng)絡(luò)。
這可讓 Vivado 實(shí)現(xiàn)工具平衡兩個(gè)時(shí)鐘網(wǎng)絡(luò)。下面是 CLOCK_DELAY_GROUP 的一個(gè)示例:
set_property CLOCK_DELAY_GROUP SERDES_X2Y2 [get_nets of [get_pins BUFGCE_DIV_clk_inst/O]]
set_property CLOCK_DELAY_GROUP SERDES_X2Y2 [get_nets of [get_pins BUFGCE_DIV_clkdiv_inst/O]]
USER_CLOCK_ROOT
除了 CLOCK_DELAY_GROUP 屬性外,您還可使用 USER_CLOCK_ROOT 屬性強(qiáng)制對(duì)時(shí)鐘緩沖器驅(qū)動(dòng)的時(shí)鐘進(jìn)行時(shí)鐘根定位。查看以下 USER_CLOCK_ROOT 示例:
set_property USER_CLOCK_ROOT X2Y3 [get_nets of [get_pins BUFGCE_DIV_clk_inst/O]]
set_property USER_CLOCK_ROOT X2Y3 [get_nets of [get_pins BUFGCE_DIV_clkdiv_inst/O]]
ISERDES CLK 至 CLKDIV 歪斜:
對(duì) ISERDES CLK 和 CLKDIV 沒(méi)有歪斜要求,但就 OSERDES 而言,所推薦的時(shí)鐘拓?fù)鋵⑹窍嗤摹?/p>
使用一個(gè)并列驅(qū)動(dòng)兩個(gè) BUFGCE_DIV 的 MMCM CLKOUT,這可使用一個(gè) BUFGCE_DIV 的分頻功能創(chuàng)建更慢的 CLKDIV。
IDDRE1 C 至 CB 以及 ISERDES CLK 至 CLK_B 歪斜
IDDR(和 ISERDES)CLK 和 CLK_B 的最佳時(shí)鐘拓?fù)渚褪鞘褂孟嗤木W(wǎng)絡(luò)驅(qū)動(dòng)兩個(gè)引腳并使用局部求逆創(chuàng)建反相時(shí)鐘。查看下圖示例。
查看(68331),了解有關(guān) Vivado 時(shí)序歪斜檢查的詳細(xì)信息,解決有關(guān)專屬時(shí)鐘組約束的歪斜檢查問(wèn)題。
審核編輯:湯梓紅
-
緩沖器
+關(guān)注
關(guān)注
6文章
1924瀏覽量
45553 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2259瀏覽量
94802 -
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1740瀏覽量
131625 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66703
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論