版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
FPGA設(shè)計流程與功能實現(xiàn)前言 本部門所承擔(dān)的FPGA設(shè)計任務(wù)重要是兩方面的作用:系統(tǒng)的原型實現(xiàn)和ASIC的原型驗證。編寫本流程的目的是:在于規(guī)范整個設(shè)計流程,實現(xiàn)開發(fā)的合理性、一致性、高效性。形成風(fēng)格良好和完整的文檔。實現(xiàn)在FPGA不同廠家之間以及從FPGA到ASIC的順利移植。便于新員工快速掌握本部門FPGA的設(shè)計流程。由于目前所用到的FPGA器件以Altera的為主,所以下面的例子也以Altera為例,工具組合為modelsim+LeonardoSpectrum/FPGACompilerII+Quartus,但原則和方法對于其他廠家和工具也是基本合用的。
目錄TOC\o"1-3"\h\z1.基于HDL的FPGA設(shè)計流程概述 11.1設(shè)計流程圖 11.2關(guān)鍵環(huán)節(jié)的實現(xiàn) 21.2.1功能仿真 21.2.2邏輯綜合 21.2.3前仿真 31.2.4布局布線 31.2.5后仿真(時序仿真) 42.VerilogHDL設(shè)計 42.1編程風(fēng)格(CodingStyle)規(guī)定 42.1.1文獻 42.1.2大小寫 52.1.3標(biāo)記符 52.1.4參數(shù)化設(shè)計 52.1.5空行和空格 52.1.6對齊和縮進 52.1.7注釋 52.1.8參考C語言的資料 52.1.9可視化設(shè)計方法 62.2可綜合設(shè)計 62.3設(shè)計目錄 63.邏輯仿真 63.1測試程序(testbench) 73.2使用預(yù)編譯庫 74.邏輯綜合 84.1邏輯綜合的一些原則 84.1.1關(guān)于LeonardoSpectrum 84.1.1大規(guī)模設(shè)計的綜合 84.1.3必須重視工具產(chǎn)生的警告信息 84.2調(diào)用模塊的黑盒子(Blackbox)方法 8參考 10修訂紀(jì)錄 101.基于HDL的FPGA設(shè)計流程概述1.1設(shè)計流程圖(1)設(shè)計定義(1)設(shè)計定義(2)HDL實現(xiàn)(2)HDL實現(xiàn)邏輯仿真器(3)功能仿真邏輯仿真器(3)功能仿真邏輯綜合器(4)邏輯綜合邏輯綜合器(4)邏輯綜合邏輯仿真器(5)前仿真邏輯仿真器(5)前仿真FPGA廠家工具(6)布局布線FPGA廠家工具(6)布局布線(8)靜態(tài)時序分析邏輯仿真器(7)后仿真(8)靜態(tài)時序分析邏輯仿真器(7)后仿真(9)在系統(tǒng)測試(9)在系統(tǒng)測試說明:邏輯仿真器重要指modelsim,Verilog-XL等。邏輯綜合器重要指LeonardoSpectrum、Synplify、FPGAExpress/FPGACompiler等。FPGA廠家工具指的是如Altera的Max+PlusII、QuartusII,Xilinx的Foundation、Alliance、ISE4.1等。1.2關(guān)鍵環(huán)節(jié)的實現(xiàn)1.2.1功能仿真RTL代碼調(diào)用模塊的行為仿真模型測試程序RTL代碼調(diào)用模塊的行為仿真模型測試程序(testbench)測試數(shù)據(jù)邏輯仿真器邏輯仿真器說明: “調(diào)用模塊的行為仿真模型”指的是RTL代碼中引用的由廠家提供的宏模塊/IP,如Altera提供的LPM庫中的乘法器、存儲器等部件的行為模型。1.2.2邏輯綜合設(shè)立綜合目的和約束條件調(diào)用模塊的黑盒子接口設(shè)立綜合目的和約束條件調(diào)用模塊的黑盒子接口RTL代碼邏輯綜合器邏輯綜合器HDL網(wǎng)表(netlist)HDL網(wǎng)表(netlist)EDIF網(wǎng)表(netlist)說明:“調(diào)用模塊的黑盒子接口”的導(dǎo)入,是由于RTL代碼調(diào)用了一些外部模塊,而這些外部模塊不能被綜合或無需綜合,但邏輯綜合器需要其接口的定義來檢查邏輯并保存這些模塊的接口。1.2.3前仿真邏輯綜合器調(diào)用模塊的行為仿真模型測試數(shù)據(jù)測試程序(testbench)HDL網(wǎng)表(netlist)邏輯仿真器邏輯綜合器調(diào)用模塊的行為仿真模型測試數(shù)據(jù)測試程序(testbench)HDL網(wǎng)表(netlist)邏輯仿真器說明: 一般來說,對FPGA設(shè)計這一步可以跳過不做,但可用于debug綜合有無問題。1.2.4布局布線邏輯綜合器邏輯綜合器設(shè)立布局布線約束條件設(shè)立布局布線約束條件FPGA廠家工具EDIF網(wǎng)表(netlist)調(diào)用模塊的綜合模型FPGA廠家工具EDIF網(wǎng)表(netlist)調(diào)用模塊的綜合模型SDF文獻(標(biāo)準(zhǔn)延時格式)SDF文獻(標(biāo)準(zhǔn)延時格式)HDL網(wǎng)表(netlist)下載/編程文獻下載/編程文獻1.2.5后仿真(時序仿真)測試數(shù)據(jù)測試數(shù)據(jù)SDF文獻(標(biāo)準(zhǔn)延時格式)FPGA基本單元仿真模型測試程序(testbench)FPGA廠家工具HDL網(wǎng)表SDF文獻(標(biāo)準(zhǔn)延時格式)FPGA基本單元仿真模型測試程序(testbench)FPGA廠家工具HDL網(wǎng)表(netlist)邏輯仿真器邏輯仿真器2.VerilogHDL設(shè)計 基于將來設(shè)計轉(zhuǎn)向ASIC的方便,本部門的設(shè)計統(tǒng)一采用VerilogHDL,但針對混合設(shè)計和混合仿真的趨勢,所有開發(fā)人員也應(yīng)能讀懂VHDL。VerilogHDL的學(xué)習(xí)可參考[1][2]。2.1編程風(fēng)格(CodingStyle)規(guī)定2.1.1文獻每個模塊(module)一般應(yīng)存在于單獨的源文獻中,通常源文獻名與所包含模塊名相同。每個設(shè)計文獻開頭應(yīng)包含如下注釋內(nèi)容:年份及公司名稱。作者。文獻名。所屬項目。頂層模塊。模塊名稱及其描述。修改紀(jì)錄。請參考標(biāo)準(zhǔn)示例程序[3]。2.1.2大小寫如無特別需要,模塊名和信號名一律采用小寫字母。為醒目起見,常數(shù)(`define定義)/參數(shù)(parameter定義)采用大寫字母。2.1.3標(biāo)記符標(biāo)記符采用傳統(tǒng)C語言的命名方法,即在單詞之間以“_”分開,如:max_delay、data_size等等。采用故意義的、能反映對象特性、作用和性質(zhì)的單詞命名標(biāo)記符,以增強程序的可讀性。為避免標(biāo)記符過于冗長,對較長單詞的應(yīng)當(dāng)采用適當(dāng)?shù)目s寫形式,如用‘buff’代替‘buffer’,‘ena’代替‘enable’,‘a(chǎn)ddr’代替‘a(chǎn)ddress’等。2.1.4參數(shù)化設(shè)計 為了源代碼的可讀性和可移植性起見,不要在程序中直接寫特定數(shù)值,盡也許采用`define語句或paramater語句定義常數(shù)或參數(shù)。2.1.5空行和空格適本地在代碼的不同部分中插入空行,避免因程序擁擠不利閱讀。在表達(dá)式中插入空格,避免代碼擁擠,涉及:賦值符號兩邊要有空格;雙目運算符兩邊要有空格;單目運算符和操作數(shù)之間可沒有空格,示例如下:a<=b;c<=a+b;if(a==b)then...a<=~a&c;2.1.6對齊和縮進不要使用連續(xù)的空格來進行語句的對齊。采用制表符Tab對語句對齊和縮進,Tab鍵采用4個字符寬度,可在編輯器中設(shè)立。各種嵌套語句特別是if...else語句,必須嚴(yán)格的逐層縮進對齊。2.1.7注釋必須加入具體、清楚的注釋行以增強代碼的可讀性和可移植性,注釋內(nèi)容占代碼篇幅不應(yīng)少于30%。2.1.8參考C語言的資料 要形成良好的編程風(fēng)格,有許多細(xì)節(jié)需要注意,可以參考資料[4],雖然它是針對C語言的討論,但由于VerilogHDL和C語言的形式非常近似,所以里面提到的很多原則都是可以借鑒的。2.1.9可視化設(shè)計方法 為提高設(shè)計效率和適應(yīng)協(xié)同設(shè)計的方式,可采用可視化的設(shè)計方法,MentorGrahpics的Renoir軟件提供了非常好的設(shè)計模式。2.2可綜合設(shè)計 用HDL實現(xiàn)電路,設(shè)計人員對可綜合風(fēng)格的RTL描述的掌握不僅會影響到仿真和綜合的一致性,也是邏輯綜合后電路可靠性和質(zhì)量好壞最重要的因素,對此應(yīng)當(dāng)予以充足的重視。 學(xué)習(xí)可綜合的HDL請參考[5][6][7]。 學(xué)習(xí)設(shè)計的模塊劃分請參考[8]。2.3設(shè)計目錄 采用合理、條理清楚的設(shè)計目錄結(jié)構(gòu)有助于提高設(shè)計的效率、可維護性。建議采用類似下面的目錄結(jié)構(gòu):(1)designdesignsrc(源代碼)syn(綜合)sim(仿真)par(布局布線)(2)designdesignver1ver2src(源代碼)syn(綜合)sim(仿真)par(布局布線)src(源代碼)syn(綜合)sim(仿真)par(布局布線)3.邏輯仿真 考慮到性能和易用性,首選的邏輯仿真器是MentorGraphics的modelsim。3.1測試程序(testbench) 測試程序?qū)τ谠O(shè)計功能和時序的驗證有著舉足輕重的影響,測試激勵的完備性和真實性是關(guān)鍵所在,有以下原則須遵循:測試激勵輸入和響應(yīng)輸出采集的時序應(yīng)當(dāng)兼顧功能仿真(無延時)和時序仿真(有延時)的情況。對于周期較多的測試,為提高效率,盡也許采用程序語句來判斷響應(yīng)與標(biāo)準(zhǔn)結(jié)果是否一致,給出成功或犯錯標(biāo)志,而不是通過觀測波形來判斷。采用基于文獻的測試是很好的辦法,即由matlab或spw等系統(tǒng)工具產(chǎn)生測試數(shù)據(jù),測試程序?qū)⑵渥x入產(chǎn)生激勵,再把響應(yīng)結(jié)果寫入到文獻,再交給上述工具進行解決或分析。仿真器支持幾乎所有的VerilogHDL語法,而不僅僅是常用的RTL的描述,應(yīng)當(dāng)運用這一點使測試程序盡也許簡潔、清楚,篇幅長的要盡量采用task來描述。3.2使用預(yù)編譯庫 在進行功能仿真和后仿真時都需要某些模塊的行為仿真模型和門級仿真模型,如AlteraQuartus里的220model.v(LPM模塊行為仿真模型)和apex20ke_atoms.v(20KE系列門級仿真模型),為避免在不同的設(shè)計目錄中多次編譯這些模型,應(yīng)當(dāng)采用一次編譯,多次使用的方法。具體做法如下(以20KE門級庫為例): 1:在某個工作目錄下新建一庫名apex20ke,將apex20ke_atoms.v編譯到其中。 2:在圖形界面中的LoadDesign對話框中裝入仿真設(shè)計時,在Verilog標(biāo)簽下指定預(yù)編譯庫的完整途徑。(見下圖) 4.邏輯綜合 目前可用的FPGA綜合工具有MentorGraphics的LeonardoSpectrum,Synplicity的Synplify和Synopsys的FPGACompilerII/FPGAExpress,LeonardoSpectrum由于性能和速度最佳,成為我們首選的綜合器,F(xiàn)PGACompilerII/FPGAExpress由于可以和DesignCompiler代碼兼容也可用。見參考[9]4.1邏輯綜合的一些原則 HDL代碼綜合后電路質(zhì)量的好壞重要取決于三個方面:RTL實現(xiàn)是否合理、對廠家器件特點的理解和對綜合器掌握的限度。參考[10]中有比較全面的討論。4.1.1關(guān)于LeonardoSpectrum LeonardoSpectrum對綜合的控制能力比較強,但使用也略為復(fù)雜,故需要在使用前盡量熟悉其功能,才干取得較好的綜合結(jié)果。 當(dāng)出現(xiàn)綜合結(jié)果不能滿足約束條件時,不要急于修改設(shè)計源文獻,應(yīng)當(dāng)通過綜合器提供的時序和面積分析命令找出關(guān)鍵所在,然后更改綜合控制或修改代碼。 在LeonardoSpectrum2023.1b以前的版本輸出的.v網(wǎng)表都不能用于仿真。4.1.1大規(guī)模設(shè)計的綜合分塊綜合 當(dāng)設(shè)計規(guī)模很大時,綜合也會花費很多時間。假如設(shè)計只更改某個模塊時,可以分塊綜合。如有設(shè)計top.v包含a.v和b.v兩個模塊,當(dāng)只修改a.v的話,可以先單獨綜合b.v,輸出其網(wǎng)表b.edf,編寫一個b模塊的黑盒子接口b_syn.v,每次修改a.v后只綜合top.v、a.v、b_syn.v,將綜合后的網(wǎng)表和b.edf送去布線,可以節(jié)約綜合b模塊的時間。采用腳本命令當(dāng)設(shè)計規(guī)模比較大時,綜合控制也許會比較復(fù)雜,可以考慮采用腳本控制文獻的方式進行綜合控制,modelsim、LeonardoSpectrum和Quartus都支持TCL(ToolCommandLanguage)語言,采用腳本控制可以提供比圖形界面更靈活和更方便的控制手段。4.1.3必須重視工具產(chǎn)生的警告信息 綜合工具對設(shè)計進行解決也許會產(chǎn)生各種警告信息,有些是可以忽略的,但設(shè)計者應(yīng)當(dāng)盡量去除,不去除必須確認(rèn)每條警告的含義,避免因此使設(shè)計的實現(xiàn)產(chǎn)生隱患。 這個原則對仿真和布局布線同樣合用。4.2調(diào)用模塊的黑盒子(Blackbox)方法 使用黑盒子方法的因素重要有兩點: 一是HDL代碼中調(diào)用了一些FPGA廠家提供的模塊(如Altera的LPM模塊)或第三方提供的IP,這些模塊不需要綜合,并且有些綜合器也不能綜合(如FPGACompilerII/FPGAExpress可以綜合包含LPM的代碼而LeonardoSpectrum不能)。因此須提供一個黑盒子接口給綜合器,所調(diào)用的模塊到布局布線時才進行連接。 二是方便代碼的移植,由于廠家提供的模塊或第三方提供的IP通常都是與工藝有關(guān)的,直接在代碼中調(diào)用的話將不利于修改,影響代碼移植。 下面以調(diào)用Altera的LPM庫中的乘法器為例來說明。調(diào)用這樣一個模塊需要這樣一個文獻:mult8x8.v(可由Quartus的MegaWizerPlug-inManager產(chǎn)生),代碼如下://mult8x8.vmodulemult8x8(dataa,datab,result);input[7:0]dataa;input[7:0]datab;output[15:0]result;//exemplartranslate_off//synopsystranslate_offlpm_mult lpm_mult_component( .dataa (dataa), .datab (datab), .aclr (1'b0), .clock (1'b0), .clken (1'b0), .sum (1'b0), .result (result) ); defparam lpm_mult_component.lpm_widtha =8, lpm_mult_component.lpm_widthb =8, lpm_mult_component.lpm_widths =16, lpm_mult_component.lpm_widthp =16, lpm_mult_component.lpm_representation ="SIGNED",//exemplartranslate_on/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江西南昌萬壽宮文化街區(qū)運營管理有限公司招聘筆試參考題庫附帶答案詳解
- 2025-2030全球異型坯連鑄機行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球結(jié)構(gòu)型隔音用蜂窩行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國廢棄食用油轉(zhuǎn)化催化劑行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國輕型冷凍柜行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 提升學(xué)校安全水平全面推進災(zāi)難預(yù)防策略
- 掌握科學(xué)方法做好家中安全防護工作
- 家長如何利用科技助力孩子學(xué)習(xí)
- 科技創(chuàng)意未來產(chǎn)業(yè)的驅(qū)動力
- 二零二五年度油罐租賃與環(huán)保監(jiān)測服務(wù)合同2篇
- 完整版秸稈炭化成型綜合利用項目可行性研究報告
- 油氣行業(yè)人才需求預(yù)測-洞察分析
- 《數(shù)據(jù)采集技術(shù)》課件-Scrapy 框架的基本操作
- (2024)河南省公務(wù)員考試《行測》真題及答案解析
- 圍城讀書分享課件
- 2025年河北省單招語文模擬測試二(原卷版)
- 工作計劃 2025年度醫(yī)院工作計劃
- 高一化學(xué)《活潑的金屬單質(zhì)-鈉》分層練習(xí)含答案解析
- DB34∕T 4010-2021 水利工程外觀質(zhì)量評定規(guī)程
- 2024年內(nèi)蒙古中考英語試卷五套合卷附答案
- 2024年電工(高級)證考試題庫及答案
評論
0/150
提交評論