第4章VerilogHDL語言基礎(chǔ)_第1頁
第4章VerilogHDL語言基礎(chǔ)_第2頁
第4章VerilogHDL語言基礎(chǔ)_第3頁
第4章VerilogHDL語言基礎(chǔ)_第4頁
第4章VerilogHDL語言基礎(chǔ)_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2021/6/71第四章Verilog HDL語言基礎(chǔ)2021/6/72Verilog HDLVerilog HDL是目前應(yīng)用最為廣泛的硬件描述語言。是目前應(yīng)用最為廣泛的硬件描述語言。Verilog HDLVerilog HDL可以用來進(jìn)行各種層次的邏輯設(shè)計(jì),也可以進(jìn)行數(shù)可以用來進(jìn)行各種層次的邏輯設(shè)計(jì),也可以進(jìn)行數(shù)字系統(tǒng)的邏輯綜合,仿真驗(yàn)證和時(shí)序分析等。字系統(tǒng)的邏輯綜合,仿真驗(yàn)證和時(shí)序分析等。 Verilog HDLVerilog HDL適合算法級(jí),寄存器級(jí),邏輯級(jí),開關(guān)級(jí)、系適合算法級(jí),寄存器級(jí),邏輯級(jí),開關(guān)級(jí)、系統(tǒng)級(jí)和版圖級(jí)等各個(gè)層次的設(shè)計(jì)和描述。統(tǒng)級(jí)和版圖級(jí)等各個(gè)層次的設(shè)計(jì)和描述。Ver

2、ilog HDLVerilog HDL進(jìn)行設(shè)計(jì)最大的優(yōu)點(diǎn)是其工藝無關(guān)性。這使得進(jìn)行設(shè)計(jì)最大的優(yōu)點(diǎn)是其工藝無關(guān)性。這使得工程師在功能設(shè)計(jì),邏輯驗(yàn)證階段可以不必過多考慮門級(jí)及工工程師在功能設(shè)計(jì),邏輯驗(yàn)證階段可以不必過多考慮門級(jí)及工藝實(shí)現(xiàn)的具體細(xì)節(jié),只需根據(jù)系統(tǒng)設(shè)計(jì)的要求施加不同的約束藝實(shí)現(xiàn)的具體細(xì)節(jié),只需根據(jù)系統(tǒng)設(shè)計(jì)的要求施加不同的約束條件,即可設(shè)計(jì)出實(shí)際電路。條件,即可設(shè)計(jì)出實(shí)際電路。 2021/6/73模塊化設(shè)計(jì)理念支持以模塊集合的形式構(gòu)造數(shù)字系統(tǒng)。利用層支持以模塊集合的形式構(gòu)造數(shù)字系統(tǒng)。利用層次化、結(jié)構(gòu)化的設(shè)計(jì)方法,一個(gè)完整的硬件設(shè)計(jì)任務(wù)可以劃分成次化、結(jié)構(gòu)化的設(shè)計(jì)方法,一個(gè)完整的硬件設(shè)計(jì)任

3、務(wù)可以劃分成若干個(gè)模塊,每一個(gè)模塊又可以劃分成若干個(gè)子模塊,子模塊還若干個(gè)模塊,每一個(gè)模塊又可以劃分成若干個(gè)子模塊,子模塊還可以進(jìn)一步劃分。可以進(jìn)一步劃分。各個(gè)模塊可以是自主開發(fā)的模塊,也可以是從商業(yè)渠道購買各個(gè)模塊可以是自主開發(fā)的模塊,也可以是從商業(yè)渠道購買的具有知識(shí)產(chǎn)權(quán)的的具有知識(shí)產(chǎn)權(quán)的IPIP核。核。2021/6/7442 VerilogHDL基礎(chǔ)知識(shí)Verilog HDLVerilog HDL的運(yùn)算符與的運(yùn)算符與C C語言的運(yùn)算符幾乎完全相同,但數(shù)語言的運(yùn)算符幾乎完全相同,但數(shù)據(jù)類型是據(jù)類型是Verilog HDLVerilog HDL特有的。特有的。在實(shí)際應(yīng)用中,要認(rèn)真體會(huì)、深入理解

4、硬件描述語言與軟件在實(shí)際應(yīng)用中,要認(rèn)真體會(huì)、深入理解硬件描述語言與軟件編程語言的本質(zhì)區(qū)別。編程語言的本質(zhì)區(qū)別。421 VerilogHDL模塊結(jié)構(gòu)模塊是模塊是Verilog HDLVerilog HDL的基本單元,的基本單元,用于描述某個(gè)設(shè)計(jì)的功能用于描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu)以及與其他模塊通信的外部端口或結(jié)構(gòu)以及與其他模塊通信的外部端口。模塊的實(shí)際意義是代表硬件電路上的邏輯實(shí)體,每個(gè)模塊都模塊的實(shí)際意義是代表硬件電路上的邏輯實(shí)體,每個(gè)模塊都實(shí)現(xiàn)特定的功能。實(shí)現(xiàn)特定的功能。2021/6/75模塊的基本結(jié)構(gòu)2021/6/76Verilog HDL語言描述模塊結(jié)構(gòu)舉例VerilogHDLVerilo

5、gHDL模塊結(jié)構(gòu)完全嵌在模塊結(jié)構(gòu)完全嵌在modulemodule和和endmoduleendmodule關(guān)鍵字關(guān)鍵字之間,包括四部分,即模塊聲明、端口定義、信號(hào)類型說明和之間,包括四部分,即模塊聲明、端口定義、信號(hào)類型說明和邏輯功能定義。邏輯功能定義。2021/6/771模塊聲明模塊聲明包括模塊名和模塊的端口列表。其格式如下:模塊聲明包括模塊名和模塊的端口列表。其格式如下:Module Module 模塊名模塊名( (端口名端口名1,1,端口名端口名2,2,端口名端口名n)n); 模塊的其他部分模塊的其他部分 endmodule endmodule 模塊結(jié)束關(guān)鍵字模塊結(jié)束關(guān)鍵字模塊端口列表中端

6、口名的排列順序是任意的。模塊端口列表中端口名的排列順序是任意的。2021/6/782端口(Port)定義端口是模塊與外界或其他模塊進(jìn)行連接、通信的信號(hào)線。端口是模塊與外界或其他模塊進(jìn)行連接、通信的信號(hào)線。因此,對(duì)端口列表中哪些端口是輸入端口、哪些端口是輸出端因此,對(duì)端口列表中哪些端口是輸入端口、哪些端口是輸出端口要進(jìn)行明確說明??谝M(jìn)行明確說明。在在Verilog HDLVerilog HDL中有中有3 3種端口類型;輸入端口、輸出端口、種端口類型;輸入端口、輸出端口、雙向端口雙向端口( (既可用作輸入也可用作輸出既可用作輸入也可用作輸出) )。 2021/6/79)用)用inputinput

7、定義輸入端口,格式如下:定義輸入端口,格式如下: input input 位寬位寬 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n;)用)用outputoutput定義輸出端口,格式如下:定義輸出端口,格式如下: output output 位寬位寬 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n;)用)用inoutinout定義雙向端口,格式如下:定義雙向端口,格式如下: inout inout 位寬位寬 端口名端口名1 1,端口名,端口名2 2,端口名,端口名n n; 使用上述使用上述3 3種定義格式時(shí)應(yīng)注意:種定義格式時(shí)應(yīng)注意: 位寬的說明應(yīng)遵循位寬的說明

8、應(yīng)遵循n:1n:1或或n-1:0n-1:0的規(guī)則;的規(guī)則; 不同位寬的端口應(yīng)分別定義;不同位寬的端口應(yīng)分別定義; 位寬說明省略時(shí),默認(rèn)值為位寬說明省略時(shí),默認(rèn)值為1 1。2021/6/7103數(shù)據(jù)(信號(hào))類型說明在模塊中用到的所有信號(hào)在模塊中用到的所有信號(hào)( (包括端口信號(hào)、節(jié)點(diǎn)信號(hào)、中間包括端口信號(hào)、節(jié)點(diǎn)信號(hào)、中間變量等變量等) )都必須進(jìn)行數(shù)據(jù)類型的定義。都必須進(jìn)行數(shù)據(jù)類型的定義。VerilogHDLVerilogHDL中提供了各種中提供了各種信號(hào)類型,最常用的是信號(hào)類型,最常用的是連線型連線型(wire)(wire)、寄存器型、寄存器型(reg)(reg)和參數(shù)型和參數(shù)型(paramet

9、er)(parameter)。數(shù)據(jù)類型定義的實(shí)例:數(shù)據(jù)類型定義的實(shí)例: reg 4reg 4:1 cout1 cout; 定義信號(hào)定義信號(hào)coutcout的數(shù)據(jù)類型為的數(shù)據(jù)類型為4 4位寄存器位寄存器(reg)(reg)型型 wire awire a,b b,c c; 定義信號(hào)定義信號(hào)a a,b b,c c為為1 1位連線位連線(wire)(wire)型型 注意:注意:輸入端口輸入端口和和雙向端口雙向端口不能說明為寄存器型;端口信號(hào)的數(shù)不能說明為寄存器型;端口信號(hào)的數(shù)據(jù)類型說明缺省時(shí),據(jù)類型說明缺省時(shí),EDAEDA的綜合器將其默認(rèn)為的綜合器將其默認(rèn)為wirewire型。型。2021/6/711

10、4邏輯功能定義 模塊中的核心部分是邏輯功能的定義。模塊中的核心部分是邏輯功能的定義。Verilog HDLVerilog HDL提供了多種邏輯功能的定義方式,其中提供了多種邏輯功能的定義方式,其中調(diào)用邏調(diào)用邏輯門元件輯門元件( (元件例化元件例化) )、持續(xù)賦值語句、持續(xù)賦值語句(assign)(assign)、過程塊、過程塊(always)(always)3 3種定義方式比較常用。種定義方式比較常用。相對(duì)應(yīng)在模塊設(shè)計(jì)中的相對(duì)應(yīng)在模塊設(shè)計(jì)中的3 3種描述方法:種描述方法:門級(jí)描述方式、數(shù)據(jù)門級(jí)描述方式、數(shù)據(jù)流描述方式、行為描述方式,以及以上混合描述方式流描述方式、行為描述方式,以及以上混合描述

11、方式。2021/6/7121)通過調(diào)用邏輯門元件(元件例化)定義通過調(diào)用通過調(diào)用Verilog HDLVerilog HDL提供的內(nèi)置邏輯門元件,按照元件模提供的內(nèi)置邏輯門元件,按照元件模型,進(jìn)行它們之間的信號(hào)連接,完成邏輯電路的結(jié)構(gòu)描述。型,進(jìn)行它們之間的信號(hào)連接,完成邏輯電路的結(jié)構(gòu)描述。采用這種方法可以將傳統(tǒng)的電路原理圖轉(zhuǎn)換成采用這種方法可以將傳統(tǒng)的電路原理圖轉(zhuǎn)換成Verilog HDLVerilog HDL文本形式。文本形式。例例1 1: and myand3(outand myand3(out,a a,b)b)例例2 2: and u3(fand u3(f,a a,b b,c)c);2

12、021/6/7132)用持續(xù)賦值語句(assign)定義assignassign語句一般用在數(shù)據(jù)流描述方式中,常用來描述組合語句一般用在數(shù)據(jù)流描述方式中,常用來描述組合邏輯電路的功能,稱為持續(xù)賦值方式。邏輯電路的功能,稱為持續(xù)賦值方式。這種描述方式比較簡單,只需將傳統(tǒng)邏輯表達(dá)式轉(zhuǎn)換成符這種描述方式比較簡單,只需將傳統(tǒng)邏輯表達(dá)式轉(zhuǎn)換成符合合VerilogHDLVerilogHDL規(guī)范的表達(dá)式放在關(guān)鍵字規(guī)范的表達(dá)式放在關(guān)鍵字assignassign后面即可。后面即可。例如:例如: assign Fassign F(A&B)|(C&D)(A&B)|(C&D);3)用過程塊(always)定義行為描述

13、方式中采用行為描述方式中采用alwaysalways定義邏輯功能時(shí),可不關(guān)心電定義邏輯功能時(shí),可不關(guān)心電路結(jié)構(gòu),只描述電路的行為,即在某種輸入情況下產(chǎn)生相應(yīng)的路結(jié)構(gòu),只描述電路的行為,即在某種輸入情況下產(chǎn)生相應(yīng)的輸出。輸出。硬件描述語言支持與邏輯電路結(jié)構(gòu)無關(guān)的行為描述。行為硬件描述語言支持與邏輯電路結(jié)構(gòu)無關(guān)的行為描述。行為描述轉(zhuǎn)化為具體電路結(jié)構(gòu)的工作由描述轉(zhuǎn)化為具體電路結(jié)構(gòu)的工作由EDAEDA工具完成。工具完成。2021/6/714例、用例、用alwaysalways過程塊描述一個(gè)過程塊描述一個(gè)4 4位計(jì)數(shù)器。位計(jì)數(shù)器。 module counter(outmodule counter(out

14、,resetreset,clk)clk); output 4output 4:1 out1 out; input resetinput reset,clkclk; reg 4reg 4:1 out1 out; always (posedge clk)always (posedge clk) begin beginif(reset) out=0if(reset) out=0; else out=out+1else out=out+1; endend endmodule endmodule2021/6/7152021/6/7164.2.2 詞法表示2021/6/7172021/6/7182021/

15、6/7192021/6/720423 數(shù)據(jù)類型 數(shù)據(jù)類型數(shù)據(jù)類型(DataType)(DataType)也稱為變量類型。在也稱為變量類型。在Verilog HDLVerilog HDL中,中,數(shù)據(jù)類型用來表示數(shù)字電路中的物理連線、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)傳數(shù)據(jù)類型用來表示數(shù)字電路中的物理連線、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)傳送等物理量。送等物理量。 VerilogHDLVerilogHDL中共有中共有1919種數(shù)據(jù)類型,分成種數(shù)據(jù)類型,分成連線型連線型(Net Type)(Net Type)和和寄存器型寄存器型(Register Type)(Register Type)兩類。兩類。 其中最常用的是其中最常用的是wire

16、wire型、型、regreg型和型和parameterparameter型。型。2021/6/7211連線型數(shù)據(jù)用來描述電路中的各種物理連接,沒有狀態(tài)保持能力,輸出用來描述電路中的各種物理連接,沒有狀態(tài)保持能力,輸出隨著輸入變化而變化。必須對(duì)網(wǎng)絡(luò)型數(shù)據(jù)進(jìn)行連續(xù)的驅(qū)動(dòng)。隨著輸入變化而變化。必須對(duì)網(wǎng)絡(luò)型數(shù)據(jù)進(jìn)行連續(xù)的驅(qū)動(dòng)。有兩種驅(qū)動(dòng)連線型數(shù)據(jù)的方式,有兩種驅(qū)動(dòng)連線型數(shù)據(jù)的方式,一是在結(jié)構(gòu)描述中將其連接一是在結(jié)構(gòu)描述中將其連接到邏輯門的輸出端或其他模塊的輸出端;另一種是用到邏輯門的輸出端或其他模塊的輸出端;另一種是用assignassign語句語句進(jìn)行賦值進(jìn)行賦值。當(dāng)沒有獲得驅(qū)動(dòng)時(shí),它的取值為。當(dāng)沒

17、有獲得驅(qū)動(dòng)時(shí),它的取值為z z。Verilog HDLVerilog HDL中的連線型數(shù)據(jù)包括中的連線型數(shù)據(jù)包括wirewire型、型、tritri型、型、worwor型、型、triortrior型、型、wandwand型、型、triandtriand型、型、triltril型、型、triotrio型、型、triregtrireg型、型、vectoredvectored型、型、largelarge型、型、mediummedium型、型、scalaredscalared型、型、smallsmall型。其型。其中,在可綜合模塊中最常用的是中,在可綜合模塊中最常用的是wirewire型。型。2021

18、/6/722wire型數(shù)據(jù)用來表示用用來表示用assignassign語句賦值的組合邏輯信號(hào)。語句賦值的組合邏輯信號(hào)。Verilog HDLVerilog HDL模塊輸入輸出端口信號(hào)類型說明缺省時(shí),自動(dòng)定義為模塊輸入輸出端口信號(hào)類型說明缺省時(shí),自動(dòng)定義為wirewire型。型。wirewire型變量可以用作任何表達(dá)時(shí)的輸入,也可用作型變量可以用作任何表達(dá)時(shí)的輸入,也可用作assignassign語句、元件調(diào)用語句和模塊調(diào)用語句的輸出。語句、元件調(diào)用語句和模塊調(diào)用語句的輸出。wirewire型變量的取值可為型變量的取值可為0 0、1 1、X X、Z Z。wirewire型數(shù)據(jù)的定義格型數(shù)據(jù)的定義

19、格式如下:式如下:wire wire 數(shù)據(jù)名數(shù)據(jù)名1 1,數(shù)據(jù)名,數(shù)據(jù)名2 2,數(shù)據(jù)名,數(shù)據(jù)名n n;位寬遵循位寬遵循nn:11或或n-1n-1:00規(guī)則進(jìn)行說明,可定義多位的規(guī)則進(jìn)行說明,可定義多位的wirewire型向量;位寬說明缺省時(shí),默認(rèn)定義型向量;位寬說明缺省時(shí),默認(rèn)定義1 1位的位的wirewire型變量型變量( (標(biāo)標(biāo)量量) )。不同位寬的。不同位寬的wirewire型數(shù)據(jù)必須分別定義。型數(shù)據(jù)必須分別定義。2021/6/7232021/6/7242寄存器型數(shù)據(jù)是物理電路中數(shù)據(jù)存儲(chǔ)單元的抽象,對(duì)應(yīng)數(shù)字電路中具有是物理電路中數(shù)據(jù)存儲(chǔ)單元的抽象,對(duì)應(yīng)數(shù)字電路中具有狀態(tài)保持作用的元件,如

20、觸發(fā)器、寄存器等。其特點(diǎn)是:狀態(tài)保持作用的元件,如觸發(fā)器、寄存器等。其特點(diǎn)是:具有具有記憶功能,必須明確賦值才能改變其狀態(tài),否則一直保持上一記憶功能,必須明確賦值才能改變其狀態(tài),否則一直保持上一次的賦值狀態(tài)。次的賦值狀態(tài)。設(shè)計(jì)中,設(shè)計(jì)中,寄存器型變量只能在過程塊寄存器型變量只能在過程塊( (例如例如always)always)中,通中,通過過程賦值語句進(jìn)行賦值過過程賦值語句進(jìn)行賦值。換言之,。換言之,在過程塊在過程塊( (如如always)always)內(nèi)被內(nèi)被賦值的每一個(gè)信號(hào),都必須在數(shù)據(jù)類型說明時(shí)定義成寄存器型賦值的每一個(gè)信號(hào),都必須在數(shù)據(jù)類型說明時(shí)定義成寄存器型。 在在Verilog H

21、DLVerilog HDL中有中有5 5種寄存器型數(shù)據(jù),它們是種寄存器型數(shù)據(jù),它們是regreg型、型、integerinteger型、型、parameterparameter型、型、realreal型和型和timetime型??删C合模塊中使型。可綜合模塊中使用的是用的是integerinteger型、型、regreg型和型和parameterparameter型。型。2021/6/725常用寄存器型數(shù)據(jù)介紹 integerinteger型數(shù)據(jù)是一種純數(shù)學(xué)的抽象描述,能定義帶符號(hào)的型數(shù)據(jù)是一種純數(shù)學(xué)的抽象描述,能定義帶符號(hào)的3232位整型數(shù)據(jù),不對(duì)應(yīng)任何具體的硬件電路。用作位整型數(shù)據(jù),不對(duì)應(yīng)任

22、何具體的硬件電路。用作forfor循環(huán)語句循環(huán)語句中的循環(huán)變量。格式:中的循環(huán)變量。格式: integer integer 變量名變量名1 1,變量名,變量名2 2,變量名,變量名n n; regreg型數(shù)據(jù)通常用作在型數(shù)據(jù)通常用作在alwaysalways過程塊中被賦值的信號(hào),也可過程塊中被賦值的信號(hào),也可用于表達(dá)式的輸入。格式:用于表達(dá)式的輸入。格式:reg reg ,數(shù)據(jù)名,數(shù)據(jù)名1 1,數(shù)據(jù)名,數(shù)據(jù)名2 2,數(shù)據(jù)名,數(shù)據(jù)名n n;可定義多位的可定義多位的regreg型向量;位寬說明缺省時(shí),默認(rèn)定義型向量;位寬說明缺省時(shí),默認(rèn)定義1 1位位的的regreg型變量型變量( (標(biāo)量標(biāo)量) )

23、。不同位寬的。不同位寬的regreg型數(shù)據(jù)必須分別定義。型數(shù)據(jù)必須分別定義。在使用在使用regreg型數(shù)據(jù)時(shí),可以域選或全選。型數(shù)據(jù)時(shí),可以域選或全選。2021/6/726類型定義和使用舉例2021/6/7272021/6/728424 Verilog HDL的運(yùn)算符Verilog HDLVerilog HDL提供了豐富的運(yùn)算符提供了豐富的運(yùn)算符(Operators)(Operators),按功能分,按功能分成成9 9大類,包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、關(guān)系運(yùn)算大類,包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、關(guān)系運(yùn)算符、等式運(yùn)算符、歸約運(yùn)算符、移位運(yùn)算符、條件運(yùn)算符以及符、等式運(yùn)算符、歸約

24、運(yùn)算符、移位運(yùn)算符、條件運(yùn)算符以及拼接運(yùn)算符。拼接運(yùn)算符。按運(yùn)算符所帶操作數(shù)的個(gè)數(shù)來區(qū)分,可分為按運(yùn)算符所帶操作數(shù)的個(gè)數(shù)來區(qū)分,可分為3 3類:類:單目運(yùn)算符單目運(yùn)算符(unaryoperator)(unaryoperator):帶一個(gè)操作數(shù)。:帶一個(gè)操作數(shù)。 o-o-雙目運(yùn)算符雙目運(yùn)算符(binaryoperator)(binaryoperator):帶兩個(gè)操作數(shù)。:帶兩個(gè)操作數(shù)。三目運(yùn)算符三目運(yùn)算符(ternaryoperator)(ternaryoperator):帶三個(gè)操作數(shù)。:帶三個(gè)操作數(shù)。2021/6/7292021/6/7302021/6/7312021/6/7322021/6/

25、7332021/6/7342021/6/7352021/6/7362021/6/7372021/6/7382021/6/7392021/6/7402021/6/74143 VerilogHDL模塊的3種建模方式從從VerilogHDLVerilogHDL的描述風(fēng)格看,分為結(jié)構(gòu)描述、數(shù)據(jù)流描述、的描述風(fēng)格看,分為結(jié)構(gòu)描述、數(shù)據(jù)流描述、行為描述以及混合描述。行為描述以及混合描述。通過一個(gè)例子認(rèn)識(shí)通過一個(gè)例子認(rèn)識(shí)Verilog HDLVerilog HDL的的3 3種建模方式,圖中電路實(shí)種建模方式,圖中電路實(shí)現(xiàn)的功能是,當(dāng)現(xiàn)的功能是,當(dāng)sel=0sel=0時(shí),時(shí),outouta a;當(dāng);當(dāng)selse

26、l1 1時(shí),時(shí),out=bout=b。2021/6/7422021/6/7432021/6/7442021/6/745431 模塊的結(jié)構(gòu)描述方式1 1結(jié)構(gòu)描述的概念結(jié)構(gòu)描述的概念Verilog HDLVerilog HDL結(jié)構(gòu)描述是通過調(diào)用邏輯元件,描述它們之間結(jié)構(gòu)描述是通過調(diào)用邏輯元件,描述它們之間的連接,建立邏輯電路的模型。的連接,建立邏輯電路的模型。邏輯元件,包括邏輯元件,包括Verilog HDLVerilog HDL內(nèi)置門級(jí)元件、內(nèi)置開關(guān)級(jí)元內(nèi)置門級(jí)元件、內(nèi)置開關(guān)級(jí)元件、自主開發(fā)的已有模塊或商業(yè)件、自主開發(fā)的已有模塊或商業(yè)IPIP模塊。結(jié)構(gòu)描述的核心是邏模塊。結(jié)構(gòu)描述的核心是邏輯元件

27、的模型及其調(diào)用方法。輯元件的模型及其調(diào)用方法。 與傳統(tǒng)的具有固定輸入輸出數(shù)量的邏輯門器件不同,與傳統(tǒng)的具有固定輸入輸出數(shù)量的邏輯門器件不同,Verilog HDLVerilog HDL中的內(nèi)置門級(jí)元件是一種動(dòng)態(tài)模型,可以根據(jù)用戶中的內(nèi)置門級(jí)元件是一種動(dòng)態(tài)模型,可以根據(jù)用戶調(diào)用時(shí)的輸入輸出列表動(dòng)態(tài)生成相應(yīng)的電路結(jié)構(gòu)。調(diào)用時(shí)的輸入輸出列表動(dòng)態(tài)生成相應(yīng)的電路結(jié)構(gòu)。2021/6/746、內(nèi)置、內(nèi)置邏輯元件邏輯元件2021/6/747多輸入多輸入多輸出多輸出2021/6/7482021/6/7492021/6/7502021/6/7512021/6/752432 模塊的數(shù)據(jù)流描述方式1 1數(shù)據(jù)流描述的概

28、念數(shù)據(jù)流描述的概念根據(jù)信號(hào)根據(jù)信號(hào)( (變量變量) )之間的邏輯關(guān)系,采用持續(xù)賦值語句描述之間的邏輯關(guān)系,采用持續(xù)賦值語句描述邏輯電路的方式,稱為數(shù)據(jù)流描述。即將傳統(tǒng)意義上的邏輯電路的方式,稱為數(shù)據(jù)流描述。即將傳統(tǒng)意義上的“邏輯邏輯表達(dá)式表達(dá)式”,運(yùn)用運(yùn)算符,變成持續(xù)賦值語句中的表達(dá)式。,運(yùn)用運(yùn)算符,變成持續(xù)賦值語句中的表達(dá)式。格式:格式:assign assign 連線型變量名連線型變量名= =賦值表達(dá)式;賦值表達(dá)式;持續(xù)賦值語句是并發(fā)執(zhí)行的,每條持續(xù)賦值語句對(duì)應(yīng)著獨(dú)持續(xù)賦值語句是并發(fā)執(zhí)行的,每條持續(xù)賦值語句對(duì)應(yīng)著獨(dú)立的邏輯電路,它們的執(zhí)行順序與其在描述中的順序無關(guān)。立的邏輯電路,它們的執(zhí)行

29、順序與其在描述中的順序無關(guān)。2021/6/7532021/6/7542021/6/7552021/6/75643模塊的行為描述方式1 1行為描述的概念行為描述的概念邏輯電路的行為描述關(guān)注邏輯電路輸入輸出的因果關(guān)系邏輯電路的行為描述關(guān)注邏輯電路輸入輸出的因果關(guān)系( (行行為特性為特性) ),即在何種輸入條件下,產(chǎn)生何種輸出,即在何種輸入條件下,產(chǎn)生何種輸出( (操作操作) ),并不關(guān),并不關(guān)心電路的內(nèi)部結(jié)構(gòu)。心電路的內(nèi)部結(jié)構(gòu)。EDAEDA的綜合工具能自動(dòng)將行為描述轉(zhuǎn)換成電的綜合工具能自動(dòng)將行為描述轉(zhuǎn)換成電路結(jié)構(gòu),形成網(wǎng)表文件。路結(jié)構(gòu),形成網(wǎng)表文件。當(dāng)電路的規(guī)模較大或時(shí)序關(guān)系較復(fù)雜時(shí),通常采用行為

30、描述當(dāng)電路的規(guī)模較大或時(shí)序關(guān)系較復(fù)雜時(shí),通常采用行為描述方式進(jìn)行設(shè)計(jì)。支持電路的行為描述,是硬件描述語言的最大優(yōu)方式進(jìn)行設(shè)計(jì)。支持電路的行為描述,是硬件描述語言的最大優(yōu)勢(shì)。設(shè)計(jì)人員可以擺脫傳統(tǒng)的邏輯器件的限制,設(shè)計(jì)出各式各樣勢(shì)。設(shè)計(jì)人員可以擺脫傳統(tǒng)的邏輯器件的限制,設(shè)計(jì)出各式各樣的、具有特色和個(gè)性的功能模塊,進(jìn)而構(gòu)成系統(tǒng)。的、具有特色和個(gè)性的功能模塊,進(jìn)而構(gòu)成系統(tǒng)。2021/6/7572 2行為描述模型行為描述模型所謂行為描述,就是在所謂行為描述,就是在alwaysalways過程塊中采用各種行為語句描過程塊中采用各種行為語句描述邏輯功能。述邏輯功能。注意:注意:在在alwaysalways過

31、程塊中被賦值的所有信號(hào)過程塊中被賦值的所有信號(hào)( (變量變量) ),都必須,都必須在數(shù)據(jù)類型說明時(shí)定義為寄存器型在數(shù)據(jù)類型說明時(shí)定義為寄存器型( (通常為通常為regreg型或型或integerinteger型型) )。2021/6/758一般情況下,一般情況下,alwaysalways進(jìn)程帶有觸發(fā)條件,這些觸發(fā)條件列進(jìn)程帶有觸發(fā)條件,這些觸發(fā)條件列在敏感信號(hào)表達(dá)式中,只有當(dāng)觸發(fā)條件滿足時(shí),在敏感信號(hào)表達(dá)式中,只有當(dāng)觸發(fā)條件滿足時(shí),begin-endbegin-end塊語塊語句才被執(zhí)行。句才被執(zhí)行。在一個(gè)模塊中可以有多個(gè)在一個(gè)模塊中可以有多個(gè)alwaysalways進(jìn)程,它們是并發(fā)執(zhí)行的。進(jìn)程

32、,它們是并發(fā)執(zhí)行的。2021/6/759alwaysalways過程塊的功能是:監(jiān)視敏感信號(hào)表達(dá)式,當(dāng)該表達(dá)式過程塊的功能是:監(jiān)視敏感信號(hào)表達(dá)式,當(dāng)該表達(dá)式中任意一個(gè)信號(hào)中任意一個(gè)信號(hào)( (變量變量) )的值改變時(shí),就會(huì)執(zhí)行一遍塊內(nèi)語句。因的值改變時(shí),就會(huì)執(zhí)行一遍塊內(nèi)語句。因此,應(yīng)將所有影響塊內(nèi)取值的信號(hào)此,應(yīng)將所有影響塊內(nèi)取值的信號(hào)( (變量變量) )列入。列入。當(dāng)有多個(gè)敏感信號(hào)時(shí),用當(dāng)有多個(gè)敏感信號(hào)時(shí),用oror連接。敏感信號(hào)表達(dá)式又稱敏感連接。敏感信號(hào)表達(dá)式又稱敏感事件列表。事件列表。 例如:例如: ( a ) ( a ) /當(dāng)信號(hào)當(dāng)信號(hào)a a的值發(fā)生改變時(shí)的值發(fā)生改變時(shí) (a or b

33、) (a or b) /當(dāng)信號(hào)當(dāng)信號(hào)a a或信號(hào)或信號(hào)b b的值發(fā)生改變時(shí)的值發(fā)生改變時(shí) a a和和b b稱為電平敏感型信號(hào),代表的觸發(fā)事件是信號(hào)除了保持稱為電平敏感型信號(hào),代表的觸發(fā)事件是信號(hào)除了保持穩(wěn)定狀態(tài)以外的任意一種變化過程。穩(wěn)定狀態(tài)以外的任意一種變化過程。這種電平敏感型信號(hào)列表常用在組合邏輯的描述中,以體現(xiàn)這種電平敏感型信號(hào)列表常用在組合邏輯的描述中,以體現(xiàn)輸入隨時(shí)影響輸出的組合邏輯特性。輸入隨時(shí)影響輸出的組合邏輯特性。2021/6/760例如:例如: (posedge clock) (posedge clock) /當(dāng)當(dāng)clockclock的上升沿到來時(shí)的上升沿到來時(shí) (neged

34、ge clock) (negedge clock) /當(dāng)當(dāng)clockclock的下降沿到來時(shí)的下降沿到來時(shí) (posedge clock or negedge reset)(posedge clock or negedge reset) /當(dāng)當(dāng)clockclock的上升沿到來或當(dāng)?shù)纳仙氐絹砘虍?dāng)resetreset的下降沿到來的下降沿到來 clockclock和和resetreset信號(hào)稱為邊沿敏感型信號(hào),信號(hào)稱為邊沿敏感型信號(hào),posedgeposedge描述對(duì)信描述對(duì)信號(hào)的上升沿敏感;號(hào)的上升沿敏感;negedgenegedge描述對(duì)信號(hào)的下降沿敏感。描述對(duì)信號(hào)的下降沿敏感。這種邊沿敏感型信號(hào)列表適合描述同步時(shí)序電路,以體現(xiàn)這種邊沿敏感型信號(hào)列表適合描述同步時(shí)序電路,以體現(xiàn)

溫馨提示

  • 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)論