《UltraFast 設(shè)計(jì)方法時(shí)序收斂快捷參考指南》提供了以下分步驟流程, 用于根據(jù)《UltraFast設(shè)計(jì)方法指南》( UG949 )中的建議快速完成時(shí)序收斂:
1初始設(shè)計(jì)檢查:在實(shí)現(xiàn)設(shè)計(jì)前審核資源利用率、邏輯層次和時(shí)序約束。
2時(shí)序基線設(shè)定:在每個(gè)實(shí)現(xiàn)步驟后檢查并解決時(shí)序違例,從而幫助布線后收斂時(shí)序。
3時(shí)序違例解決:識(shí)別建立時(shí)間違例或保持時(shí)間違例的根源,并解決時(shí)序違例。
01
初始設(shè)計(jì)檢查詳細(xì)介紹
在賽靈思器件上實(shí)現(xiàn)設(shè)計(jì),是一個(gè)自動(dòng)化程度相當(dāng)高的任務(wù)。但是,要實(shí)現(xiàn)更高的性能、解決時(shí)序或布線違例帶來的編譯問題,則是一項(xiàng)復(fù)雜且耗時(shí)的工作。僅根據(jù)簡(jiǎn)單的日志消息或由工具生成的實(shí)現(xiàn)后時(shí)序報(bào)告,可能難以明確失敗原因。因此,按步驟進(jìn)行設(shè)計(jì)開發(fā)和編譯非常必要,其中就包括復(fù)查中間結(jié)果,以確保設(shè)計(jì)能繼續(xù)執(zhí)行下一個(gè)實(shí)現(xiàn)步驟。
第一步是確保所有的初始設(shè)計(jì)檢查都已經(jīng)完成。在下列層次復(fù)查檢查結(jié)果:
由定制 RTL 構(gòu)成或者由 Vivado HLS 生成的每個(gè)內(nèi)核。注意:檢查目標(biāo)時(shí)鐘頻率約束是否現(xiàn)實(shí)。
與子系統(tǒng)逐一對(duì)應(yīng)的每個(gè)主要層級(jí),例如有多個(gè)內(nèi)核、IP 塊和連接邏輯的 Vivado IP integrator 模塊框圖。
如果設(shè)計(jì)使用布局規(guī)劃約束, 如超級(jí)邏輯區(qū)域( SLR )分配或分配給 Pblock 的邏輯,請(qǐng)復(fù)查每項(xiàng)物理約束的估算的資源利用率,確保符合資源利用率準(zhǔn)則。
02
時(shí)序基線設(shè)定示例
時(shí)序基線設(shè)定的目的是,通過在每個(gè)實(shí)現(xiàn)步驟后分析和解決時(shí)序問題,確保設(shè)計(jì)滿足時(shí)序要求。在編譯流程中,盡早糾正設(shè)計(jì)問題和約束問題能實(shí)現(xiàn)更高性能,并帶來更廣泛的影響。通過創(chuàng)建如下中間報(bào)告,在進(jìn)入下一步前復(fù)查并解決時(shí)序違例:
03
分析建立時(shí)間違例流程
設(shè)計(jì)性能主要由三個(gè)因素決定:一、時(shí)鐘偏差與時(shí)鐘不確定性,主要包括時(shí)鐘如何高效實(shí)現(xiàn);二、邏輯延遲所涉及到每個(gè)時(shí)鐘周期內(nèi)遍歷的邏輯量;三、信號(hào)線延遲或布線延遲,如Vivado 如何高效實(shí)現(xiàn)設(shè)計(jì)的布局布線。
使用時(shí)序路徑或設(shè)計(jì)分析報(bào)告內(nèi)的信息,有助于識(shí)別時(shí)序違例主要由哪些因素引發(fā),以及確定如何迭代提升 QoR。
(提示:如果需要,可在每個(gè)步驟后打開 DCP 以生成更多報(bào)告,詳細(xì)流程請(qǐng)查看完整版指南。)
04
解決保持時(shí)間違例的方法
避免保持時(shí)間要求為正值
在使用多周期路徑約束放寬建立時(shí)間檢查時(shí),需做到:
調(diào)整同一路徑上的保持時(shí)間檢查,以便在保持時(shí)間分析中使用相同的發(fā)送沿和捕獲沿。否則會(huì)導(dǎo)致保持時(shí)間要求(一個(gè)或多個(gè)時(shí)鐘周期)為正值,無法實(shí)序收斂。
指定端點(diǎn)管腳, 而不僅僅是單元或時(shí)鐘。例如, 端點(diǎn)單元REGB有三個(gè)輸入管腳:C、EN 和 D。只有 REGB/D 管腳需交由多周期路徑例外來約束(時(shí)鐘使能(EN)管腳不用),因?yàn)?EN 管腳在每個(gè)時(shí)鐘周期都會(huì)發(fā)生改變。如果將約束連接至單元而不是管腳,那么所有有效的端點(diǎn)管腳(包括 EN 管腳)都在約束的考慮范圍內(nèi)。
在布線前降低 WHS 和 THS
嚴(yán)重的估算保持時(shí)間違例會(huì)增大布線難度, 且并非總能通過route_design解決。布局后phys_opt_design 命令提供多種保持時(shí)間修復(fù)選項(xiàng):
在時(shí)序元件之間插入反向邊緣觸發(fā)寄存器會(huì)將時(shí)序路徑分為兩條半周期路徑,從而顯著減少保持時(shí)間違例。這種最優(yōu)化只能在不劣化建立時(shí)序的情況下執(zhí)行。
插入 LUT 1 緩沖器會(huì)導(dǎo)致數(shù)據(jù)路徑延遲, 這樣即可減少保持時(shí)間違例,而不會(huì)造成建立時(shí)間違例。