FPGA設(shè)計(jì)流程指南_第1頁
FPGA設(shè)計(jì)流程指南_第2頁
FPGA設(shè)計(jì)流程指南_第3頁
FPGA設(shè)計(jì)流程指南_第4頁
FPGA設(shè)計(jì)流程指南_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、FPGAA設(shè)計(jì)流流程指南南前言本部門門所承擔(dān)擔(dān)的FPPGA設(shè)設(shè)計(jì)任務(wù)務(wù)主要是是兩方面面的作用用:系統(tǒng)統(tǒng)的原型型實(shí)現(xiàn)和和ASIIC的原原型驗(yàn)證證。編寫寫本流程程的目的的是:在于規(guī)范范整個(gè)設(shè)設(shè)計(jì)流程程,實(shí)現(xiàn)現(xiàn)開發(fā)的的合理性性、一致致性、高高效性。形成風(fēng)格格良好和和完整的的文檔。實(shí)現(xiàn)在FFPGAA不同廠廠家之間間以及從從FPGGA到AASICC的順利利移植。便于新員員工快速速掌握本本部門FFPGAA的設(shè)計(jì)計(jì)流程。由于目前前所用到到的FPPGA器器件以AAlteera的的為主,所以下下面的例例子也以以Altteraa為例,工具組組合為 moddelssim + LLeonnarddoSppecttru

2、mm/FPPGACComppileerIII + Quaartuus,但但原則和和方法對對于其他他廠家和和工具也也是基本本適用的的。V目 錄錄TOC o 1-3 h z1. 基基于HDDL的FPGGA設(shè)計(jì)計(jì)流程概概述11.1 設(shè)計(jì)流流程圖11.2 關(guān)鍵步步驟的實(shí)實(shí)現(xiàn)21.2.1 功功能仿真真21.2.2 邏邏輯綜合合21.2.3 前前仿真31.2.4 布布局布線線31.2.5 后后仿真(時(shí)序仿仿真)42. VVeriilogg HDDL設(shè)計(jì)計(jì)42.1 編程風(fēng)風(fēng)格(CCodiing Styyle)要求42.1.1 文文件42.1.2 大大小寫52.1.3 標(biāo)標(biāo)識(shí)符52.1.4 參參數(shù)化設(shè)設(shè)計(jì)52

3、.1.5 空空行和空空格52.1.6 對對齊和縮縮進(jìn)52.1.7 注注釋52.1.8 參參考C語言的的資料52.1.9 可可視化設(shè)設(shè)計(jì)方法法62.2 可綜合合設(shè)計(jì)62.3 設(shè)計(jì)目目錄63. 邏邏輯仿真真63.1 測試程程序(ttestt beenchh)73.2 使用預(yù)預(yù)編譯庫庫74. 邏邏輯綜合合84.1 邏輯綜綜合的一一些原則則84.1.1 關(guān)關(guān)于LeeonaardooSpeectrrum84.1.1 大大規(guī)模設(shè)設(shè)計(jì)的綜綜合84.1.3 必必須重視視工具產(chǎn)產(chǎn)生的警警告信息息84.2 調(diào)用模模塊的黑黑盒子(Blaack boxx)方法法8參考110修訂紀(jì)錄錄101. 基基于HDDL的FFPG

4、AA設(shè)計(jì)流流程概述述1.1 設(shè)計(jì)流流程圖(1)設(shè)計(jì)定義(2)HDL實(shí)現(xiàn)邏輯仿真器(3)功能仿真邏輯綜合器(4)邏輯綜合邏輯仿真器(5)前仿真FPGA廠家工具(6)布局布線(8)靜態(tài)時(shí)序分析邏輯仿真器(7)后仿真(9)在系統(tǒng)測試說明:邏輯仿真真器主要要指moodellsimm,Veerillog-XL等等。邏輯綜合合器主要要指LeeonaardooSpeectrrum、Synnpliify、FPGGA EExprresss/FPPGA Commpiller等等。FPGAA廠家工工具指的的是如AAlteera的的Maxx+PllusIII、QQuarrtussII,Xillinxx的Fooundd

5、atiion、Allliannce、ISEE4.11等。1.2 關(guān)鍵步步驟的實(shí)實(shí)現(xiàn)1.2.1 功功能仿真真RTL代碼調(diào)用模塊的行為仿真模型測試程序(test bench)測試數(shù)據(jù)邏輯仿真器說明:“調(diào)用模模塊的行行為仿真真模型”指的是是RTLL代碼中中引用的的由廠家家提供的的宏模塊塊/IPP,如AAlteera 提供的的LPMM庫中的的乘法器器、存儲(chǔ)儲(chǔ)器等部部件的行行為模型型。1.2.2 邏邏輯綜合合設(shè)置綜合目標(biāo)和約束條件調(diào)用模塊的黑盒子接口RTL代碼邏輯綜合器HDL網(wǎng)表(netlist)EDIF網(wǎng)表(netlist)說明:“調(diào)用模模塊的黑黑盒子接接口”的導(dǎo)入入,是由由于RTTL代碼碼調(diào)用了了一

6、些外外部模塊塊,而這這些外部部模塊不不能被綜綜合或無無需綜合合,但邏邏輯綜合合器需要要其接口口的定義義來檢查查邏輯并并保留這這些模塊塊的接口口。1.2.3 前前仿真邏輯綜合器調(diào)用模塊的行為仿真模型測試數(shù)據(jù)測試程序(test bench)HDL網(wǎng)表(netlist)邏輯仿真器說明:一般來來說,對對FPGGA設(shè)計(jì)計(jì)這一步步可以跳跳過不做做,但可可用于ddebuug綜合合有無問問題。1.2.4 布布局布線線邏輯綜合器設(shè)置布局布線約束條件FPGA廠家工具EDIF網(wǎng)表(netlist)調(diào)用模塊的綜合模型SDF文件(標(biāo)準(zhǔn)延時(shí)格式)HDL網(wǎng)表(netlist)下載/編程文件1.2.5 后后仿真(時(shí)序仿仿真)

7、測試數(shù)據(jù)SDF文件(標(biāo)準(zhǔn)延時(shí)格式)FPGA基本單元仿真模型測試程序(test bench)FPGA廠家工具HDL網(wǎng)表(netlist)2. VVeriilogg HDDL設(shè)計(jì)計(jì)基于將將來設(shè)計(jì)計(jì)轉(zhuǎn)向AASICC的方便便,本部部門的設(shè)設(shè)計(jì)統(tǒng)一一采用VVeriilogg HDDL,但但針對混混合設(shè)計(jì)計(jì)和混合合仿真的的趨勢,所有開開發(fā)人員員也應(yīng)能能讀懂VVHDLL。Veriilogg HDDL的學(xué)學(xué)習(xí)可參參考1122。2.1 編程風(fēng)風(fēng)格(CCodiing Styyle)要求2.1.1 文文件每個(gè)模塊塊(moodulle)一一般應(yīng)存存在于單單獨(dú)的源源文件中中,通常常源文件件名與所所包含模模塊名相相同。每

8、個(gè)設(shè)計(jì)計(jì)文件開開頭應(yīng)包包含如下下注釋內(nèi)內(nèi)容:年份及公公司名稱稱。作者。文件名。所屬項(xiàng)目目。頂層模塊塊。模塊名稱稱及其描描述。修改紀(jì)錄錄。請參考標(biāo)標(biāo)準(zhǔn)示例例程序3。2.1.2 大大小寫如無特別別需要,模塊名名和信號(hào)號(hào)名一律律采用小小寫字母母。為醒目起起見,常常數(shù)(deffinee定義)/參數(shù)數(shù)(paarammeteer定義義)采用用大寫字字母。2.1.3 標(biāo)標(biāo)識(shí)符標(biāo)識(shí)符采采用傳統(tǒng)統(tǒng)C語言言的命名名方法,即在單單詞之間間以“_”分開,如:mmax_dellay、datta_ssizee等等。采用有意意義的、能反映映對象特特征、作作用和性性質(zhì)的單單詞命名名標(biāo)識(shí)符符,以增增強(qiáng)程序序的可讀讀性。為避免標(biāo)

9、標(biāo)識(shí)符過過于冗長長,對較較長單詞詞的應(yīng)當(dāng)當(dāng)采用適適當(dāng)?shù)目s縮寫形式式,如用用bufff代替buffferr,enaa代替enaablee,adddr代替adddresss等。2.1.4 參參數(shù)化設(shè)設(shè)計(jì)為了源源代碼的的可讀性性和可移移植性起起見,不不要在程程序中直直接寫特特定數(shù)值值,盡可可能采用用deefinne語句句或paarammateer語句句定義常常數(shù)或參參數(shù)。2.1.5 空空行和空空格適當(dāng)?shù)卦谠诖a的的不同部部分中插插入空行行,避免免因程序序擁擠不不利閱讀讀。在表達(dá)式式中插入入空格,避免代代碼擁擠擠,包括括:賦值符號(hào)號(hào)兩邊要要有空格格;雙目運(yùn)算算符兩邊邊要有空空格;單目運(yùn)算算符和操操作數(shù)

10、之之間可沒沒有空格格,示例如下下:a = b;c = a + b;if (a = bb) tthenn .a = aa & cc;2.1.6 對對齊和縮縮進(jìn)不要使用用連續(xù)的的空格來來進(jìn)行語語句的對對齊。采用制表表符Taab對語語句對齊齊和縮進(jìn)進(jìn),Taab鍵采采用4個(gè)個(gè)字符寬寬度,可可在編輯輯器中設(shè)設(shè)置。各種嵌套套語句尤尤其是iif.ellse語語句,必必須嚴(yán)格格的逐層層縮進(jìn)對對齊。2.1.7 注注釋必須加入入詳細(xì)、清晰的的注釋行行以增強(qiáng)強(qiáng)代碼的的可讀性性和可移移植性,注釋內(nèi)內(nèi)容占代代碼篇幅幅不應(yīng)少少于300%。2.1.8 參參考C語語言的資資料要形成成良好的的編程風(fēng)風(fēng)格,有有許多細(xì)細(xì)節(jié)需要要注

11、意,可以參參考資料料4,雖然然它是針針對C語語言的討討論,但但由于VVeriilogg HDDL和CC語言的的形式非非常近似似,所以以里面提提到的很很多原則則都是可可以借鑒鑒的。2.1.9 可可視化設(shè)設(shè)計(jì)方法法為提高高設(shè)計(jì)效效率和適適應(yīng)協(xié)同同設(shè)計(jì)的的方式,可采用用可視化化的設(shè)計(jì)計(jì)方法,Menntorr Grrahppicss的Reenoiir軟件件提供了了非常好好的設(shè)計(jì)計(jì)模式。2.2 可綜合合設(shè)計(jì)用HDDL實(shí)現(xiàn)現(xiàn)電路,設(shè)計(jì)人人員對可可綜合風(fēng)風(fēng)格的RRTL描描述的掌掌握不僅僅會(huì)影響響到仿真真和綜合合的一致致性,也也是邏輯輯綜合后后電路可可靠性和和質(zhì)量好好壞最主主要的因因素,對對此應(yīng)當(dāng)當(dāng)予以充充分

12、的重重視。學(xué)習(xí)可可綜合的的HDLL請參考考 5566 7。學(xué)習(xí)設(shè)設(shè)計(jì)的模模塊劃分分請參考考8。2.3 設(shè)計(jì)目目錄采用合合理、條條理清晰晰的設(shè)計(jì)計(jì)目錄結(jié)結(jié)構(gòu)有助助于提高高設(shè)計(jì)的的效率、可維護(hù)護(hù)性。建建議采用用類似下下面的目目錄結(jié)構(gòu)構(gòu):(1)designsrc(源代碼)syn(綜合)sim(仿真)par(布局布線)(2)designver1ver2src(源代碼)syn(綜合)sim(仿真)par(布局布線)src(源代碼)syn(綜合)sim(仿真)par(布局布線)3. 邏邏輯仿真真考慮到到性能和和易用性性,首選選的邏輯輯仿真器器是Meentoor GGrapphiccs的mmodeelsii

13、m。3.1 測試程程序(ttestt beenchh)測試程程序?qū)τ谟谠O(shè)計(jì)功功能和時(shí)時(shí)序的驗(yàn)驗(yàn)證有著著舉足輕輕重的影影響,測測試激勵(lì)勵(lì)的完備備性和真真實(shí)性是是關(guān)鍵所所在,有有以下原原則須遵遵循:測試激勵(lì)勵(lì)輸入和和響應(yīng)輸輸出采集集的時(shí)序序應(yīng)當(dāng)兼兼顧功能能仿真(無延時(shí)時(shí))和時(shí)時(shí)序仿真真(有延延時(shí))的的情況。對于周期期較多的的測試,為提高高效率,盡可能能采用程程序語句句來判斷斷響應(yīng)與與標(biāo)準(zhǔn)結(jié)結(jié)果是否否一致,給出成成功或出出錯(cuò)標(biāo)志志,而不不是通過過觀察波波形來判判斷。采用基于于文件的的測試是是很好的的辦法,即由mmatllab或或spww等系統(tǒng)統(tǒng)工具產(chǎn)產(chǎn)生測試試數(shù)據(jù),測試程程序?qū)⑵淦渥x入產(chǎn)產(chǎn)生激勵(lì)勵(lì),

14、再把把響應(yīng)結(jié)結(jié)果寫入入到文件件,再交交給上述述工具進(jìn)進(jìn)行處理理或分析析。仿真器支支持幾乎乎所有的的Verriloog HHDL語語法,而而不僅僅僅是常用用的RTTL的描描述,應(yīng)應(yīng)當(dāng)利用用這一點(diǎn)點(diǎn)使測試試程序盡盡可能簡簡潔、清清楚,篇篇幅長的的要盡量量采用ttaskk來描述述。3.2 使用預(yù)預(yù)編譯庫庫在進(jìn)行行功能仿仿真和后后仿真時(shí)時(shí)都需要要某些模模塊的行行為仿真真模型和和門級仿仿真模型型,如AAlteera Quaartuus里的的2200moddel.v(LLPM模模塊行為為仿真模模型)和和apeex200ke_atooms.v(220KEE系列門門級仿真真模型),為避避免在不不同的設(shè)設(shè)計(jì)目錄

15、錄中多次次編譯這這些模型型,應(yīng)當(dāng)當(dāng)采用一一次編譯譯,多次次使用的的方法。具體做做法如下下(以220KEE門級庫庫為例):1:在在某個(gè)工工作目錄錄下新建建一庫名名 appex220kee,將aapexx20kke_aatomms.vv編譯到到其中。2:在在圖形界界面中的的Loaad DDesiign對對話框中中裝入仿仿真設(shè)計(jì)計(jì)時(shí),在在Verriloog 標(biāo)標(biāo)簽下指指定預(yù)編編譯庫的的完整路路徑。(見下圖圖)4. 邏邏輯綜合合目前可可用的FFPGAA綜合工工具有MMenttor Graaphiics 的 LLeonnarddoSppecttrumm,Syynplliciity的的Synnpliify

16、和和Synnopssys 的FPPGA CommpillerIII/FFPGAA Exxpreess,LeoonarrdoSSpecctruum由于于性能和和速度最最好,成成為我們們首選的的綜合器器,F(xiàn)PPGA CommpillerIII/FFPGAA Exxpreess由由于可以以和Deesiggn CComppileer代碼碼兼容也也可用。見參考考94.1 邏輯綜綜合的一一些原則則HDLL代碼綜綜合后電電路質(zhì)量量的好壞壞主要取取決于三三個(gè)方面面:RTTL實(shí)現(xiàn)現(xiàn)是否合合理、對對廠家器器件特點(diǎn)點(diǎn)的理解解和對綜綜合器掌掌握的程程度。參參考110中中有比較較全面的的討論。4.1.1 關(guān)關(guān)于Leeo

17、naardooSpeectrrumLeoonarrdoSSpecctruum對綜綜合的控控制能力力比較強(qiáng)強(qiáng),但使使用也略略為復(fù)雜雜,故需需要在使使用前盡盡量熟悉悉其功能能,才能能取得較較好的綜綜合結(jié)果果。當(dāng)出現(xiàn)現(xiàn)綜合結(jié)結(jié)果不能能滿足約約束條件件時(shí),不不要急于于修改設(shè)設(shè)計(jì)源文文件,應(yīng)應(yīng)當(dāng)通過過綜合器器提供的的時(shí)序和和面積分分析命令令找出關(guān)關(guān)鍵所在在,然后后更改綜綜合控制制或修改改代碼。在LeeonaardooSpeectrrum 20000.11b以前前的版本本輸出的的 .vv 網(wǎng)表表都不能能用于仿仿真。4.1.1 大大規(guī)模設(shè)設(shè)計(jì)的綜綜合分塊綜合合當(dāng)設(shè)計(jì)計(jì)規(guī)模很很大時(shí),綜合也也會(huì)耗費(fèi)費(fèi)很多時(shí)時(shí)間

18、。如如果設(shè)計(jì)計(jì)只更改改某個(gè)模模塊時(shí),可以分分塊綜合合。如有有設(shè)計(jì) topp.v 包含 a.vv和b.v兩個(gè)個(gè)模塊,當(dāng)只修修改a.v的話話,可以以先單獨(dú)獨(dú)綜合bb.v,輸出其其網(wǎng)表bb.eddf,編編寫一個(gè)個(gè)b模塊塊的黑盒盒子接口口b_ssyn.v,每每次修改改a.vv后只綜綜合toop.vv、a.v、bb_syyn.vv,將綜綜合后的的網(wǎng)表和和b.eedf送送去布線線,可以以節(jié)約綜綜合b模模塊的時(shí)時(shí)間。采用腳本本命令當(dāng)設(shè)計(jì)規(guī)規(guī)模比較較大時(shí),綜合控控制也許許會(huì)比較較復(fù)雜,可以考考慮采用用腳本控控制文件件的方式式進(jìn)行綜綜合控制制,moodellsimm、LeeonaardooSpeectrrum和

19、和Quaartuus都支支持TCCL(TTooll Coommaand Lannguaage)語言,采用腳腳本控制制可以提提供比圖圖形界面面更靈活活和更方方便的控控制手段段。4.1.3 必必須重視視工具產(chǎn)產(chǎn)生的警警告信息息綜合工工具對設(shè)設(shè)計(jì)進(jìn)行行處理可可能會(huì)產(chǎn)產(chǎn)生各種種警告信信息,有有些是可可以忽略略的,但但設(shè)計(jì)者者應(yīng)該盡盡量去除除,不去去除必須須確認(rèn)每每條警告告的含義義,避免免因此使使設(shè)計(jì)的的實(shí)現(xiàn)產(chǎn)產(chǎn)生隱患患。這個(gè)原原則對仿仿真和布布局布線線同樣適適用。4.2 調(diào)用模模塊的黑黑盒子(Blaack boxx)方法法使用黑黑盒子方方法的原原因主要要有兩點(diǎn)點(diǎn):一是HHDL代代碼中調(diào)調(diào)用了一一些FP

20、PGA廠廠家提供供的模塊塊(如AAlteera的的LPMM模塊)或第三三方提供供的IPP,這些些模塊不不需要綜綜合,而而且有些些綜合器器也不能能綜合(如FPPGA CommpillerIII/FFPGAA Exxpreess可可以綜合合包含LLPM的的代碼而而LeoonarrdoSSpecctruum不能能)。因因此須提提供一個(gè)個(gè)黑盒子子接口給給綜合器器,所調(diào)調(diào)用的模模塊到布布局布線線時(shí)才進(jìn)進(jìn)行連接接。二是方方便代碼碼的移植植,由于于廠家提提供的模模塊或第第三方提提供的IIP通常常都是與與工藝有有關(guān)的,直接在在代碼中中調(diào)用的的話將不不利于修修改,影影響代碼碼移植。下面以以調(diào)用AAlteera的的LPMM庫中的的乘法器器為例來來說明。調(diào)用這這樣一個(gè)個(gè)模塊需需要這樣樣一個(gè)文文件:mmultt8x88.v(可由QQuarrtuss的MeegaWWizeer PPl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論