Verilog語言綜合問題研究.docx_第1頁
Verilog語言綜合問題研究.docx_第2頁
Verilog語言綜合問題研究.docx_第3頁
Verilog語言綜合問題研究.docx_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

摘要:綜合問題是FPGA設(shè)計(jì)過程中的關(guān)鍵環(huán)節(jié),綜合的結(jié)果就是系統(tǒng)設(shè)計(jì)的硬件結(jié)構(gòu),決定了系統(tǒng)的性能.文章通過RTI 電路模型來分析代碼風(fēng)格對(duì)綜合結(jié)果的影響,介紹了著名的DC綜合器的綜合約束模型.為FPGA設(shè)計(jì)者提供最佳的綜合設(shè)計(jì)策略.隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,ASIC(Application Specific Integrated Circuit,專用集成電路)設(shè)計(jì)或SoC(System on a Chip,單片系統(tǒng))設(shè)計(jì)成為電子電路設(shè)計(jì)的重要課題.使用硬件描述語言Verilog(或VHDL)在FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)器件上開發(fā)產(chǎn)品或進(jìn)行ASIC的原型設(shè)計(jì)與驗(yàn)證的EDA(Electronic Design Automation,電子設(shè)計(jì)自動(dòng)化)技術(shù)可有效降低產(chǎn)品上市風(fēng)險(xiǎn),降低開發(fā)成本,縮短產(chǎn)品上市周期,受到了電子工程師的青睞. 這種以硬件描述語言和綜合技術(shù)為核心的EDA技術(shù),綜合問題在設(shè)計(jì)中起著關(guān)鍵作用.綜合就是邏輯綜合器根據(jù)約束條件把Verilog(或VHDL)描述的RTL(Register Transfer Level,寄存器傳輸級(jí))設(shè)計(jì),轉(zhuǎn)換為可與FPGA/CPLD的門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件(如圖1).圖1 綜合的原理 網(wǎng)表文件包含使用工藝庫的標(biāo)準(zhǔn)邏輯單元構(gòu)建系統(tǒng)的硬件電路的信息,決定了系統(tǒng)的功能、性能、時(shí)序特性等.而Verilog代碼風(fēng)格和綜合器的性能將對(duì)邏輯綜合的生成的網(wǎng)表結(jié)果產(chǎn)生重要的影響.1 Verilog代碼風(fēng)格對(duì)邏輯綜合的影響1.1 設(shè)計(jì)思想對(duì)邏輯綜合的影響 設(shè)計(jì)思想是整個(gè)FPGA設(shè)計(jì)的靈魂 ,它決定了系統(tǒng)設(shè)計(jì)中Verilog代碼編寫策略和邏輯綜合后獲得的硬件架構(gòu),直接影響系統(tǒng)性能.對(duì)系統(tǒng)時(shí)鐘設(shè)計(jì)而言,有同步設(shè)計(jì)與異步設(shè)計(jì);而對(duì)工程實(shí)現(xiàn)而言,常采用的設(shè)計(jì)思想有:層次化設(shè)計(jì)、串行設(shè)計(jì)、并行設(shè)計(jì)和流水線設(shè)計(jì). 一個(gè)規(guī)范的FPGA設(shè)計(jì)盡可能使用同步設(shè)計(jì).同步設(shè)計(jì)具有時(shí)序分析方便、可靠性好的優(yōu)點(diǎn),現(xiàn)代EDA軟件是以同步設(shè)計(jì)為基準(zhǔn)做分析的.但同步設(shè)計(jì)中最長(zhǎng)的組合邏輯延遲,即關(guān)鍵路徑(Critical Path)將影響整個(gè)系統(tǒng)的運(yùn)行速度.而基于鎖存器的異步設(shè)計(jì)比觸發(fā)器占據(jù)更小的面積,沒有時(shí)鐘樹的耗電問題,但現(xiàn)代EDA工具幾乎無法對(duì)復(fù)雜的異步電路模型做出有效的分析. 層次化設(shè)計(jì)使得用戶可以采用自上而下(Top-down)及自下而上(bottom-up)相結(jié)合的混合設(shè)計(jì),在進(jìn)行系統(tǒng)級(jí)和模塊級(jí)設(shè)計(jì)的同時(shí)進(jìn)行底層關(guān)鍵模塊的劃分和設(shè)計(jì).對(duì)輸入的處理是分步進(jìn)行,且后一步驟依賴于前一步驟的結(jié)果的功能模塊使用串行設(shè)計(jì),并在串行模塊之問加入FIFO(先進(jìn)先出隊(duì)列)緩沖;對(duì)幾個(gè)可同時(shí)處理流程的功能模塊使用并行設(shè)計(jì),注意同步并行輸出的結(jié)果.若系統(tǒng)要求高性能的處理效率,可在系統(tǒng)的關(guān)鍵路徑加人流水線設(shè)計(jì).1.2 Verilog代碼與鎖存器(1atch) 多數(shù)EDA工具都是基于同步電路模型進(jìn)行分析的.在FPGA設(shè)計(jì)時(shí),Verilog代碼的綜合由EDA工具自動(dòng)完成.在使用Verilog語言設(shè)計(jì)控制代碼時(shí),常因Verilog代碼風(fēng)格缺陷導(dǎo)致綜合時(shí)產(chǎn)生非預(yù)期的鎖存器,產(chǎn)生異步電路,使EDA工具無法對(duì)系統(tǒng)進(jìn)行時(shí)序分析與驗(yàn)證.產(chǎn)生非預(yù)期的鎖存器常見情況有:嵌套if語句;使用不完整的敏感列表(Sensitivity List);條件不完備的case語句.鎖存器產(chǎn)生原因往往是在Verilog代碼設(shè)計(jì)時(shí)沒有為所有輸出指定輸出狀態(tài),綜合工具就會(huì)使用鎖存器保存該輸出原來的狀態(tài),從而影響系統(tǒng)的可靠性.此時(shí),設(shè)計(jì)者必須要修改代碼,消除鎖存器.1.3 代碼風(fēng)格與綜合的RTL電路的時(shí)延1.3.1 If語句與Case語句 在FPGA控制電路設(shè)計(jì)中,常常使用if與case語句來進(jìn)行邏輯條件的判斷和信號(hào)的選擇.在多if結(jié)構(gòu)的語句中,選擇信號(hào)的判斷是有優(yōu)先級(jí)的,綜合出的電路的輸入輸出路徑也有區(qū)別,這意味著信號(hào)的時(shí)延隨著優(yōu)先級(jí)而不同,設(shè)計(jì)中注意合理處理較大時(shí)延的信號(hào)路徑. 采用單if和case語句中,各輸入信號(hào)到最終的結(jié)果輸出所經(jīng)過的路徑長(zhǎng)度是相同的,時(shí)延也基本相同.圖2圖4描述了if與case語句與RTL電路結(jié)構(gòu)的對(duì)應(yīng)關(guān)系.兩個(gè)語句都能完成4選1多路選擇器的功能,但其時(shí)延是不一樣的.圖3中,輸入a具有最低優(yōu)先級(jí),其輸出延時(shí)最長(zhǎng),圖4采用無優(yōu)先級(jí)信號(hào)判斷的case語句,輸入a,b,e,d到輸出的延時(shí)是基本相同的.在設(shè)計(jì)時(shí)要根據(jù)系統(tǒng)的時(shí)序和功能要求,合理選擇if與case語句風(fēng)格.圖2 多if與case語句代碼z=0:if(sel0) z=a;if(sel1) z=b; if(sel2) z=c;if(sel3) z=d; endcase x(se1)4b1xxx z=d;4bx1xx z=c;4bxx1x z=b;4bxxx1 z=a;default z=1b0;endcase 圖3 多if語句的RTL電路圖4 case語句的RTL電路1.3.2 代碼風(fēng)格與綜合的RTL電路的串/并行結(jié)構(gòu) 組合邏輯RTL代碼盡量采用并行結(jié)構(gòu),降低寄存器問組合路徑的延遲是提高系統(tǒng)工作頻率最主要的手段,因此在完成相同功能的前提下應(yīng)該盡量使用并行邏輯.而代碼風(fēng)格與綜合所獲得的RTL結(jié)構(gòu)有著密切的關(guān)系,并行結(jié)構(gòu)的選擇可有效改善耗時(shí)較多的運(yùn)算模塊,對(duì)比圖5與圖6的RTL電路,同是消耗3個(gè)加法器資源的情況下,不同代碼風(fēng)格產(chǎn)生的電路結(jié)構(gòu)與時(shí)序性能有著很大的差別.圖5 表達(dá)式z=(a+b)+(c+d)的RTL電路圖6 表達(dá)式z=a+b+c+d的RTL電路1.4 代碼風(fēng)格與綜合后RTL電路占用的資源 由于運(yùn)算單元需要占用比較大的邏輯資源,特別是復(fù)雜的運(yùn)算單元,設(shè)計(jì)時(shí)需要考慮消耗的邏輯資源成本.此時(shí),尋求資源共享就變得很重要.資源共享的主要思想是通過數(shù)據(jù)緩沖器或多路選擇器的方法來共享數(shù)據(jù)通路中的工作單元.對(duì)于非并發(fā)的兩個(gè)運(yùn)算單元,可采用資源共享策略.邏輯共享與代碼風(fēng)格有著密切的關(guān)系,如圖7、圖8所示,在保證時(shí)序性能相同的基礎(chǔ)上,采用不同的代碼風(fēng)格,可實(shí)現(xiàn)資源的共享,節(jié)省邏輯資源.圖7 表達(dá)式z=(cond)?(a+b):(c+d)的RTL電路圖8 表達(dá)式if(cond)z=a+b;else z=c+d的RTL電路2 Design Complier綜合器 隨著系統(tǒng)設(shè)計(jì)復(fù)雜度的增加,F(xiàn)PGA綜合依靠EDA工具自動(dòng)完成.加州大學(xué)洛杉磯分校(UCLA)Jason Cong教授研究指出,現(xiàn)有的綜合工具所生成的電路規(guī)模比已知綜合基準(zhǔn)的最優(yōu)方案可能要大70到500倍.新思(synopsys)公司在邏輯綜合市場(chǎng)占據(jù)85 的市場(chǎng)份額,其邏輯工具DC(Design Complier)得到全球60多個(gè)半導(dǎo)體廠商、380多個(gè)工藝庫的支持,是Synopsys最核心的產(chǎn)品.它根據(jù)設(shè)計(jì)描述和約束條件并針對(duì)特定的工藝庫自動(dòng)綜合出優(yōu)化的門級(jí)電路,并產(chǎn)生多種性能報(bào)告,在縮短設(shè)計(jì)時(shí)問的同時(shí)提高設(shè)計(jì)性能.通過熟悉DC(Design Complier)綜合器的綜合約束模型,為設(shè)計(jì)者選擇Verilog代碼風(fēng)格及綜合策略提供依據(jù). DC綜合約束設(shè)置有兩種:一是設(shè)計(jì)規(guī)則約束(Design Rule Constraint);二是邏輯優(yōu)化約束(Optimization Constraint),其涵蓋的約束范圍如圖9. 圖9 DC的綜合約束模型DC在綜合過程中,總是力圖同時(shí)滿足這兩種約束,并遵循表1所示的優(yōu)先級(jí)對(duì)綜合結(jié)果進(jìn)行優(yōu)化.表1 約束條件的優(yōu)先級(jí)約束類型優(yōu)先級(jí)(降序)設(shè)計(jì)規(guī)則min capacitancemax transitionmax fanoutmax capacitancecell degradation優(yōu)化規(guī)則max delaymin delaypowerarea 在設(shè)計(jì)規(guī)則約束中,最大信號(hào)跳變時(shí)間由工藝庫中的參數(shù)決定.最大扇出表示信號(hào)線的驅(qū)動(dòng)能力.最大電容和最小電容允許設(shè)計(jì)者對(duì)線上的電谷施加約束. 在邏輯優(yōu)化約束中,包含面積與時(shí)序約束.時(shí)序約束,使綜合器在滿足系統(tǒng)時(shí)鐘頻率要求條件下進(jìn)行邏輯優(yōu)化.DC根據(jù)同步邏輯和異步邏輯的不同定義時(shí)序約束.對(duì)同步邏輯,通過對(duì)輸入時(shí)鐘、輸入和輸出時(shí)延施加約束實(shí)現(xiàn),對(duì)異步邏輯,則定義點(diǎn)對(duì)點(diǎn)之問最大和最小的時(shí)延.而積約束,DC通過設(shè)置set_max_delay對(duì)設(shè)計(jì)施加最大面積約束.最大面積約束表示綜合后使用的門的個(gè)數(shù).3 結(jié)論 通過研究代碼風(fēng)格對(duì)綜合結(jié)果的影響以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論