版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、FPG彼計(jì)流程指南刖曰本部門(mén)所承擔(dān)的FPG礎(chǔ)計(jì)任務(wù)主要是兩方面的作用:系統(tǒng)的原型實(shí)現(xiàn)和ASIC的原型驗(yàn)證。編寫(xiě)本流程的目的是:在于規(guī)范整個(gè)設(shè)計(jì)流程,實(shí)現(xiàn)開(kāi)發(fā)的合理性、一致性、高效性。形成風(fēng)格良好和完整的文檔。實(shí)現(xiàn)在FPGA同廠家之間以及從FPGA®ASIC的順利移植。便于新員工快速掌握本部門(mén)FPGA勺設(shè)計(jì)流程。由于目前所用到的FPGA器件以Altera的為主,所以下面的例子也以Altera為例,工具組合為modelsim+LeonardoSpectrum/FPGACompilerll+Quartus,但原則和方法對(duì)于其他廠家和工具也是基本適用的。1. 基于HDL的FPG礎(chǔ)計(jì)流程概述1
2、1.1 設(shè)計(jì)流程圖12. 1.2關(guān)鍵步驟的實(shí)現(xiàn)2功能仿真2邏輯綜合21.2.3前仿真31.2.4布局布線(xiàn)31.2.5后仿真(時(shí)序仿真)4VerilogHDL設(shè)計(jì)4編程風(fēng)格(CodingStyle)要求4文件4大小寫(xiě)5標(biāo)識(shí)符5參數(shù)化設(shè)計(jì)5空行和空格5對(duì)齊和縮進(jìn)5注釋52.1.8參考C語(yǔ)言的資料52.1.9可視化設(shè)計(jì)方法62.2可綜合設(shè)計(jì)63. 2.3設(shè)計(jì)目錄6邏輯仿真63.1 測(cè)試程序(testbench)74. 3.2使用預(yù)編譯庫(kù)7邏輯綜合84.1邏輯綜合的一些原則8關(guān)于LeonardoSpectrum8大規(guī)模設(shè)計(jì)的綜合84.1.3必須重視工具產(chǎn)生的警告信息84.2調(diào)用模塊的黑盒子(Black
3、box)方法810參考10修訂紀(jì)錄.1.基于HDL的FPG破計(jì)流程概述1.1設(shè)計(jì)流程圖設(shè)計(jì)定義HDL實(shí)現(xiàn)£功能仿真邏輯仿真器(4)邏輯綜合(5)前仿真邏輯綜合器邏輯仿真器(6)布局布線(xiàn)FPGAT家工具(8)靜態(tài)時(shí)序分(7)后仿真邏輯仿真器(9)在系統(tǒng)測(cè)試說(shuō)明:邏輯仿真器主要指modelsim,Verilog-XL等。邏輯綜合器主要指LeonardoSpectrum、Synplify、FPGAExpress/FPGACompiler等。FPGA廠家工具指的是如Altera的Max+PlusII、QuartusII,Xilinx的Foundation、Alliance、ISE4.1等。1
4、.2關(guān)鍵步驟的實(shí)現(xiàn)測(cè)試數(shù)據(jù)說(shuō)明:“調(diào)用模塊的行為仿真模型”指的是RTL代碼中引用的由廠家提供的宏模塊/IP,如Altera提供的LPM庫(kù)中的乘法器、存儲(chǔ)器等部件的行為模型。1.2.2邏輯綜合_些外這些外部模塊不能被綜命或無(wú)需綜合|,,但邏輯.測(cè)試數(shù)據(jù)I-Js說(shuō)明:一般來(lái)說(shuō),對(duì)FPG俄計(jì)這一步可以跳過(guò)不做,但可用于debug綜合有無(wú)問(wèn)題。1.2.4布局布線(xiàn)EDIF網(wǎng)調(diào)用模塊表/HD隔表(netli/邏輯綜合器FPGAT家工具設(shè)置布局布SD成件(標(biāo)準(zhǔn)延時(shí)格J下載/編程1.2.(后仿榆部)1=1HDLM表2.veoLSD成件設(shè)甲準(zhǔn)延時(shí)格盡:測(cè)試數(shù)據(jù)::fpga«本|測(cè)試程序:單元仿真(te
5、stI基于將來(lái)設(shè)計(jì)轉(zhuǎn)向ASIC的方便,本部門(mén)的設(shè)計(jì)統(tǒng)一采用VerilogHDL,但針對(duì)混合設(shè)計(jì)和混合仿真的趨勢(shì),所有開(kāi)發(fā)人員也應(yīng)能讀懂VHDL(1) VerilogHDL的學(xué)習(xí)可參考122.1編程風(fēng)格(CodingStyle)要求2.1.1文件每個(gè)模塊(module)一般應(yīng)存在于單獨(dú)的源文件中,通常源文件名與所包含模塊名相同。(2) 每個(gè)設(shè)計(jì)文件開(kāi)頭應(yīng)包含如下注釋內(nèi)容:年份及公司名稱(chēng)。作者。文件名。所屬項(xiàng)目。頂層模塊。模塊名稱(chēng)及其描述。修改紀(jì)錄。請(qǐng)參考標(biāo)準(zhǔn)示例程序3。2.1.2大小寫(xiě)(1) 如無(wú)特別需要,模塊名和信號(hào)名一律采用小寫(xiě)字母。(2) 為醒目起見(jiàn),常數(shù)('define定義)/參
6、數(shù)(parameter定義)采用大寫(xiě)字母。2.1.3標(biāo)識(shí)符標(biāo)識(shí)符采用傳統(tǒng)C語(yǔ)言的命名方法,即在單詞之間以"_”分開(kāi),如:max_delay、data_size等等。(1) 采用有意義的、能反映對(duì)象特征、作用和性質(zhì)的單詞命名標(biāo)識(shí)符,以增強(qiáng)程序的可讀性。(2) 為避免標(biāo)識(shí)符過(guò)于冗長(zhǎng),對(duì)較長(zhǎng)單詞的應(yīng)當(dāng)采用適當(dāng)?shù)目s寫(xiě)形式,如用buff'代替bufferena代替enableaddr'代替address'等。2.1.4參數(shù)化設(shè)計(jì)為了源代碼的可讀性和可移植性起見(jiàn),不要在程序中直接寫(xiě)特定數(shù)值,盡可能采用'define語(yǔ)句或paramater語(yǔ)句定義常數(shù)或參數(shù)。(1)
7、 2.1.5空行和空格適當(dāng)?shù)卦诖a的不同部分中插入空行,避免因程序擁擠不利閱讀。(2) 在表達(dá)式中插入空格,避免代碼擁擠,包括:賦值符號(hào)兩邊要有空格;雙目運(yùn)算符兩邊要有空格;單目運(yùn)算符和操作數(shù)之間可沒(méi)有空格,示例如下:a<=b;c<=a+b;if(a=b)then.a<=a&c;2.1.6對(duì)齊和縮進(jìn)(1) 不要使用連續(xù)的空格來(lái)進(jìn)行語(yǔ)句的對(duì)齊。(2) 采用制表符Tab對(duì)語(yǔ)句對(duì)齊和縮進(jìn),Tab鍵采用4個(gè)字符寬度,可在編輯器中設(shè)置。(3) 各種嵌套語(yǔ)句尤其是if.else語(yǔ)句,必須嚴(yán)格的逐層縮進(jìn)對(duì)齊。2.1.7注釋必須加入詳細(xì)、清晰的注釋行以增強(qiáng)代碼的可讀性和可移植性,注釋
8、內(nèi)容占代碼篇幅不應(yīng)少于30%2.1.8參考C語(yǔ)言的資料要形成良好的編程風(fēng)格,有許多細(xì)節(jié)需要注意,可以參考資料4,雖然它是針對(duì)C語(yǔ)言的討論,但由于VerilogHDL和C語(yǔ)言的形式非常近似,所以里面提到的很多原則都是可以借鑒的。2.1.9可視化設(shè)計(jì)方法為提高設(shè)計(jì)效率和適應(yīng)協(xié)同設(shè)計(jì)的方式,可采用可視化的設(shè)計(jì)方法,MentorGrahpics的Renoir軟件提供了非常好的設(shè)計(jì)模式。2.2可綜合設(shè)計(jì)用HDL實(shí)現(xiàn)電路,設(shè)計(jì)人員對(duì)可綜合風(fēng)格的RTL描述的掌握不僅會(huì)影響到仿真和綜合的一致性,也是邏輯綜合后電路可靠性和質(zhì)量好壞最主要的因素,對(duì)此應(yīng)當(dāng)予以充分的重視。學(xué)習(xí)可綜合的HDL請(qǐng)參考567學(xué)習(xí)設(shè)計(jì)的模塊
9、劃分請(qǐng)參考8。2.3設(shè)計(jì)目錄采用合理、條理清晰的設(shè)計(jì)目錄結(jié)構(gòu)有助于提高設(shè)計(jì)的效率、可維護(hù)性。建議采用類(lèi)似下面的目錄結(jié)構(gòu):simparsynsrc3.邏輯仿真.srcsynsim,par,、.src考慮到性能醐用性,首選曲邏輯仿真器是(1)synsimparMentorGraphics的modelsim。3.1 測(cè)試程序(testbench)測(cè)試程序?qū)τ谠O(shè)計(jì)功能和時(shí)序的驗(yàn)證有著舉足輕重的影響,測(cè)試激勵(lì)的完備性和真實(shí)性是關(guān)鍵所在,有以下原則須遵循:(1) 測(cè)試激勵(lì)輸入和響應(yīng)輸出采集的時(shí)序應(yīng)當(dāng)兼顧功能仿真(無(wú)延時(shí))和時(shí)序仿真(有延時(shí))的情況。(2) 對(duì)于周期較多的測(cè)試,為提高效率,盡可能采用程序語(yǔ)句
10、來(lái)判斷響應(yīng)與標(biāo)準(zhǔn)結(jié)果是否一致,給出成功或出錯(cuò)標(biāo)志,而不是通過(guò)觀察波形來(lái)判斷。(3) 采用基于文件的測(cè)試是很好的辦法,即由matlab或spw等系統(tǒng)工具產(chǎn)生測(cè)試數(shù)據(jù),測(cè)試程序?qū)⑵渥x入產(chǎn)生激勵(lì),再把響應(yīng)結(jié)果寫(xiě)入到文件,再交給上述工具進(jìn)行處理或分析。(4) 仿真器支持幾乎所有的VerilogHDL語(yǔ)法,而不僅僅是常用的RTL的描述,應(yīng)當(dāng)利用這一點(diǎn)使測(cè)試程序盡可能簡(jiǎn)潔、清楚,篇幅長(zhǎng)的要盡量采用task來(lái)描述。3.2使用預(yù)編譯庫(kù)在進(jìn)行功能仿真和后仿真時(shí)都需要某些模塊的行為仿真模型和門(mén)級(jí)仿真模型,如AlteraQuartus里的220model.v(LPMBl塊行為仿真模型)和apex20ke_atoms
11、.v(20KE系列門(mén)級(jí)仿真模型),為避免在不同的設(shè)計(jì)目錄中多次編譯這些模型,應(yīng)當(dāng)采用一次編譯,多次使用的方法。具體做法如下(以20KE門(mén)級(jí)庫(kù)為例):1:在某個(gè)工作目錄下新建一庫(kù)名apex20ke,將apex20ke_atoms.v編譯到其中。2:在圖形界面中的LoadDesign對(duì)話(huà)框中裝入仿真設(shè)計(jì)時(shí),在Verilog標(biāo)簽下指定預(yù)編譯庫(kù)的完整路徑。(見(jiàn)下圖)4.邏輯綜合目前可用的FPGA綜合工具有MentorGraphics的LeonardoSpectrum,Synplicity的Synplify和Synopsys的FPGACompilerII/FPGAExpress,LeonardoSpec
12、trum由于性能和速度最好,成為我們首選的綜合器,F(xiàn)PGACompilerII/FPGAExpress由于可以和DesignCompiler代碼兼容也可用。見(jiàn)參考94.1邏輯綜合的一些原則HDL代碼綜合后電路質(zhì)量的好壞主要取決于三個(gè)方面:RTL實(shí)現(xiàn)是否合理、對(duì)廠家器件特點(diǎn)的理解和對(duì)綜合器掌握的程度。參考10中有比較全面的討論。4.1.1 關(guān)于LeonardoSpectrumLeonardoSpectrum對(duì)綜合的控制能力比較強(qiáng),但使用也略為復(fù)雜,故需要在使用前盡量熟悉其功能,才能取得較好的綜合結(jié)果。當(dāng)出現(xiàn)綜合結(jié)果不能滿(mǎn)足約束條件時(shí),不要急于修改設(shè)計(jì)源文件,應(yīng)當(dāng)通過(guò)綜合器提供的時(shí)序和面積分析命令
13、找出關(guān)鍵所在,然后更改綜合控制或修改代碼。在LeonardoSpectrum2000.1b以前的版本輸出的.v網(wǎng)表都不能用于仿真。4.1.1大規(guī)模設(shè)計(jì)的綜合分塊綜合當(dāng)設(shè)計(jì)規(guī)模很大時(shí),綜合也會(huì)耗費(fèi)很多時(shí)間。如果設(shè)計(jì)只更改某個(gè)模塊時(shí),可以分塊綜合。如有設(shè)計(jì)top.v包含a.v和b.v兩個(gè)模塊,當(dāng)只修改a.v的話(huà),可以先單獨(dú)綜合b.v,輸出其網(wǎng)表b.edf,編寫(xiě)一個(gè)b模塊的黑盒子接口b_syn.v,每次修改a.v后只綜合top.v、a.v、b_syn.v,將綜合后的網(wǎng)表和b.edf送去布線(xiàn),可以節(jié)約綜合b模塊的時(shí)間。采用腳本命令當(dāng)設(shè)計(jì)規(guī)模比較大時(shí),綜合控制也許會(huì)比較復(fù)雜,可以考慮采用腳本控制文件的方
14、式進(jìn)行綜合控制,modelsim、LeonardoSpectrum和Quartus者K支持TCL(ToolCommandLanguage)語(yǔ)言,采用腳本控制可以提供比圖形界面更靈活和更方便的控制手段。4.1.3必須重視工具產(chǎn)生的警告信息綜合工具對(duì)設(shè)計(jì)進(jìn)行處理可能會(huì)產(chǎn)生各種警告信息,有些是可以忽略的,但設(shè)計(jì)者應(yīng)該盡量去除,不去除必須確認(rèn)每條警告的含義,避免因此使設(shè)計(jì)的實(shí)現(xiàn)產(chǎn)生隱患。這個(gè)原則對(duì)仿真和布局布線(xiàn)同樣適用。4.2調(diào)用模塊的黑盒子(Blackbox)方法使用黑盒子方法的原因主要有兩點(diǎn):一是HDL代碼中調(diào)用了一些FPGAT家提供的模塊(如Altera的LPM模塊)或第三方提供的IP,這些模塊
15、不需要綜合,而且有些綜合器也不能綜合(如FPGACompilerII/FPGAExpress可以綜合包含LPM的代碼而LeonardoSpectrum不能)。因此須提供一個(gè)黑盒子接口給綜合器,所調(diào)用的模塊到布局布線(xiàn)時(shí)才進(jìn)行連接。二是方便代碼的移植,由于廠家提供的模塊或第三方提供的IP通常都是與工藝有關(guān)的,直接在代碼中調(diào)用的話(huà)將不利于修改,影響代碼移植。下面以調(diào)用Altera的LPM庫(kù)中的乘法器為例來(lái)說(shuō)明。調(diào)用這樣一個(gè)模塊需要這樣一個(gè)文件:mult8x8.v(可由Quartus的MegaWizerPlug-inManager產(chǎn)生),代碼如下:/mult8x8.vmodulemult8x8(dataa,datab,result);input7:0dataa;input7:0datab;output15:0result;/exemplartranslate_off/synopsystranslate_offlpm_multlpm_mult_component(.dataa(dataa),.datab(datab),.aclr(1'b0),.clock(1'b0),.clken(1'b0),.sum(1'b0),.result(resu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度輪胎回收利用合作框架協(xié)議3篇
- 2025年新型城鎮(zhèn)化項(xiàng)目委托代理購(gòu)房合同3篇
- 二零二四年度住宅小區(qū)物業(yè)管理權(quán)轉(zhuǎn)讓及增值服務(wù)合同9篇
- 二零二五版鮮活蔬菜一次性冷鏈運(yùn)輸協(xié)議3篇
- 2025版旅游度假村導(dǎo)游人員勞動(dòng)合同范本4篇
- 養(yǎng)老院志愿者服務(wù)協(xié)議范本(2025版)2篇
- 2025年度個(gè)人砌磚工程承包施工安全防護(hù)措施合同范本2篇
- 2025版窗簾設(shè)計(jì)制作及物流配送服務(wù)合同3篇
- 2025年度土地整治及生態(tài)修復(fù)協(xié)議3篇
- 二零二五年度大慶市農(nóng)村房屋買(mǎi)賣(mài)合同參考文本4篇
- 地測(cè)防治水技能競(jìng)賽理論考試題庫(kù)(含答案)
- 以諾書(shū)-中英對(duì)照
- 三角形與全等三角形復(fù)習(xí)教案 人教版
- 《朝天子·詠喇叭-王磐》核心素養(yǎng)目標(biāo)教學(xué)設(shè)計(jì)、教材分析與教學(xué)反思-2023-2024學(xué)年初中語(yǔ)文統(tǒng)編版
- 成長(zhǎng)小說(shuō)智慧樹(shù)知到期末考試答案2024年
- 紅色革命故事《王二小的故事》
- 海洋工程用高性能建筑鋼材的研發(fā)
- 英語(yǔ)48個(gè)國(guó)際音標(biāo)課件(單詞帶聲、附有聲國(guó)際音標(biāo)圖)
- GB/T 6892-2023一般工業(yè)用鋁及鋁合金擠壓型材
- 冷庫(kù)安全管理制度
- 2023同等學(xué)力申碩統(tǒng)考英語(yǔ)考試真題
評(píng)論
0/150
提交評(píng)論