對于FPGA而言,時(shí)序收斂是一個(gè)很重要的概念。在我看來,時(shí)序約束是必要的,但不是在最重要的,我們應(yīng)該在設(shè)計(jì)初始就考慮到時(shí)序問題,而不是完全的靠約束來獲得一個(gè)好的結(jié)果。
在軍事和航空領(lǐng)域,工程師面臨的挑戰(zhàn)越來越嚴(yán)峻,例如延遲要求、帶寬要求、在極端氣溫下使應(yīng)用達(dá)標(biāo),以及緊迫的工程進(jìn)度。在更高的抽象層級上工作,設(shè)計(jì)會更加清晰簡潔,報(bào)錯(cuò)和糾錯(cuò)也會更少。但是,這個(gè)方法一般會以犧牲性能為代價(jià)。要想在 FPGA 設(shè)計(jì)中實(shí)現(xiàn)高性能,需要手動(dòng)優(yōu)化 RTL 代碼。而在 C 到 RTL 開發(fā)環(huán)境中直接生成的RTL代碼,往往是不達(dá)標(biāo)的.
1. FPGA時(shí)序的基本概念
FPGA器件的需求取決于系統(tǒng)和上下游(upstream and downstrem)設(shè)備。我們的設(shè)計(jì)需要和其他的devices進(jìn)行數(shù)據(jù)的交互,其他的devices可能是FPGA外部的芯片,可能是FPGA內(nèi)部的硬核。
對于FPGA design來說,必須要關(guān)注在指定要求下,它能否正常工作。這個(gè)正常工作包括同步時(shí)序電路的工作頻率,以及輸入輸出設(shè)備的時(shí)序要求。在FPGA design內(nèi)部,都是同步時(shí)序電路,各處的延時(shí)等都能夠估計(jì)出來,但是FPGA內(nèi)部并不知道外部的設(shè)備的時(shí)序關(guān)系。所以,Timing constraints包括:
輸入路徑(Input paths )
寄存器-寄存器路徑(Register-to-register paths )
輸出路徑(Output paths )
例外(Path specific exceptions )
這正好對應(yīng)了上圖中三個(gè)部分,Path specific exceptions 暫時(shí)不提。
Input paths對應(yīng)的是OFFSET IN約束,即輸入數(shù)據(jù)和時(shí)鐘之間的相位關(guān)系。針對不同的數(shù)據(jù)輸入方式(系統(tǒng)同步和源同步,SDR和DDR)有不同的分析結(jié)果。
Register-to-register paths 對應(yīng)的是整個(gè)FPGA design的工作時(shí)鐘。如果只有一個(gè)時(shí)鐘,那么只需要指定輸入的頻率即可。如果有多個(gè)時(shí)鐘,這些時(shí)鐘是通過DCM,MMCM,PLL生成的,那么顯然ISE知道這些時(shí)鐘之間的頻率、相位關(guān)系,所以也不需要我們指定。如果這些不同的時(shí)鐘是通過不同的引腳輸入的,ISE不知道其相位關(guān)系,所以指定其中一個(gè)為主時(shí)鐘,需要指定其間的相位關(guān)系。
Output paths對應(yīng)的是OFFSET OUT 約束,和OFFSET IN約束很類似,不過方向相反。
2.找到合適的 FPGA 工具設(shè)置
盡管工程師們很清楚已有 FPGA 工具的參數(shù)設(shè)置,但是很多時(shí)候并沒有完全把這些設(shè)置的功能發(fā)揮出來。一般而言,這些設(shè)置只有在設(shè)計(jì)無法達(dá)到時(shí)序要求的時(shí)候才會用到。而且,對于已經(jīng)達(dá)到性能目標(biāo)的設(shè)計(jì)來說,如果好好利用這些設(shè)置,性能再提升10%-50%也是完全有可能的。難點(diǎn)在于,各種 FPGA 工具一般會有30-70個(gè)綜合和布局布線的設(shè)置選項(xiàng),從這些選項(xiàng)中選擇合適的那一組設(shè)置組合如同大海撈針。幸好,目前已經(jīng)有些工具可以控制并運(yùn)行設(shè)計(jì)探索,而且整套流程是自動(dòng)化的,也十分嚴(yán)謹(jǐn)。
最后的一個(gè)難題,是計(jì)算資源的匱乏。傳統(tǒng)的嵌入式應(yīng)用都是在單一電腦上設(shè)計(jì)的,但是運(yùn)行多個(gè)編譯需要更多的計(jì)算能力,這樣就會犧牲更多的時(shí)間。如果可以并行運(yùn)行編譯的話,那么周轉(zhuǎn)時(shí)間就會短很多。
3.優(yōu)化高層次設(shè)計(jì)
市面上已經(jīng)有工具可以將設(shè)計(jì)性能提升50%并且不改變 RTL 代碼了。如下圖所展示的是設(shè)計(jì)探索非常好的一個(gè)例子:在視頻處理的設(shè)計(jì)中,進(jìn)行 Sobel Filter Implementation。該設(shè)計(jì)的目標(biāo)器件為一個(gè) FPGA 搭載雙核 Arm? Cortex?-A9 MPCore?。
該設(shè)計(jì)的時(shí)鐘周期為5.00ns或者200MHz。根據(jù)時(shí)序預(yù)估,它的時(shí)序還差506ps,也就是據(jù)目標(biāo)速率還差10%或181MHz,如下圖
Intime在不改變 C++代碼的情況下,工程師把設(shè)計(jì)輸出為 RTL 代碼。通過使用一種探索工具,工程師打開項(xiàng)目(xpr),然后并行運(yùn)行不同 FPGA 工具參數(shù)的編譯來優(yōu)化設(shè)計(jì)。
在兩輪優(yōu)化,15次編譯之后,該設(shè)計(jì)達(dá)到了性能目標(biāo),200MHz,而且沒有修改源代碼。如下圖:
這個(gè)案例并不是說這種優(yōu)化只能在高層次設(shè)計(jì)中進(jìn)行。其實(shí),只要是RTL代碼都有可能提升性能。
4.RTL 項(xiàng)目的設(shè)計(jì)探索
軟件無線電 (SDR) 是另一個(gè)可以從時(shí)序收斂工具中獲益的應(yīng)用。在這個(gè)案例中,參考設(shè)計(jì)直接用 RTL 代碼創(chuàng)建。這是一個(gè)高性能,高集成度的射頻 (RF) 捷變收發(fā)器 (Agile Transceiver),為3G和4G基站的應(yīng)用而設(shè)計(jì)。該設(shè)備把一個(gè)擁有靈活混合信號基帶單元的射頻前端 (RF Front End),和集成頻率合成器 (integrated frequency synthesizers)相結(jié)合,再把處理器加上一個(gè)可配置的數(shù)字界面。
開始的時(shí)鐘周期是4ns 或250MHz,并且參考設(shè)計(jì)默認(rèn)時(shí)序達(dá)標(biāo)。為了讓這個(gè)設(shè)計(jì)時(shí)序失敗,工程師把時(shí)鐘周期設(shè)置成激進(jìn)的2ns,新的目標(biāo)速率為500MHz。在這種情況下,設(shè)計(jì)時(shí)序離達(dá)標(biāo)就會差246ps,并以445MHz 運(yùn)行。
在同樣的情況下,不改變RTL,該設(shè)計(jì)可以通過探索多種 FPGA 工具參數(shù)來優(yōu)化。優(yōu)化過程為三輪,60次編譯。
結(jié)果顯示,最終 WNS 從-246ps 提升到-0.051ps,提升了79.2%,相當(dāng)于時(shí)鐘周期為487MHz 以及9.4%的最大頻率提升。如下圖:
5.讓性能更進(jìn)一步
隨著科學(xué)技術(shù)的發(fā)展,電子器件會變得越來越復(fù)雜,要求也越來越高,這是大勢所趨。新的 FPGA 軟件科技和方法會幫助我們提升質(zhì)量、效率,滿足我們的需求。盡管 FPGA 設(shè)計(jì)的潛能尚未完全被了解,但工具參數(shù)的探索可以減少高層次設(shè)計(jì)的性能犧牲,從而保證項(xiàng)目完成地又快又好。工程師們會在使用工具探索 FPGA 設(shè)計(jì)參數(shù)選項(xiàng)上,越來越熟練。這些工具也會在設(shè)計(jì)中大放異彩。
有需要試用intime軟件者,請加群提交申請即可。
-
FPGA
+關(guān)注
關(guān)注
1638文章
21879瀏覽量
610717 -
芯片
+關(guān)注
關(guān)注
459文章
51821瀏覽量
432104 -
寄存器
+關(guān)注
關(guān)注
31文章
5394瀏覽量
122434
原文標(biāo)題:Intime在軍事航空項(xiàng)目中大放異彩
文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
時(shí)序分析中的一些基本概念
FPGA功耗的基本概念,如何降低FPGA功耗?
FPGA高級班前言基本原理基本概念

時(shí)序分析中的一些基本概念

時(shí)序分析基本概念介紹——時(shí)序庫Lib,除了這些你還想知道什么?

時(shí)序分析和時(shí)序約束的基本概念詳細(xì)說明

時(shí)序設(shè)計(jì)基本概念之collection
FPGA設(shè)計(jì)中時(shí)序分析的基本概念
靜態(tài)時(shí)序分析的基本概念和方法

介紹時(shí)序分析基本概念MMMC

時(shí)序分析基本概念介紹—Timing Arc

評論