修復(fù)關(guān)鍵路徑時(shí)序一直都是數(shù)字IC designer最耗時(shí)的工作任務(wù)之一,而且伴隨著同一個(gè)RTL設(shè)計(jì)應(yīng)用于不同的業(yè)務(wù)場(chǎng)景,時(shí)序、面積和功耗的約束也是不同的,所以時(shí)序優(yōu)化的方向也是多變的。
簡(jiǎn)單來(lái)說(shuō),時(shí)序優(yōu)化的任務(wù)是常見的,并不是說(shuō)RTL寫得足夠好,就不存在后續(xù)的時(shí)序優(yōu)化迭代。
本文介紹3個(gè)時(shí)序優(yōu)化的RTL改動(dòng)以及在其中Formal SEC的角色。
其中一種比較常用的關(guān)鍵時(shí)序修復(fù)方法是將兩個(gè)pipe之間的組合邏輯重新分配。
這個(gè)道理就是木桶原理,限制同步設(shè)計(jì)時(shí)鐘頻率的路徑就是關(guān)鍵時(shí)序路徑,如果一個(gè)木桶中所有的木板長(zhǎng)短都是一樣的,那就是沒有短板,或者說(shuō)全部都是短板。

如上圖所示,上方的設(shè)計(jì)是存在時(shí)序問(wèn)題的設(shè)計(jì),在第1個(gè)PIPE和第2個(gè)PIPE之間有一個(gè)比較長(zhǎng)的組合邏輯,通過(guò)組合邏輯重新分配,讓組合邏輯在2個(gè)PIPE比較均勻地分配就可以優(yōu)化這類時(shí)序問(wèn)題。
注意:前提是保證端到端功能是一致的,即使中間階段寄存器的狀態(tài)可能不一致。由于中間寄存器的狀態(tài)不一致所以不能夠使用combinational FEV,只能使用sequential FEV或者transaction FEV。
經(jīng)驗(yàn)表明,這種時(shí)序優(yōu)化有非常非常大的概率引入bug。修復(fù)時(shí)序的前提的保證功能,方向錯(cuò)誤,跑得越快,越不是好事情。
這種由于修復(fù)時(shí)序引入的bug很容易通過(guò)修改前RTL(SPEC RTL)和修改后RTL(IMP RTL)之間的等價(jià)性(sequential FEC)比對(duì)來(lái)確保設(shè)計(jì)的時(shí)序優(yōu)化修改沒有引入新的bug。
critical path reduction
在某些情況下組合邏輯重分配不可行時(shí),可能需要將一個(gè)比較長(zhǎng)的組合邏輯分拆成并行的2個(gè)比較小的組合邏輯,然后在后面的PIPE使用邏輯再匯聚在一起,如下圖所示。

對(duì)于上面的修改,上方的設(shè)計(jì)存在時(shí)序問(wèn)題,下方的設(shè)計(jì)是優(yōu)化后的問(wèn)題,這個(gè)轉(zhuǎn)化的過(guò)程同樣非常非常容易導(dǎo)致bug的引入,也同樣可以通過(guò)FEC來(lái)保證。
Pipeline optimizations
隨著這個(gè)RTL設(shè)計(jì)的不同應(yīng)用場(chǎng)景需求變化(工藝變化、業(yè)務(wù)場(chǎng)景變化、算法變化以及物理實(shí)現(xiàn)的變化等等),designer發(fā)現(xiàn)時(shí)序無(wú)論如何也無(wú)法優(yōu)化,只能夠以犧牲latency的代價(jià)增加pipe數(shù)來(lái)優(yōu)化時(shí)序。又或者發(fā)現(xiàn)可以減少pipe來(lái)優(yōu)化latency,提升芯片的局部性能。
注意:同樣需要保證端到端的功能一致。

如上圖所示,上方是優(yōu)化前的設(shè)計(jì),下方是優(yōu)化后的設(shè)計(jì)(減少了一個(gè)pipe)。
對(duì)于這種pipe個(gè)數(shù)變化,但是端到端功能不變的修改,同樣可以使用sequential FEC來(lái)進(jìn)行等價(jià)性比對(duì)。只不過(guò)有所區(qū)別的是,需要指定比對(duì)是latency差異。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5503瀏覽量
128273 -
RTL
+關(guān)注
關(guān)注
1文章
393瀏覽量
62171 -
數(shù)字IC
+關(guān)注
關(guān)注
2文章
38瀏覽量
13245
發(fā)布評(píng)論請(qǐng)先 登錄
進(jìn)行RTL代碼設(shè)計(jì)需要考慮時(shí)序收斂的問(wèn)題
優(yōu)化 FPGA HLS 設(shè)計(jì)
在Linux ubuntu上使用riscv-formal工具驗(yàn)證蜂鳥E203 SoC的正確性
FPGA中的I_O時(shí)序優(yōu)化設(shè)計(jì)
FPGA的時(shí)序優(yōu)化高級(jí)研修班
推薦一個(gè)時(shí)序優(yōu)化的軟件~~
vivado:時(shí)序分析與約束優(yōu)化
時(shí)序邏輯等效性的RTL設(shè)計(jì)和驗(yàn)證流程介紹
介紹RTL設(shè)計(jì)引入的后端實(shí)現(xiàn)過(guò)程中的布線問(wèn)題
你知道RTL時(shí)序優(yōu)化迭代的技巧有哪些嗎
A Roadmap for Formal Property
時(shí)序分析的優(yōu)化策略詳細(xì)說(shuō)明
時(shí)序分析的優(yōu)化策略詳細(xì)說(shuō)明
可以通過(guò)降低約束的復(fù)雜度來(lái)優(yōu)化Formal的執(zhí)行效率嗎?
Formal Verification的基礎(chǔ)知識(shí)

介紹3個(gè)時(shí)序優(yōu)化的RTL改動(dòng)及其中Formal SEC的角色
評(píng)論