




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、會計學1VerilogHDL語言基礎(chǔ)會計學1VerilogHDL語言基礎(chǔ)24.1 什么是Verilog HDL?Verilog HDL是目前應(yīng)用最為廣泛的硬件描述語言。Verilog HDL可以用來進行各種層次的邏輯設(shè)計,也可以進行數(shù)字系統(tǒng)的邏輯綜合,仿真驗證和時序分析等。 Verilog HDL適合算法級,寄存器級,邏輯級,開關(guān)級、系統(tǒng)級和版圖級等各個層次的設(shè)計和描述。Verilog HDL進行設(shè)計最大的優(yōu)點是其工藝無關(guān)性。這使得工程師在功能設(shè)計,邏輯驗證階段可以不必過多考慮門級及工藝實現(xiàn)的具體細節(jié),只需根據(jù)系統(tǒng)設(shè)計的要求施加不同的約束條件,即可設(shè)計出實際電路。 第1頁/共69頁24.1 什
2、么是Verilog HDL?Verilog 3Verilog HDL模塊化設(shè)計理念Verilog HDL支持以模塊集合的形式構(gòu)造數(shù)字系統(tǒng)。利用層次化、結(jié)構(gòu)化的設(shè)計方法,一個完整的硬件設(shè)計任務(wù)可以劃分成若干個模塊,每一個模塊又可以劃分成若干個子模塊,子模塊還可以進一步劃分。各個模塊可以是自主開發(fā)的模塊,也可以是從商業(yè)渠道購買的具有知識產(chǎn)權(quán)的IP核。第2頁/共69頁3Verilog HDL模塊化設(shè)計理念第2頁/共69頁442 VerilogHDL基礎(chǔ)知識Verilog HDL的運算符與C語言的運算符幾乎完全相同,但數(shù)據(jù)類型是Verilog HDL特有的。在實際應(yīng)用中,要認真體會、深入理解硬件描述語
3、言與軟件編程語言的本質(zhì)區(qū)別。421 VerilogHDL模塊結(jié)構(gòu)模塊是Verilog HDL的基本單元,用于描述某個設(shè)計的功能或結(jié)構(gòu)以及與其他模塊通信的外部端口。模塊的實際意義是代表硬件電路上的邏輯實體,每個模塊都實現(xiàn)特定的功能。第3頁/共69頁442 VerilogHDL基礎(chǔ)知識第3頁/共69頁5模塊的基本結(jié)構(gòu)第4頁/共69頁5模塊的基本結(jié)構(gòu)第4頁/共69頁6Verilog HDL語言描述模塊結(jié)構(gòu)舉例VerilogHDL模塊結(jié)構(gòu)完全嵌在module和endmodule關(guān)鍵字之間,包括四部分,即模塊聲明、端口定義、信號類型說明和邏輯功能定義。第5頁/共69頁6Verilog HDL語言描述模塊
4、結(jié)構(gòu)舉例第71模塊聲明模塊聲明包括模塊名和模塊的端口列表。其格式如下:Module 模塊名(端口名1,端口名2,端口名n); 模塊的其他部分 endmodule 模塊結(jié)束關(guān)鍵字模塊端口列表中端口名的排列順序是任意的。第6頁/共69頁71模塊聲明第6頁/共69頁82端口(Port)定義端口是模塊與外界或其他模塊進行連接、通信的信號線。因此,對端口列表中哪些端口是輸入端口、哪些端口是輸出端口要進行明確說明。在Verilog HDL中有3種端口類型;輸入端口、輸出端口、雙向端口(既可用作輸入也可用作輸出)。 第7頁/共69頁82端口(Port)定義第7頁/共69頁9)用input定義輸入端口,格式如
5、下: input 位寬 端口名1,端口名2,端口名n;)用output定義輸出端口,格式如下: output 位寬 端口名1,端口名2,端口名n;)用inout定義雙向端口,格式如下: inout 位寬 端口名1,端口名2,端口名n; 使用上述3種定義格式時應(yīng)注意: 位寬的說明應(yīng)遵循n:1或n-1:0的規(guī)則; 不同位寬的端口應(yīng)分別定義; 位寬說明省略時,默認值為1。第8頁/共69頁9)用input定義輸入端口,格式如下:第8頁/共69頁103數(shù)據(jù)(信號)類型說明在模塊中用到的所有信號(包括端口信號、節(jié)點信號、中間變量等)都必須進行數(shù)據(jù)類型的定義。VerilogHDL中提供了各種信號類型,最常用
6、的是連線型(wire)、寄存器型(reg)和參數(shù)型(parameter)。數(shù)據(jù)類型定義的實例: reg 4:1 cout; 定義信號cout的數(shù)據(jù)類型為4位寄存器(reg)型 wire a,b,c; 定義信號a,b,c為1位連線(wire)型 注意:輸入端口和雙向端口不能說明為寄存器型;端口信號的數(shù)據(jù)類型說明缺省時,EDA的綜合器將其默認為wire型。第9頁/共69頁103數(shù)據(jù)(信號)類型說明第9頁/共69頁114邏輯功能定義 模塊中的核心部分是邏輯功能的定義。Verilog HDL提供了多種邏輯功能的定義方式,其中調(diào)用邏輯門元件(元件例化)、持續(xù)賦值語句(assign)、過程塊(always
7、)3種定義方式比較常用。相對應(yīng)在模塊設(shè)計中的3種描述方法:門級描述方式、數(shù)據(jù)流描述方式、行為描述方式,以及以上混合描述方式。第10頁/共69頁114邏輯功能定義第10頁/共69頁121)通過調(diào)用邏輯門元件(元件例化)定義通過調(diào)用Verilog HDL提供的內(nèi)置邏輯門元件,按照元件模型,進行它們之間的信號連接,完成邏輯電路的結(jié)構(gòu)描述。采用這種方法可以將傳統(tǒng)的電路原理圖轉(zhuǎn)換成Verilog HDL文本形式。例1: and myand3(out,a,b)例2: and u3(f,a,b,c);第11頁/共69頁121)通過調(diào)用邏輯門元件(元件例化)定義第11頁/共69頁132)用持續(xù)賦值語句(ass
8、ign)定義assign語句一般用在數(shù)據(jù)流描述方式中,常用來描述組合邏輯電路的功能,稱為持續(xù)賦值方式。這種描述方式比較簡單,只需將傳統(tǒng)邏輯表達式轉(zhuǎn)換成符合VerilogHDL規(guī)范的表達式放在關(guān)鍵字assign后面即可。例如: assign F(A&B)|(C&D);3)用過程塊(always)定義行為描述方式中采用always定義邏輯功能時,可不關(guān)心電路結(jié)構(gòu),只描述電路的行為,即在某種輸入情況下產(chǎn)生相應(yīng)的輸出。硬件描述語言支持與邏輯電路結(jié)構(gòu)無關(guān)的行為描述。行為描述轉(zhuǎn)化為具體電路結(jié)構(gòu)的工作由EDA工具完成。第12頁/共69頁132)用持續(xù)賦值語句(assign)定義第12頁/共69頁14例、用a
9、lways過程塊描述一個4位計數(shù)器。 module counter(out,reset,clk); output 4:1 out; input reset,clk; reg 4:1 out; always (posedge clk) beginif(reset) out=0; else out=out+1; end endmodule第13頁/共69頁14例、用always過程塊描述一個4位計數(shù)器。第13頁/共15第14頁/共69頁15第14頁/共69頁164.2.2 詞法表示第15頁/共69頁164.2.2 詞法表示第15頁/共69頁17第16頁/共69頁17第16頁/共69頁18第17頁/
10、共69頁18第17頁/共69頁19第18頁/共69頁19第18頁/共69頁20423 數(shù)據(jù)類型 數(shù)據(jù)類型(DataType)也稱為變量類型。在Verilog HDL中,數(shù)據(jù)類型用來表示數(shù)字電路中的物理連線、數(shù)據(jù)存儲和數(shù)據(jù)傳送等物理量。 VerilogHDL中共有19種數(shù)據(jù)類型,分成連線型(Net Type)和寄存器型(Register Type)兩類。 其中最常用的是wire型、reg型和parameter型。第19頁/共69頁20423 數(shù)據(jù)類型第19頁/共69頁211連線型數(shù)據(jù)用來描述電路中的各種物理連接,沒有狀態(tài)保持能力,輸出隨著輸入變化而變化。必須對網(wǎng)絡(luò)型數(shù)據(jù)進行連續(xù)的驅(qū)動。有兩種驅(qū)動
11、連線型數(shù)據(jù)的方式,一是在結(jié)構(gòu)描述中將其連接到邏輯門的輸出端或其他模塊的輸出端;另一種是用assign語句進行賦值。當沒有獲得驅(qū)動時,它的取值為z。Verilog HDL中的連線型數(shù)據(jù)包括wire型、tri型、wor型、trior型、wand型、triand型、tril型、trio型、trireg型、vectored型、large型、medium型、scalared型、small型。其中,在可綜合模塊中最常用的是wire型。第20頁/共69頁211連線型數(shù)據(jù)第20頁/共69頁22wire型數(shù)據(jù)用來表示用assign語句賦值的組合邏輯信號。Verilog HDL模塊輸入輸出端口信號類型說明缺省時,
12、自動定義為wire型。wire型變量可以用作任何表達時的輸入,也可用作assign語句、元件調(diào)用語句和模塊調(diào)用語句的輸出。wire型變量的取值可為0、1、X、Z。wire型數(shù)據(jù)的定義格式如下:wire 數(shù)據(jù)名1,數(shù)據(jù)名2,數(shù)據(jù)名n;位寬遵循n:1或n-1:0規(guī)則進行說明,可定義多位的wire型向量;位寬說明缺省時,默認定義1位的wire型變量(標量)。不同位寬的wire型數(shù)據(jù)必須分別定義。第21頁/共69頁22wire型數(shù)據(jù)第21頁/共69頁23第22頁/共69頁23第22頁/共69頁242寄存器型數(shù)據(jù)是物理電路中數(shù)據(jù)存儲單元的抽象,對應(yīng)數(shù)字電路中具有狀態(tài)保持作用的元件,如觸發(fā)器、寄存器等。其
13、特點是:具有記憶功能,必須明確賦值才能改變其狀態(tài),否則一直保持上一次的賦值狀態(tài)。設(shè)計中,寄存器型變量只能在過程塊(例如always)中,通過過程賦值語句進行賦值。換言之,在過程塊(如always)內(nèi)被賦值的每一個信號,都必須在數(shù)據(jù)類型說明時定義成寄存器型。 在Verilog HDL中有5種寄存器型數(shù)據(jù),它們是reg型、integer型、parameter型、real型和time型。可綜合模塊中使用的是integer型、reg型和parameter型。第23頁/共69頁242寄存器型數(shù)據(jù)第23頁/共69頁25常用寄存器型數(shù)據(jù)介紹 integer型數(shù)據(jù)是一種純數(shù)學的抽象描述,能定義帶符號的32位整
14、型數(shù)據(jù),不對應(yīng)任何具體的硬件電路。用作for循環(huán)語句中的循環(huán)變量。格式: integer 變量名1,變量名2,變量名n; reg型數(shù)據(jù)通常用作在always過程塊中被賦值的信號,也可用于表達式的輸入。格式:reg ,數(shù)據(jù)名1,數(shù)據(jù)名2,數(shù)據(jù)名n;可定義多位的reg型向量;位寬說明缺省時,默認定義1位的reg型變量(標量)。不同位寬的reg型數(shù)據(jù)必須分別定義。在使用reg型數(shù)據(jù)時,可以域選或全選。第24頁/共69頁25常用寄存器型數(shù)據(jù)介紹第24頁/共69頁26類型定義和使用舉例第25頁/共69頁26類型定義和使用舉例第25頁/共69頁27第26頁/共69頁27第26頁/共69頁28424 Ver
15、ilog HDL的運算符Verilog HDL提供了豐富的運算符(Operators),按功能分成9大類,包括算術(shù)運算符、邏輯運算符、位運算符、關(guān)系運算符、等式運算符、歸約運算符、移位運算符、條件運算符以及拼接運算符。按運算符所帶操作數(shù)的個數(shù)來區(qū)分,可分為3類:單目運算符(unaryoperator):帶一個操作數(shù)。 o-雙目運算符(binaryoperator):帶兩個操作數(shù)。三目運算符(ternaryoperator):帶三個操作數(shù)。第27頁/共69頁28424 Verilog HDL的運算符第27頁/共629第28頁/共69頁29第28頁/共69頁30第29頁/共69頁30第29頁/共6
16、9頁31第30頁/共69頁31第30頁/共69頁32第31頁/共69頁32第31頁/共69頁33第32頁/共69頁33第32頁/共69頁34第33頁/共69頁34第33頁/共69頁35第34頁/共69頁35第34頁/共69頁36第35頁/共69頁36第35頁/共69頁37第36頁/共69頁37第36頁/共69頁38第37頁/共69頁38第37頁/共69頁39第38頁/共69頁39第38頁/共69頁40第39頁/共69頁40第39頁/共69頁4143 VerilogHDL模塊的3種建模方式從VerilogHDL的描述風格看,分為結(jié)構(gòu)描述、數(shù)據(jù)流描述、行為描述以及混合描述。通過一個例子認識Veri
17、log HDL的3種建模方式,圖中電路實現(xiàn)的功能是,當sel=0時,outa;當sel1時,out=b。第40頁/共69頁4143 VerilogHDL模塊的3種建模方式第40頁/42第41頁/共69頁42第41頁/共69頁43第42頁/共69頁43第42頁/共69頁44第43頁/共69頁44第43頁/共69頁45431 模塊的結(jié)構(gòu)描述方式1結(jié)構(gòu)描述的概念Verilog HDL結(jié)構(gòu)描述是通過調(diào)用邏輯元件,描述它們之間的連接,建立邏輯電路的模型。邏輯元件,包括Verilog HDL內(nèi)置門級元件、內(nèi)置開關(guān)級元件、自主開發(fā)的已有模塊或商業(yè)IP模塊。結(jié)構(gòu)描述的核心是邏輯元件的模型及其調(diào)用方法。 與傳統(tǒng)
18、的具有固定輸入輸出數(shù)量的邏輯門器件不同,Verilog HDL中的內(nèi)置門級元件是一種動態(tài)模型,可以根據(jù)用戶調(diào)用時的輸入輸出列表動態(tài)生成相應(yīng)的電路結(jié)構(gòu)。第44頁/共69頁45431 模塊的結(jié)構(gòu)描述方式第44頁/共69頁46、內(nèi)置邏輯元件第45頁/共69頁46、內(nèi)置邏輯元件第45頁/共69頁47多輸入多輸出第46頁/共69頁47多輸入多輸出第46頁/共69頁48第47頁/共69頁48第47頁/共69頁49第48頁/共69頁49第48頁/共69頁50第49頁/共69頁50第49頁/共69頁51第50頁/共69頁51第50頁/共69頁52432 模塊的數(shù)據(jù)流描述方式1數(shù)據(jù)流描述的概念根據(jù)信號(變量)之
19、間的邏輯關(guān)系,采用持續(xù)賦值語句描述邏輯電路的方式,稱為數(shù)據(jù)流描述。即將傳統(tǒng)意義上的“邏輯表達式”,運用運算符,變成持續(xù)賦值語句中的表達式。格式:assign 連線型變量名=賦值表達式;持續(xù)賦值語句是并發(fā)執(zhí)行的,每條持續(xù)賦值語句對應(yīng)著獨立的邏輯電路,它們的執(zhí)行順序與其在描述中的順序無關(guān)。第51頁/共69頁52432 模塊的數(shù)據(jù)流描述方式第51頁/共69頁53第52頁/共69頁53第52頁/共69頁54第53頁/共69頁54第53頁/共69頁55第54頁/共69頁55第54頁/共69頁5643模塊的行為描述方式1行為描述的概念邏輯電路的行為描述關(guān)注邏輯電路輸入輸出的因果關(guān)系(行為特性),即在何種輸
20、入條件下,產(chǎn)生何種輸出(操作),并不關(guān)心電路的內(nèi)部結(jié)構(gòu)。EDA的綜合工具能自動將行為描述轉(zhuǎn)換成電路結(jié)構(gòu),形成網(wǎng)表文件。當電路的規(guī)模較大或時序關(guān)系較復雜時,通常采用行為描述方式進行設(shè)計。支持電路的行為描述,是硬件描述語言的最大優(yōu)勢。設(shè)計人員可以擺脫傳統(tǒng)的邏輯器件的限制,設(shè)計出各式各樣的、具有特色和個性的功能模塊,進而構(gòu)成系統(tǒng)。第55頁/共69頁5643模塊的行為描述方式第55頁/共69頁572行為描述模型所謂行為描述,就是在always過程塊中采用各種行為語句描述邏輯功能。注意:在always過程塊中被賦值的所有信號(變量),都必須在數(shù)據(jù)類型說明時定義為寄存器型(通常為reg型或integer型
21、)。第56頁/共69頁572行為描述模型第56頁/共69頁58一般情況下,always進程帶有觸發(fā)條件,這些觸發(fā)條件列在敏感信號表達式中,只有當觸發(fā)條件滿足時,begin-end塊語句才被執(zhí)行。在一個模塊中可以有多個always進程,它們是并發(fā)執(zhí)行的。第57頁/共69頁58一般情況下,always進程帶有觸發(fā)條件,這些觸發(fā)條59always過程塊的功能是:監(jiān)視敏感信號表達式,當該表達式中任意一個信號(變量)的值改變時,就會執(zhí)行一遍塊內(nèi)語句。因此,應(yīng)將所有影響塊內(nèi)取值的信號(變量)列入。當有多個敏感信號時,用or連接。敏感信號表達式又稱敏感事件列表。 例如: ( a ) /當信號a的值發(fā)生改變時
22、 (a or b) /當信號a或信號b的值發(fā)生改變時 a和b稱為電平敏感型信號,代表的觸發(fā)事件是信號除了保持穩(wěn)定狀態(tài)以外的任意一種變化過程。這種電平敏感型信號列表常用在組合邏輯的描述中,以體現(xiàn)輸入隨時影響輸出的組合邏輯特性。第58頁/共69頁59always過程塊的功能是:監(jiān)視敏感信號表達式,當該60例如: (posedge clock) /當clock的上升沿到來時 (negedge clock) /當clock的下降沿到來時 (posedge clock or negedge reset) /當clock的上升沿到來或當reset的下降沿到來 clock和reset信號稱為邊沿敏感型信號,posedge描述對信號的上升沿敏感;negedge描述對信號的下降沿敏感。這種邊沿敏感型信號列表適合描述同步時序電路,以體現(xiàn)同步時序電路的特點在統(tǒng)一時鐘作用下改變電路的狀態(tài)。第59頁/共69頁60例如:第
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 63522-22:2025 EN-FR Electrical relays - Tests and measurements - Part 22: Limiting continuous current
- 【正版授權(quán)】 IEC 63171:2025 RLV EN Connectors for electrical and electronic equipment - Shielded or unshielded free and fixed connectors for balanced single-pair data transmission with c
- 2025年哲學基礎(chǔ)知識測試試題及答案
- 2025年自然資源管理基本知識考試題目及答案
- 2025年信息安全工程師考試試題及答案
- 2025年信息管理與信息系統(tǒng)考試試題及答案
- 2025年數(shù)字營銷考試卷及答案
- 2025年社會法律服務(wù)資格考試試題及答案
- 2025年高中化學復習題及答案
- 2025年創(chuàng)業(yè)實務(wù)與案例分析試題及答案
- 餐廳食材驗收培訓
- 三管感染的預(yù)防與控制
- 水泥廠班組生產(chǎn)中的安全
- 2025年中醫(yī)養(yǎng)生茶飲課件
- 2021年上海市高考英語試卷(春考)(解析卷)
- 大數(shù)據(jù)平臺建設(shè)及運營合作協(xié)議書
- 工程車駕駛員安全培訓
- 跨國公司經(jīng)營與管理課件
- 《水滸傳演講》課件
- 《中國政法大學》課件
- 《湯姆索亞歷險記》測試題(含答案)
評論
0/150
提交評論