UltraScale/UltraScale+芯片開始支持BUFG_*、PLL和MMCM出現在動態區,在7系列FPGA中這些時鐘資源只能在靜態區。當這些時鐘資源出現在動態區時應遵循如下規則:
動態區的Pblock
動態區的Pblock形狀最好是標準的矩形。如果這個Pblock是由多個矩形共同構成,那么最高的那個矩形應和時鐘區域邊界對齊。避免出現U形或H形Pblock。U形Pblock如下圖所示。這會增大布線難度。
類似地,在動態區中間出現小的靜態區,如下圖所示,I/O列位于動態區Pblock夾縫中,這是允許的,但仍然要盡量避免,因為在角落處容易出現布線擁塞。
如下圖所示的這種樓梯形狀的Pblock也要避免,同樣會在拐角處導致布線擁塞。
還需要注意的是同一個時鐘區域只可以存在一個RP對應的Pblock,換言之,不支持時鐘區域被多個RP共享,即使Pblock并未發生重疊。
CLOCK_ROOT
當Pblock是由多個矩形構成時,工具會自動將RM內時鐘的CLOCK_ROOT放置在最高的矩形對應的Pblock所在的時鐘區域內。
但是,如果用戶通過屬性USER_CLOCK_ROOT提前約束了該時鐘的CLOCK_ROOT,工具就會遵循這個約束值。
這就可能出現USER_CLOCK_ROOT的值不合理的情形即不是最高矩形Pblock所在的時鐘區域內,這就很容易導致布線失敗。
如下圖所示,如果USER_CLOCK_ROOT的值為X2Y2,對應Pblock左上角的時鐘區域,那么時鐘布線是無法到達Pblock
右下角即X3Y1時鐘區域的。相反,如果USER_CLOCK_ROOT設定為X3Y1或X3Y2,那么就不會出現布線失敗的問題。
當動態區的時鐘是由BUFG_GT驅動(顯然BUFG_GT的輸入來自于高速收發器的輸出)時,需要注意BUFG_GT驅動的時鐘要求其CLOCK_ROOT和BUFG_GT在同一個時鐘區域內。
如果該時鐘區域不是最高的Pblock對應的時鐘區域,同樣會出現布線失敗。
這時解決方案是:復制BUFG_GT,一個和GT連接給GT邏輯用,一個給用戶邏輯用,這樣每個時鐘就可以單獨設置自己的CLOCK_ROOT。
全局時鐘使用規則
如果時鐘源在RM(RP1)內,那么該時鐘既可以驅動靜態區的邏輯,也可以驅動其他RM(RP2)內的邏輯。
但需要注意:因為時鐘源是在RP1對應的RM內,因此RP1下的所有RM時鐘拓撲結構必須保持一致,即如果RP1/RM1使用的是MMCM+BUFGCE的結構,那么RP1/RM2也必須使用此結構,這樣時鐘走線才能保持一致。但可以允許RP1/RM1和RP1/RM2內MMCM的參數不同,以支持不同的輸出頻率。
因為時鐘源在動態區,如果動態區產生的時鐘要驅動靜態區的邏輯,那么對該時鐘也要做隔離。常規信號可采用2:1的MUX進行隔離,但對于高扇出的時鐘信號是不能采用此隔離方案的。這時可使用BUFGMUX,或者在重配置時將靜態區的邏輯置于復位狀態。
審核編輯:劉清
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603385 -
收發器
+關注
關注
10文章
3428瀏覽量
106002 -
DFx
+關注
關注
0文章
35瀏覽量
10547 -
時鐘源
+關注
關注
0文章
93瀏覽量
15965 -
時鐘信號
+關注
關注
4文章
448瀏覽量
28568
原文標題:針對UltraScale/UltraScale+芯片DFX應考慮的因素有哪些(2)
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論