越了解自己PCB設(shè)計(jì)的實(shí)現(xiàn)方法,越了解自己PCB設(shè)計(jì)的時(shí)序要求,越了解目標(biāo)PCB器件的資源分布和結(jié)構(gòu),越了解EDA的效果 工具執(zhí)行約束,PCB設(shè)計(jì)的時(shí)序約束目標(biāo)越明確,相應(yīng)的,設(shè)計(jì)的時(shí)序收斂過程就越可控。
下面總結(jié)了幾種時(shí)序約束的方法。 由易到難的順序如下:
0.核心頻率約束
這是最基本的,所以標(biāo)簽是0
1、核心頻率約束+時(shí)序異常約束
時(shí)序異常約束包括 FalsePath、MultICyclePath、MaxDelay 和 MinDelay,但這還不是最完整的時(shí)序約束。 如果只有這些約束,說明設(shè)計(jì)者的思路還局限在FPGA芯片上。
2.核心頻率約束+時(shí)序異常約束+I/O約束
I/O約束包括管腳分配位置、空閑管腳驅(qū)動方式、外部布線延時(shí)(InputDelay、OutputDelay)、上拉和下拉電阻、驅(qū)動電流強(qiáng)度等。加入I/O約束后的時(shí)序約束為 完整的時(shí)序約束。 FPGA作為PCB上的一個(gè)元件,是整個(gè)PCB系統(tǒng)時(shí)序收斂的一部分。 FPGA作為PCB設(shè)計(jì)的一部分,就像所有COTS器件一樣,需要PCB設(shè)計(jì)工程師閱讀和分析其I/O時(shí)序圖。 FPGA與COTS器件的區(qū)別在于其I/O時(shí)序可以在設(shè)計(jì)后期在一定范圍內(nèi)進(jìn)行調(diào)整; 盡管如此,最好在PCB設(shè)計(jì)的早期階段就充分考慮,并將其包含在設(shè)計(jì)文檔中。
正因?yàn)镕PGA的I/O時(shí)序在設(shè)計(jì)過程中會發(fā)生變化,準(zhǔn)確約束它是保證設(shè)計(jì)穩(wěn)定性和可控性的重要因素。 FPGA重新編譯后,很多FPGA外部設(shè)備運(yùn)行不穩(wěn)定的問題可能就是由此造成的。
3.核心頻率約束+時(shí)序異常約束+I/O約束+Post fit Netlist
引入Post fit Netlist的過程是從一個(gè)成功的時(shí)序收斂結(jié)果開始,固定FPGA上實(shí)現(xiàn)的一組特定邏輯(design Partition)的版圖位置和布線結(jié)果(Netlist),以保證這個(gè)版圖和布線結(jié)果可以復(fù)現(xiàn) 在新的匯編中。 相應(yīng)地,也保證了這套邏輯的時(shí)序收斂結(jié)果。 這部分保留上次編譯結(jié)果的過程就是增量編譯。 可以設(shè)置保留的網(wǎng)表類型和保留程度,而不僅僅局限于Post fit Netlist,從而獲得相應(yīng)的保留強(qiáng)度和優(yōu)化效果。 得益于EDA工具的強(qiáng)大支持,雖然是精確到門級的細(xì)粒度約束,但設(shè)計(jì)人員只需要進(jìn)行一系列的設(shè)置操作,無需關(guān)心版圖布線的具體信息。 由于精確到門級的約束太多,無法保存在qsf文件中,可以將保留的網(wǎng)表以partial Netlist的形式輸出到單獨(dú)的文件qxp中,與粗略配置一起完成增量編譯 qsf 文件中的信息。
4.核心頻率約束+時(shí)序異常約束+I/O約束+LogicLock
LogicLock是對FPGA器件底層的布局約束。 LogicLock constraints是粗粒度的,它只指定了頂層模塊或子模塊可以調(diào)整的布局位置和大?。↙ogicLock Regions)。 一個(gè)成功的LogicLock需要設(shè)計(jì)者預(yù)測可能的時(shí)序收斂目標(biāo),考慮具體邏輯資源(管腳、內(nèi)存、DSP)與LogicLock Region的位置關(guān)系對時(shí)序的影響,參考上次時(shí)序收斂成功的結(jié)果 . 平衡和規(guī)劃FPGA底層物理布局的過程就是FloorPlanNing LogicLock,讓設(shè)計(jì)人員對布局位置和范圍有更多的控制,可以有效地將設(shè)計(jì)人員的設(shè)計(jì)意圖傳遞給EDA工具,避免EDA工具盲目優(yōu)化非關(guān)鍵路徑,因?yàn)?缺少布局優(yōu)先級信息。 由于每次編譯時(shí)模塊布局位置的變化被限制在最優(yōu)的固定范圍內(nèi),時(shí)序收斂結(jié)果的復(fù)現(xiàn)性更高。 LogicLock由于粒度較粗,所以約束信息不多,可以保留在qsf文件中。
5.核心頻率約束+時(shí)序異常約束+I/O約束+寄存器布局約束
寄存器布局約束是精確到寄存器或 LE 級別的細(xì)粒度布局約束。 PCB 設(shè)計(jì)人員可以通過對設(shè)計(jì)進(jìn)行精確控制來獲得可靠的時(shí)序收斂結(jié)果。 手動約束設(shè)計(jì)中每個(gè)寄存器的布局并保證時(shí)序收斂是一項(xiàng)巨大的工程,這表明設(shè)計(jì)人員可以完全控制設(shè)計(jì)的物理實(shí)現(xiàn)。 這是一個(gè)理想的目標(biāo),無法在有限的時(shí)間內(nèi)完成。 通常的做法是設(shè)計(jì)人員通過實(shí)際運(yùn)行版圖布線工具來限制設(shè)計(jì)部分的寄存器布局并獲取時(shí)序收斂信息,并通過多次迭代來逼近預(yù)期的時(shí)序目標(biāo)。
我見過這樣的設(shè)計(jì):子模塊的每個(gè)寄存器都有特定的布局位置約束。 每次重新編譯都保證了模塊的時(shí)序收斂。 經(jīng)過分析,初步在原理圖中進(jìn)行了該子模塊的設(shè)計(jì)和約束。 實(shí)現(xiàn)時(shí)序收斂的目標(biāo)后,將設(shè)計(jì)轉(zhuǎn)化為HDL語言描述,相應(yīng)的約束也保存在配置文件中。
6.核心頻率約束+時(shí)序異常約束+I/O約束+特定路徑延遲約束
好的時(shí)序約束應(yīng)該是“引導(dǎo)”的,而不是“強(qiáng)制的”。 通過在設(shè)計(jì)中給出關(guān)鍵路徑的時(shí)延范圍,將具體而細(xì)微的工作交由EDA工具在約束的有限范圍內(nèi)自由實(shí)現(xiàn)。 這也是一個(gè)理想的目標(biāo)。 設(shè)計(jì)者需要熟知每條時(shí)序路徑。 設(shè)計(jì)者需要區(qū)分哪些路徑可以通過核心頻率和簡單的時(shí)序異常約束收斂,哪些路徑必須用MaxDelay和MinDelay來制定。 二者缺一不可,還需要EDA工具“懂”的大力支持。 設(shè)置路徑延遲約束是間接設(shè)置布局布線約束,但比上述3、4、5中的方法更靈活、更準(zhǔn)確。 時(shí)間約束的本質(zhì)是通過時(shí)間約束而不是顯式布局和網(wǎng)表約束來實(shí)現(xiàn)時(shí)間收斂。
我記得有人說過,“好的時(shí)機(jī)是設(shè)計(jì)出來的,而不是被約束的”。 我總是用這句話作為我自己的邏輯設(shè)計(jì)和時(shí)序約束的指南。 好的約束必須基于好的設(shè)計(jì)。 沒有好的設(shè)計(jì),在約束上花大力氣是沒有意義的。 但是,也可以通過正確的約束來檢查設(shè)計(jì)的優(yōu)缺點(diǎn)。 PCB時(shí)序分析報(bào)告可用于檢查設(shè)計(jì)中無意的時(shí)序考慮并進(jìn)行修改。 改進(jìn)設(shè)計(jì)的目標(biāo)也可以通過幾次“分析-修改-分析”的迭代來實(shí)現(xiàn)。 應(yīng)該說,設(shè)計(jì)是約束的基礎(chǔ),約束是設(shè)計(jì)的保證。 兩者是互補(bǔ)的
然后
聯(lián)系
電話熱線
13410863085Q Q
微信
- 郵箱