避免RP和RP之間的直接路徑
假定設計中存在兩個RP,分別為RP1和RP2,那么就要避免出現(xiàn)RP1輸出直接連接到RP2或者相反從RP2輸出直接連接到RP1的路徑。因為這時RP邊界信號(連接RP1和RP2的net)的負載都在動態(tài)區(qū),從而必然形成Partition Pin,由于邊界信號沒有經(jīng)過靜態(tài)區(qū)邏輯單元,這些PartitionPin最終會有相應的PPLOC,這其實就增加了后續(xù)的布線壓力。這種情況下,最好將其優(yōu)化為RP1->FF -> RP2。其中FF在靜態(tài)區(qū)。
避免多個RP輸出連接到同一個靜態(tài)區(qū)的負載邏輯單元上
只有當與邊界信號連接的靜態(tài)區(qū)負載落在擴展的布線區(qū)域時才會觸發(fā)PPLOC縮減。如果一個靜態(tài)區(qū)的負載連接多個RP,那么顯然這個靜態(tài)區(qū)負載只可能落在其中一個RP的擴展布線區(qū)域,那么另一個RP就會形成PPLOC,如下圖所示,兩個RP的輸出分別連接到靜態(tài)區(qū)負載LUT4的I0和I1端口,這樣就會形成PPLOC。
可將其優(yōu)化為如下圖所示方式,這樣每個RP的輸出都有獨立的靜態(tài)區(qū)負載,從而可能觸發(fā)PPLOC縮減。
復制靜態(tài)區(qū)寄存器驅(qū)動多個RP
為了保證靜態(tài)區(qū)邊界負載對每個RP而言是獨立的,那么就要避免同一個靜態(tài)區(qū)觸發(fā)器驅(qū)動多個RP。這種情況命令report_methodology會給報告出來。如下圖所示,靜態(tài)區(qū)觸發(fā)器扇出為4,同時驅(qū)動了RP1和RP2。
可對該觸發(fā)器進行復制,如下圖所示,這樣就保證了每個RP有自己獨立的靜態(tài)區(qū)邊界負載。
對RM的輸入/輸出進行寄存
AMD建議確保所有RM的輸入是寄存器輸入,而輸出也都是寄存器輸出。這樣,時序路徑就被隔離開來,即靜態(tài)區(qū)到RP邊界、RP內(nèi)部、RP邊界到靜態(tài)區(qū)。對布局布線是有利的,自然對時序收斂也是有益的。同時,如果使用AbstractShell流程,這樣還可以有效減少Abstract Shell的大小,從而可進一步縮短編譯時間。
避免靜態(tài)區(qū)的走線跑到動態(tài)區(qū)
默認情況下,DFX設計中靜態(tài)區(qū)的net是可以使用整個芯片的布線資源,自然也包括動態(tài)區(qū)的布線資源,正因此,就可能出現(xiàn)靜態(tài)區(qū)布線跑到了動態(tài)區(qū)。盡管從功能角度而言是允許的,但這會給動態(tài)區(qū)布線帶來壓力。因此,如果出現(xiàn)動態(tài)區(qū)布線擁塞時,可以檢查一下是否存在上述情況。對于上述情況,我們可以對靜態(tài)區(qū)設置相應的Pblock,將其屬性CONTAIN_ROUTING設置為true。下圖顯示了靜態(tài)區(qū)布線跑到動態(tài)區(qū)的情形,圖中黃色走線即為靜態(tài)區(qū)走線,有部分跑到了動態(tài)區(qū)。設置CONTAIN_ROUTING為true之后,可以看到這種情況就被消除了。
盡可能使Pblock形狀為矩形
一旦將Pblock屬性CONTAIN_ROUTING設置為true時,對于Pblock的拐角處工具布線難度就會顯著增大,如下圖左側(cè)所示。Pblock形狀不是標準的矩形,在拐角處形成布線擁塞,圖中白色高亮部分,擁塞等級為6。將其修正為標準矩形,如下圖右側(cè)部分所示,此時擁塞程度降低(圖中白色高亮部分),降至5。
審核編輯:湯梓紅
-
寄存器
+關注
關注
31文章
5300瀏覽量
119860 -
端口
+關注
關注
4文章
950瀏覽量
31988 -
觸發(fā)器
+關注
關注
14文章
1995瀏覽量
61014 -
DFx
+關注
關注
0文章
35瀏覽量
10513
原文標題:優(yōu)化DFX設計
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論