




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于基于 Verilog HDL的的硬件描述語言簡介硬件描述語言簡介劉 杰 惠2012年5月25日目錄n什么是Verilog HDLnVerilog HDL語法n設計描述層次n組合邏輯和時序邏輯n設計測試和驗證n可綜合的設計n設計注意事項什么是Verilog HDLnVerilog HDL是一種硬件描述語言是一種硬件描述語言用于數(shù)字系統(tǒng)的設計用于數(shù)字系統(tǒng)的設計n各種級別的邏輯設計:各種級別的邏輯設計:算法級、結(jié)構(gòu)級、門級到開關(guān)級的多種抽算法級、結(jié)構(gòu)級、門級到開關(guān)級的多種抽象設計層次的數(shù)字系統(tǒng)建模;象設計層次的數(shù)字系統(tǒng)建模;被建模的數(shù)字系統(tǒng)對象的復雜性可以介于被建模的數(shù)字系統(tǒng)對象的復雜性可以介于
2、簡單的門和完整的復雜電子數(shù)字系統(tǒng)之間簡單的門和完整的復雜電子數(shù)字系統(tǒng)之間(例如例如 CPU)什么是Verilog HDLn進行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析、進行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析、邏輯綜合邏輯綜合n特點:特點:從從C語言繼承了多種操作符和結(jié)構(gòu)語言繼承了多種操作符和結(jié)構(gòu)應用廣泛應用廣泛比比VHDL更簡潔、靈活更簡潔、靈活語法類似語法類似C,但思想不同,著眼于電路,但思想不同,著眼于電路Verilog HDL的歷史n1983年Gateway Design Automation 公司在C語言的基礎(chǔ)上,為其仿真器產(chǎn)品Verilog-XL開發(fā)了一種專用硬件描述語言Verilog HDL
3、硬件描述語言的設計優(yōu)點n電路的邏輯功能容易理解;n便于計算機對邏輯進行分析處理;n把邏輯設計與具體電路的實現(xiàn)分成兩個獨立的階段來操作;n邏輯設計與實現(xiàn)的工藝無關(guān);n邏輯設計的資源積累可以重復利用;n可以由多人共同更好更快地設計非常復雜的邏輯電路(幾十萬門以上的邏輯系統(tǒng))。硬件描述語言的設計優(yōu)點nVerilog HDLn較多的第三方工具的支持n語法結(jié)構(gòu)比VHDL簡單n學習起來比VHDL容易n仿真工具比較好使n測試激勵模塊容易編寫硬件描述語言的設計優(yōu)點nVHDLn比VerilogHDL早幾年成為IEEE標準;n語法/結(jié)構(gòu)比較嚴格,因而編寫出的模塊風格比較清晰;n比較適合由較多的設計人員合作完成的特
4、大型項目(一百萬門以上)。 Verilog HDL的結(jié)構(gòu)n模塊(Module)-可對應各種規(guī)模電路模塊Verilog HDL的結(jié)構(gòu)Verilog HDL的結(jié)構(gòu)Verilog HDL語法n模塊n數(shù)據(jù)類型及常量、變量n運算符與表達式n條件與循環(huán)語句n結(jié)構(gòu)說明語句模塊(module) nVerilog 基本設計單元:n一個電路模塊/一種邏輯功能n基本元素:接口,邏輯功能n命名:字母,數(shù)字,$,_,區(qū)分大小寫第一個必須為:字母/_模塊(module) nVerilog 模塊的結(jié)構(gòu)由在module和endmodule 關(guān)鍵詞之間的四個主要部分組成:n端口信息: module block1(a, b, c
5、, d );n輸入/輸出說明 : input a, b, c ;output d ;n內(nèi)部信號: wire x;n功能定義: assign d = a | x ; assign x = ( b & c ); endmodule 模塊(module) 請在下面的空格中填入適當?shù)姆柺蛊涑蔀橛覉D的Verilog 模塊 :abcde模塊(module) 請在下面的空格中填入適當?shù)姆柺蛊涑蔀橛覉D的Verilog 模塊 :abcde模塊(module) n模塊實例化模塊名稱 實例化名稱(.接口名稱(信號名稱),);若接口按順序排列,可以省略接口名稱數(shù)據(jù)類型及其常量變量nVerilog HDL有下列四種
6、基本的值:n0:邏輯0或假n1:邏輯1或真nX:未知nz:高阻ux,z值不區(qū)分大小寫uz也可以用?表示數(shù)據(jù)類型及其常量變量nVerilog HDL 中有三類常量:n整型:缺省十進制:1,-2基數(shù)表示: b/B,o/O,d/D,h/H 4b0101,8h42,-8d5 n實數(shù)型:1.234, -56.78, 3.6e4n字符串型:雙引號內(nèi),每個字母用8位的ASCII值表示。 如 “verilog!” 看作9個8位無符號整數(shù)u反斜杠()用于定義特殊轉(zhuǎn)義字符,例如 n, t。 u下劃線(_)可以用來分隔數(shù)的表達式以提高易讀性;但不能用于位寬和進制處。例如:32b0010_1101_1110_1111
7、 = = 32b0010110111101111數(shù)據(jù)類型及其常量變量nVerilog HDL 變量最主要的數(shù)據(jù)類型:n線網(wǎng)類型(net type):表示Verilog結(jié)構(gòu)化元件間的物理連線。它的值由驅(qū)動元件的值決定,例如連續(xù)賦值或門的輸出。如果沒有驅(qū)動元件連接到線網(wǎng),線網(wǎng)的缺省值為z。類型:wire, wor, wand, tri1, tri0, supply1, supply0 n寄存器類型(register type)表示一個抽象的數(shù)據(jù)存儲單元,它只能在always語句和initial語句中被賦值,并且它的值從一個賦值到另一個賦值過程中被保存下來。寄存器類型缺省值為x。類型:reg, in
8、teger, real, time 數(shù)據(jù)類型及其常量變量nwire 型變量n格式wire n-1:0 name1,name2,namen;n舉例wire rdy,finish; /2個1位的連線wire 3:0 result; /1個4位的連線n可用作任何方程式的輸入,也可用作assign語句和元件的輸出。例如:assign result=a+b;數(shù)據(jù)類型及其常量變量nreg 型變量n格式reg n-1:0 name1,name2,namen;n舉例reg rdy,finish; / 2個1位寄存器reg 3:0 result; / 1個4位寄存器reg 3:0 mem63:0; / 64個4
9、位寄存器組,可表示存儲器n可取任意一位:result2表示4位寄存器的次高位;mem2表示一個4位寄存器;mem21:0表示一個4位寄存器中的低2位。數(shù)據(jù)類型及其常量變量n需要注意的是:寄存器(reg)類型不一定是觸發(fā)器,它只是在 always 塊中賦值的信號。用寄存器(reg)類型變量生成組合邏輯舉例:aout2BUFFERbINVout1運算符與表達式n算術(shù)運算符:+, -, *, /, %n賦值運算符:=, , =, =n相等運算符:=, !=, =, !=n邏輯運算符:&, |, !n位運算符:, &, |, , ,n移位運算符:n條件運算符: ?: assign result=exp
10、?exp1:exp2;n連接和復制操作符: assign cout,sum=a+b+cin;運算符與表達式n表達式:操作數(shù)+運算符n分類:n單目運算符:帶一個操作數(shù) 如 clockn雙目運算符:帶兩個操作數(shù) 如 a&bn三目運算符:帶三個操作數(shù) 如 r=s?a:bn優(yōu)先級:! * / % + - ,=, = != = != & | & | ?:塊語句n兩條或多條語句的組合,主要有兩種:nbegin_end 語句:順序塊塊內(nèi)的語句順序執(zhí)行;每條語句的延時為相對于前一語句;最后一句執(zhí)行完,才能跳出該塊。nfork_join語句:并行塊塊內(nèi)語句同時執(zhí)行;每條語句的延時為相對進入塊仿真時間。條件與循環(huán)
11、語句nif else語句If (表達式) 語句;else if (表達式) 語句;else 語句;n多個語句須放在begin end間ncase 語句:多分支選擇語句case (表達式) case1,case2分支: 語句;default: 語句;endcase條件與循環(huán)語句nforever 連續(xù)執(zhí)行,常用于產(chǎn)生時鐘信號如:timescale 1ns/100ps forever #5 clk=clk; /產(chǎn)生100MHz的時鐘nwhile 執(zhí)行語句,直到某個條件不滿足While (表達式) begin 語句; end若開始即不滿足條件,則不執(zhí)行 nrepeat 連續(xù)執(zhí)行語句n次repeat (
12、表達式) begin 語句; end在此表達式通常為常量表達式條件與循環(huán)語句nfor for(表達式1;表達式2;表達式3) 語句;例: for ( i=0; i4; i=i+1) ai= bi;執(zhí)行過程:(1)求解表達式1;(2)求解表達式2,若為真,則執(zhí)行語句,轉(zhuǎn)到(3);若為假,結(jié)束循環(huán),轉(zhuǎn)到(5);(3)若表達式2為真,執(zhí)行語句后,求解表達式3;(4)轉(zhuǎn)回(2)繼續(xù);(5)執(zhí)行for語句后面的語句。結(jié)構(gòu)說明語句ninitial仿真開始時對各變量初始化生成激勵波形作為電路測試信號只執(zhí)行一次程序模塊中可有多個,并行執(zhí)行nalways always(觸發(fā)條件) begin 語句; end 若
13、觸發(fā)條件滿足,則被執(zhí)行,滿足一次執(zhí)行一次可有多個always塊,并行執(zhí)行結(jié)構(gòu)說明語句nfunction n返回一個用于表達式的值n調(diào)用:將函數(shù)作為表達式中的操作數(shù)實現(xiàn)word=getbyte(a), getbyte(b);n規(guī)則:不能包含時間控制語句,不能啟動任務,至少有一個輸入,必須存在給與函數(shù)名同名變量賦值語句。結(jié)構(gòu)說明語句ntaskn支持多種目的,可計算多個結(jié)果值n調(diào)用:my_task(v, w, x, y, z);n特點:可定義自己的仿真時間單位可以啟動其他task和function阻塞賦值與非阻塞賦值n非阻塞賦值 如:b = an塊結(jié)束后才完成賦值操作nb的值并不是立刻改變n常用于沿
14、觸發(fā)的always塊n阻塞賦值 如:b = an賦值語句執(zhí)行完后,塊才結(jié)束nb的值在賦值語句執(zhí)行后立刻改變n常用于組合邏輯的賦值設計描述層次nVerilog HDL既是一種行為描述語言,也是一種結(jié)構(gòu)描述語言。也就是說,既可以用電路的邏輯功能描述,也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。例:nMUX的行為描述abslout設計描述層次nMUX的結(jié)構(gòu)描述abslselbselanslout設計描述層次nVerilog HDL語言本身提供了各種層次抽象的表述,可以用詳細程度有很大差別的的多層次模塊組合來描述一個電路系統(tǒng)。n行為級:技術(shù)指標和算法的Verilog描述
15、,有關(guān)行為和技術(shù)指標模塊,容易理解nRTL級:邏輯功能的Verilog描述,有關(guān)邏輯執(zhí)行步驟的模塊,較難理解n門級:邏輯結(jié)構(gòu)的Verilog描述,有關(guān)邏輯門以及邏輯門之間的連接關(guān)系的模塊,很難理解n開關(guān)級:具體的晶體管物理器件的描述,有關(guān)物理形狀和布局參數(shù)的模塊,非常難理解設計描述層次n算法(行為)級描述n結(jié)構(gòu)級描述n寄存器傳輸級(RTL)描述n開關(guān)級(門級)描述n混合層次描述設計描述層次n算法級描述(行為級描述)n主要用于快速驗證算法的正確性n不一定可以綜合成實際電路結(jié)構(gòu)設計描述層次n結(jié)構(gòu)級描述n電路的層次化描述n類似于電路框圖使用兩個半加器構(gòu)造的全加器設計描述層次nRTL描述n更貼近實際電
16、路結(jié)構(gòu)的描述n描述的細節(jié)到寄存器內(nèi)容傳輸級別n可以精確描述電路的工作原理、執(zhí)行順序n細化到寄存器級別的結(jié)構(gòu)描述也就是RTL級描述,并無絕對劃分標準 設計描述層次n開關(guān)級(門級)描述n完整描述了電路的細節(jié)n最底層的電路描述n可以描述MOS管設計描述層次n混合層次描述n以上各種層次描述方式可以任意混合使用,因此一個設計可能某些模塊使用了行為描述的方式,而另外一些模塊使用了開關(guān)級描述。n在實際設計中,功能復雜的模塊可以先用行為級或結(jié)構(gòu)級的描述來表示,而對功能簡單的模塊則使用RTL級的描述,以盡早完成系統(tǒng)的仿真和算法的驗證;在設計的過程中逐步細化復雜模塊,替代原來的行為描述,直至設計可以綜合并滿足設計
17、指標。組合邏輯電路n組合邏輯:輸出只是當前輸入邏輯電平的函數(shù),與電路的原始狀態(tài)無關(guān)的邏輯電路。n組合邏輯由與、或、非門組成的網(wǎng)絡,如:多路器、比較器、加法器、乘法器等n描述方式:nassign 語句n& | 操作符nand, or, not門組合組合邏輯電路n加法器Assign和操作符描述 基本門組合時序邏輯電路n時序邏輯:輸出不只是當前輸入的邏輯電平的函數(shù),還與電路目前所處的狀態(tài)有關(guān)的邏輯電路。n由多個觸發(fā)器和多個組合邏輯塊組成,如計數(shù)器、同步有限狀態(tài)機、移位寄存器等n描述方式:nalways(posedge clk)n非阻塞賦值, =, , , &, |, 等運算符 n=, = , ass
18、ign等賦值語句nalways塊可綜合的設計n不可綜合的語法舉例ninitial塊nforever塊nfor,while,repeat,force,release,task,enable,disable一般不可綜合(某些特定情況下for,while等可能可以綜合)n系統(tǒng)函數(shù)如$display等n除法,求模運算,實數(shù)運算等復雜算術(shù)運算一般不可綜合(若綜合器有庫可以引用,則可綜合)n#延時賦值語句一般綜合時會被忽略n可綜合的設計ncase語句一般對應多選器分支要完全,default分支的使用賦值為“x”為無關(guān)項,綜合結(jié)果最簡潔n避免出現(xiàn)latch生成組合邏輯的always塊中,賦值表達式右邊出現(xiàn)的信號都必須在敏感列表中列出n異步狀態(tài)機不能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 省級醫(yī)學課題申報書范例
- 出售游艇別墅合同范本
- 原房主合同范例
- 北京租賃居間合同范本
- 課題立項申報書小學
- 人像攝影肖像合同范本
- 個人出租土地合同范本
- 【復習大串講】【中職專用】高二語文上學期期末綜合測試題(五)(職業(yè)模塊)(原卷版)
- 二手辦公用房買賣合同范本
- 養(yǎng)殖基地出售馬匹合同范本
- 產(chǎn)業(yè)園規(guī)劃建筑設計說明
- 內(nèi)蒙體育職院《體育傳播學》教案第1章 傳播與傳播學
- 戶政知識技能比武大練兵考試題庫(完整版)
- 奶牛胚胎移植課件
- 慢性腎衰竭(慢性腎臟病)診療指南(內(nèi)容清晰)
- 瑪莎拉蒂路演執(zhí)行手冊升級版
- 《建筑工程資料管理規(guī)程》DB34T918-2019
- 小班數(shù)學掛燈籠教案反思
- 屈原《國殤》教學課件
- 美術(shù)課件:水印版畫
- LED驅(qū)動電源基礎(chǔ)知識(課堂PPT)
評論
0/150
提交評論