? ? ? ? ?鑒于FPGA在如此多應(yīng)用中的重要地位,采取正式且注重方法的開發(fā)流程來處理FPGA設(shè)計(jì)比以往更加重要。該流程旨在避免開發(fā)周期后期因發(fā)現(xiàn)設(shè)計(jì)缺陷而不得不進(jìn)行費(fèi)時(shí)費(fèi)錢的設(shè)計(jì)修改,而且該缺陷還可能對項(xiàng)目進(jìn)度計(jì)劃、成本和質(zhì)量造成災(zāi)難性影響。
賽靈思全球通信服務(wù)部一直以來都采用久經(jīng)考驗(yàn)的設(shè)計(jì)框架來為其客戶開發(fā)和交付一攬子FPGA設(shè)計(jì),產(chǎn)品涵蓋醫(yī)療圖像處理工程到自學(xué)網(wǎng)絡(luò)交換工程,應(yīng)有盡有。該框架在我們設(shè)計(jì)、開發(fā)以及交付成百上千FPGA設(shè)計(jì)的過程中得到不斷發(fā)展和完善。
我們使用的框架覆蓋從系統(tǒng)架構(gòu)考量到FPGA開發(fā)與測試規(guī)劃等各個環(huán)節(jié)。我們從FPGA硬件的角度重點(diǎn)詳細(xì)介紹該框架,通過介紹希望其他工程團(tuán)隊(duì)能夠發(fā)現(xiàn)該框架在復(fù)雜的FPGA設(shè)計(jì)項(xiàng)目里面的優(yōu)點(diǎn)。
框架簡介
該框架是一種在FPGA中設(shè)計(jì)硬件的自上而下的迭代設(shè)計(jì)方法。首先規(guī)劃從系統(tǒng)架構(gòu)層面出發(fā)決策FPGA功能。隨后我們根據(jù)FPGA器件的已知功能和性能逐步優(yōu)化FPGA設(shè)計(jì)的特性。
另外,大型FPGA設(shè)計(jì)的實(shí)現(xiàn)需要制定完備的開發(fā)、仿真和驗(yàn)證規(guī)劃。該框架的作用就是幫助我們制定這些規(guī)劃。簡而言之,該框架可歸納為圖1所示的流程圖。本文的討論將集中在規(guī)劃和技術(shù)文檔部分(頂部)。
系統(tǒng)架構(gòu)
就本討論范圍而言,系統(tǒng)架構(gòu)指在系統(tǒng)軟件和硬件之間的功能劃分。尤其,重點(diǎn)是將硬件功能細(xì)分到FPGA以及其它微芯片組件上(假設(shè)已經(jīng)明確產(chǎn)品層面需求),例如市場營銷或產(chǎn)品定義部門可能已經(jīng)參與進(jìn)來并明確產(chǎn)品需求。
在系統(tǒng)架構(gòu)階段,思路是如何明確地讓這些產(chǎn)品需求在真實(shí)產(chǎn)品中得以實(shí)現(xiàn)。就FPGA來說,主要的決策圍繞著應(yīng)將哪些特性和功能在FPGA中實(shí)現(xiàn),以及進(jìn)一步,哪些特性和功能適合在FPGA中實(shí)現(xiàn)。
通過提前定義FPGA的高級要求,就能避免開發(fā)流程已接近尾聲時(shí)進(jìn)行成本不菲的設(shè)計(jì)及需求修改。在設(shè)計(jì)早期階段明確系統(tǒng)架構(gòu)有助于指導(dǎo)用戶做出對開發(fā)時(shí)間和產(chǎn)品成本至關(guān)重要的多項(xiàng)重大決策。
在這個層面上探討,只需要一般性地概略介紹FPGA特性。詳細(xì)特性和實(shí)現(xiàn)需求將在FPGA需求定義過程的后續(xù)階段進(jìn)行定義。本次探討的參與者應(yīng)包括熟悉系統(tǒng)級要求的、了解系統(tǒng)級架構(gòu)設(shè)計(jì)的,以及熟悉FPGA特性與功能的等不同人員。
具體就FPGA而言,需要回答十大問題:
1. 要在FPGA中實(shí)現(xiàn)的特性列表是什么樣的?
2. 在FPGA中實(shí)現(xiàn)特性與使用非FPGA組件實(shí)現(xiàn)特性相比,需在技術(shù)上做怎樣的權(quán)衡取舍?
3. 在FPGA中實(shí)現(xiàn)與使用非FPGA組件實(shí)現(xiàn)相比,設(shè)計(jì)工作量/成本分別如何?
4. 需要什么樣的定制特性或處理?
5. FPGA的靈活性對功能有什么好處?
6. 您應(yīng)該考慮的未來風(fēng)險(xiǎn)緩解措施是什么?
7. 能否把多個非FPGA組件的特性集中到FPGA中?
8. 根據(jù)準(zhǔn)備實(shí)現(xiàn)的設(shè)計(jì)特性,如何選擇FPGA器件?
9. 特性是否能在FPGA中實(shí)現(xiàn)?
10. 需要什么樣的非FPGA器件,如何讓這些非FPGA器件與FPGA接口相連?
FPGA架構(gòu)
FPGA架構(gòu)屬于FPGA器件上物理層的微架構(gòu)級和芯片級數(shù)據(jù)流設(shè)計(jì)。您的團(tuán)隊(duì)?wèi)?yīng)與系統(tǒng)級架構(gòu)同步設(shè)計(jì)該架構(gòu),以確定器件尺寸、選擇器件和可行性。
圖中文字如下:
系統(tǒng)架構(gòu)、FPGA架構(gòu)、性能評估、規(guī)劃與文檔、超過FPGA性能、在FPGA性能范圍內(nèi)、FPGA需求定義與劃分、FPGA設(shè)計(jì)規(guī)劃、FPGA設(shè)計(jì)開發(fā)、FPGA測試開發(fā)、未通過仿真測試、編碼與仿真、測試評估、通過仿真測試、硬件測試
定義FPGA架構(gòu)的目的,是確保系統(tǒng)架構(gòu)需求是準(zhǔn)確、現(xiàn)實(shí)、切實(shí)可行的設(shè)計(jì)要求,能夠在FPGA中實(shí)現(xiàn)。
這個層面的探討需要對FPGA架構(gòu)和資源的特性與功能有深入的認(rèn)識。因此應(yīng)該由經(jīng)驗(yàn)豐富的FPGA設(shè)計(jì)人員參與完成。在這個階段,您必須考慮與FPGA性能目標(biāo)、潛在風(fēng)險(xiǎn)因素和FPGA資源利用率。
在FPGA架構(gòu)定義階段,您有可能會發(fā)現(xiàn)系統(tǒng)級需求和架構(gòu)無法實(shí)現(xiàn),或是對實(shí)現(xiàn)在FPGA中而言存在高風(fēng)險(xiǎn)。在這種情況下您必須重新評估和更新系統(tǒng)架構(gòu),以創(chuàng)建在FPGA中可實(shí)現(xiàn)的高級需求列表。
您應(yīng)問問自己現(xiàn)有IP哪些可供使用,還必須創(chuàng)建哪些IP。此外,您還需要檢查I/O需求,以及把時(shí)鐘域和時(shí)鐘特性映射到FPGA時(shí)鐘資源的方法。其他關(guān)鍵問題包括:如何在FPGA上布局千兆位收發(fā)器(GT)資源;在SSI器件中是否已考慮到交叉SLR數(shù)據(jù)流;目標(biāo)時(shí)鐘頻率對設(shè)計(jì)功能而言是否實(shí)際。最后,您還必須評估您設(shè)計(jì)的目標(biāo)性能對選擇的FPGA而言是否實(shí)際。
FPGA需求定義與劃分
FPGA需求定義和劃分階段與系統(tǒng)和FPGA架構(gòu)定義緊密關(guān)聯(lián)并受這兩個階段的決策左右。FPGA需求定義指定義準(zhǔn)備在FPGA中實(shí)現(xiàn)的詳細(xì)需求,并用作明確的特性清單以供設(shè)計(jì)和測試工程團(tuán)隊(duì)設(shè)計(jì)、測試和實(shí)現(xiàn)。FPGA需求定義與系統(tǒng)和FPGA架構(gòu)需求定義的不同之處在于FPGA需求是精確的。該清單定義了FPGA的細(xì)致要求,而不僅僅是系統(tǒng)的不同組件之間的功能劃分,或是穿越FPGA的數(shù)據(jù)流之間的功能劃分。
這個階段的目的是清楚地定義FPGA工程團(tuán)隊(duì)確切能實(shí)現(xiàn)和測試的內(nèi)容。在這個階段,用戶將把高級系統(tǒng)和FPGA架構(gòu)需求轉(zhuǎn)換成用于實(shí)現(xiàn)的具體需求。這樣做能夠帶來雙重好處。首先,單獨(dú)定義FPGA需求能突出強(qiáng)調(diào)系統(tǒng)和FPGA架構(gòu)的任何局限以及之前未曾考慮到或未曾預(yù)見到的狀況。其次,該步驟將為FPGA設(shè)計(jì)的開發(fā)和測試的順利執(zhí)行鋪平道路。
為適當(dāng)?shù)孛枋鯢PGA需求,您必須建立清晰且簡明扼要的定義,以便提煉成單獨(dú)的需求。我們建議為各項(xiàng)需求添加標(biāo)簽或序號,使用易于判斷其能否實(shí)現(xiàn)的簡短描述來定義各項(xiàng)需求,避免用高級含糊的需求用語。只要足夠清晰扼要,您可以使用任何行業(yè)標(biāo)準(zhǔn)格式或?qū)S懈袷健?/p>
避免使用含混或界定不清的用語,例如“快速”或“小型”。應(yīng)堅(jiān)持使用有明確目標(biāo)的用語,如“400MHz”或“4.2K觸發(fā)器”。這樣定義的目的旨在確保將文檔分配給之前不了解系統(tǒng)或FPGA架構(gòu)的開發(fā)工程團(tuán)隊(duì)進(jìn)行實(shí)施時(shí)不再需要反復(fù)澄清。您需要檢查每個需求是否表述清楚、簡潔、明確且是否包含了所有必需的信息以避免反復(fù)澄清的必要。此外,還應(yīng)該注意需求中是否包括管腳和I/O定義?是否所有的高級需求都已經(jīng)分解為基本設(shè)計(jì)要素?未參與早期系統(tǒng)架構(gòu)定義的設(shè)計(jì)團(tuán)隊(duì)是否能夠使用這些需求開發(fā)FPGA?以及最后測試與驗(yàn)證團(tuán)隊(duì)是否能使用該文檔開發(fā)測試平臺和制定測試方案,明確驗(yàn)證每一項(xiàng)需求是否通過。
FPGA設(shè)計(jì)規(guī)劃
該框架的這個階段用于為FPGA硬件的實(shí)際開發(fā)制定規(guī)劃,確保各項(xiàng)特性及開發(fā)工作的完成與整個產(chǎn)品開發(fā)的其他部分協(xié)調(diào)一致。
這個階段的目標(biāo)是適當(dāng)?shù)匕旬?dāng)前的系統(tǒng)級需求、FPGA級需求和架構(gòu)體現(xiàn)到開發(fā)規(guī)劃中。在通過前面介紹的規(guī)劃階段之后,現(xiàn)在開發(fā)團(tuán)隊(duì)一般會面臨兩種情況。
第一種情況是系統(tǒng)與FPGA架構(gòu)以及需求理解良好,描述詳盡,最終,F(xiàn)PGA設(shè)計(jì)開發(fā)階段(即HDL編碼)和測試開發(fā)階段(仿真、測試臺)基本無需修改設(shè)計(jì)需求,順利執(zhí)行。
第二種情況是系統(tǒng)架構(gòu)和FPGA需求仍然處在變動中。這樣的設(shè)計(jì)會在設(shè)計(jì)開發(fā)周期和測試開發(fā)階段面臨眾多變數(shù)和修改。
雖然人人都想得到第一種情況的結(jié)果,但往往卻不能成功,最終落入第二種情況的境地。很明顯,這種情況更加難于管理。
設(shè)計(jì)規(guī)劃的總體目標(biāo)應(yīng)是在開發(fā)周期的這個階段實(shí)現(xiàn)第一種情況。在第一種情況中,F(xiàn)PGA的開發(fā)簡單直觀,只需為實(shí)現(xiàn)和測試設(shè)計(jì)特性安排進(jìn)度計(jì)劃。
在第二種情況中,最重要的管理工作是確保落實(shí)充分理解的流程,以便評估和決定應(yīng)該進(jìn)行哪些修改以及每種修改為總體開發(fā)進(jìn)度計(jì)劃帶來的影響如何。這里可以運(yùn)用多種項(xiàng)目管理理念和技巧。最重要的一點(diǎn)是完成上述修改評估和影響評估。
就專門的FPGA規(guī)劃和開發(fā)而言,F(xiàn)PGA的優(yōu)勢之一在于能夠多次修訂硬件平臺和多次把硬件平臺下載到原型PCB上。設(shè)計(jì)團(tuán)隊(duì)?wèi)?yīng)充分發(fā)揮這一功能的優(yōu)勢。因此建議的開發(fā)規(guī)劃是逐漸把特性添加到能夠工作的設(shè)計(jì)中。其思路是從能夠?qū)崿F(xiàn)主要通信接口的基本設(shè)計(jì)出發(fā),無需實(shí)現(xiàn)全部需求就能工作。
這樣做能夠帶來雙重好處。首先可以確保隨時(shí)有一個可工作的設(shè)計(jì),您可用來調(diào)試PCB和更大型系統(tǒng)。其次,調(diào)試實(shí)際的FPGA設(shè)計(jì)會簡單得多,因?yàn)榭梢詸z查新添加的特性,確保新添加的特性不會干擾或中斷當(dāng)前可工作的設(shè)計(jì)。
與FPGA設(shè)計(jì)開發(fā)同步,同樣重要的是為實(shí)現(xiàn)的FPGA設(shè)計(jì)準(zhǔn)備良好的仿真環(huán)境規(guī)劃。投資開發(fā)穩(wěn)健可靠的仿真環(huán)境,就可以復(fù)制現(xiàn)實(shí)數(shù)據(jù)流,在仿真中重現(xiàn)出錯條件,迅速隔離和判斷根本原因,從而不僅能減少設(shè)計(jì)缺陷,還能顯著縮短實(shí)驗(yàn)室調(diào)試時(shí)間。
開發(fā)穩(wěn)健可靠的測試仿真環(huán)境和開發(fā)FPGA本身一樣復(fù)雜,需要視同開發(fā)FPGA一樣規(guī)劃和考量。
賽靈思全球通信服務(wù)部已經(jīng)把我們的FPGA開發(fā)框架一致應(yīng)用于成百上千個FPGA設(shè)計(jì)中并不斷優(yōu)化完善。結(jié)果得到一種切實(shí)可行,成效顯著,易于理解,能廣泛地適用于各種不同開發(fā)工作的設(shè)計(jì)方法。您使用該框架開發(fā)新型FPGA設(shè)計(jì)能獲得諸多好處,其中包括準(zhǔn)確的總體開發(fā)進(jìn)度計(jì)劃、快速硬件啟動,而且最終能夠按時(shí)發(fā)布產(chǎn)品。
評論
查看更多