硬件描述語言簡介ppt課件_第1頁
硬件描述語言簡介ppt課件_第2頁
硬件描述語言簡介ppt課件_第3頁
硬件描述語言簡介ppt課件_第4頁
硬件描述語言簡介ppt課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第九章第九章 硬件描畫言語簡介硬件描畫言語簡介9.1 概述概述9.2 Verilog HDL簡介簡介9.3 用用Verilog HDL描畫邏輯描畫邏輯電路的實例電路的實例 9.1 概述概述硬件描畫言語硬件描畫言語HDLHardware Description Language 是一種用方式化方法來描畫數(shù)字電路和是一種用方式化方法來描畫數(shù)字電路和數(shù)字邏輯系統(tǒng)的言語。數(shù)字邏輯電路設(shè)計者可利用這數(shù)字邏輯系統(tǒng)的言語。數(shù)字邏輯電路設(shè)計者可利用這種言語來描畫本人的設(shè)計思想,然后利用種言語來描畫本人的設(shè)計思想,然后利用EDA工具進工具進展仿真,再自動綜合到門級電路,最后用展仿真,再自動綜合到門級電路,最后用

2、ASIC或或FPGA實現(xiàn)其功能。實現(xiàn)其功能。舉個例子,在傳統(tǒng)的設(shè)計方法中,對舉個例子,在傳統(tǒng)的設(shè)計方法中,對2輸入的與輸入的與門,我們能夠需到規(guī)范器件庫中調(diào)個門,我們能夠需到規(guī)范器件庫中調(diào)個74系列的器件系列的器件出來,但在硬件描畫言語中,出來,但在硬件描畫言語中,“& 就是一個與門的就是一個與門的方式描畫,方式描畫,“C = A & B就是一個就是一個2輸入與門的描畫。輸入與門的描畫。而而“and就是一個與門器件。就是一個與門器件。 硬件描畫言語開展至今已有二十多年歷史,當硬件描畫言語開展至今已有二十多年歷史,當今業(yè)界的規(guī)范中今業(yè)界的規(guī)范中IEEE規(guī)范主要有規(guī)范主要有VHDL

3、和和Verilog HDL 這兩種硬件描畫言語。這兩種硬件描畫言語。 在數(shù)字電路設(shè)計中,數(shù)字電路可簡單歸納為兩種要素:在數(shù)字電路設(shè)計中,數(shù)字電路可簡單歸納為兩種要素:線和器件。線是器件管腳之間的物理連線;器件也可簡單線和器件。線是器件管腳之間的物理連線;器件也可簡單歸納為組合邏輯器件如與或非門等和時序邏輯器件歸納為組合邏輯器件如與或非門等和時序邏輯器件如存放器、鎖存器、如存放器、鎖存器、RAM等。一個數(shù)字系統(tǒng)硬件等。一個數(shù)字系統(tǒng)硬件就是多個器件經(jīng)過一定的連線關(guān)系組合在一塊的。因此,就是多個器件經(jīng)過一定的連線關(guān)系組合在一塊的。因此,Verilog HDL的建模實踐上就是如何運用的建模實踐上就是如

4、何運用HDL言語對數(shù)字電言語對數(shù)字電路的兩種根本要素的特性及相互之間的關(guān)系進展描畫的過路的兩種根本要素的特性及相互之間的關(guān)系進展描畫的過程。程。9.2 Verilog HDL 簡介簡介模塊模塊module是是Verilog 的根本描畫單位,用于描的根本描畫單位,用于描畫某個設(shè)計的功能或構(gòu)造及與其他模塊通訊的外部端畫某個設(shè)計的功能或構(gòu)造及與其他模塊通訊的外部端口???。模塊在概念上可等同一個器件就如我們調(diào)用通用器件模塊在概念上可等同一個器件就如我們調(diào)用通用器件與門、三態(tài)門等或通用宏單元計數(shù)器、與門、三態(tài)門等或通用宏單元計數(shù)器、ALU、CPU等,因此,一個模塊可在另一個模塊中調(diào)用。等,因此,一個模塊

5、可在另一個模塊中調(diào)用。一個電路設(shè)計可由多個模塊組合而成,因此一個模塊一個電路設(shè)計可由多個模塊組合而成,因此一個模塊的設(shè)計只是一個系統(tǒng)設(shè)計中的某個層次設(shè)計,模塊設(shè)的設(shè)計只是一個系統(tǒng)設(shè)計中的某個層次設(shè)計,模塊設(shè)計可采用多種建模方式。計可采用多種建模方式。模模 塊塊 module三個描畫層次三個描畫層次 開關(guān)級描畫:描畫電阻、晶體管以及它們之間的相互連線關(guān)系。 門級描畫:描畫根本邏輯門、觸發(fā)器以及相互連線關(guān)系。 存放器傳輸級RTL描畫:描畫存放器以及它們之間的數(shù)據(jù)傳送關(guān)系。Verilog HDL 允許一個設(shè)計中每個模塊均在不同設(shè)計允許一個設(shè)計中每個模塊均在不同設(shè)計層次上建模。層次上建模。9.2.1

6、根本程序構(gòu)造根本程序構(gòu)造module ();endmodule幾個簡單事例:幾個簡單事例:例例1 加法器加法器module addr (a, b, cin, cout, sum);input 2:0 a;input 2:0 b;input cin;output cout;output 2:0 sum;assign cout,sum = a +b + cin;endmodule例例2 比較器比較器module compare equal,a,b;input 1:0 a,b; / declare the input signal ;output equare ; / declare the out

7、put signal;assign equare = (a = b) ? 1:0 ;/ * if a = b , output 1, otherwise 0;*/endmodule幾個簡單事例:幾個簡單事例:module mytri (din, d_en, d_out);input din;input d_en;output d_out;assign d_out = d_en ? din :bz;endmodulemodule trist (din, d_en, d_out);input din;input d_en;output d_out;mytri u_mytri(din,d_en,d_

8、out);Endmodule例例3 三態(tài)驅(qū)動器三態(tài)驅(qū)動器幾個簡單事例:幾個簡單事例: 經(jīng)過上面的實例可看出,一個設(shè)計是由一個個模塊經(jīng)過上面的實例可看出,一個設(shè)計是由一個個模塊module構(gòu)成的。一個模塊的設(shè)計如下:構(gòu)成的。一個模塊的設(shè)計如下:1、模塊內(nèi)容是嵌在、模塊內(nèi)容是嵌在module 和和endmodule兩個語句之間。兩個語句之間。每個模塊實現(xiàn)特定的功能,模塊可進展層次的嵌套,因此每個模塊實現(xiàn)特定的功能,模塊可進展層次的嵌套,因此可以將大型的數(shù)字電路設(shè)計分割成大小不一的小模塊來實可以將大型的數(shù)字電路設(shè)計分割成大小不一的小模塊來實現(xiàn)特定的功能,最后經(jīng)過由頂層模塊調(diào)用子模塊來實現(xiàn)整現(xiàn)特定的功

9、能,最后經(jīng)過由頂層模塊調(diào)用子模塊來實現(xiàn)整體功能,這就是體功能,這就是Top-Down的設(shè)計思想,如例的設(shè)計思想,如例3。2、模塊包括接口描畫部分和邏輯功能描畫部分。這可以把、模塊包括接口描畫部分和邏輯功能描畫部分。這可以把模塊與器件相類比。模塊與器件相類比。模塊的構(gòu)造:模塊的構(gòu)造:模塊的端口定義部分:模塊的端口定義部分:如上例:如上例: module addr (a, b, cin, count, sum); 其中其中module 是模塊的保管字,是模塊的保管字,addr 是模塊的名字,相當于器件名。是模塊的名字,相當于器件名。內(nèi)是該模塊的端口聲明,定義了該模塊的管腳名,是內(nèi)是該模塊的端口聲明

10、,定義了該模塊的管腳名,是該模塊與其他模塊通訊的外部接口,相當于器件的該模塊與其他模塊通訊的外部接口,相當于器件的pin。模塊的內(nèi)容,包括模塊的內(nèi)容,包括I/O闡明,內(nèi)部信號、調(diào)用模塊等的聲闡明,內(nèi)部信號、調(diào)用模塊等的聲明語句和功能定義語句。明語句和功能定義語句。I/O闡明語句如:闡明語句如: input 2:0 a; input 2:0 b; input cin; output count; 其中的其中的input 、output、inout 是保管字,定是保管字,定義了管腳信號的流向,義了管腳信號的流向,n:0表示該信號的位寬總線或表示該信號的位寬總線或單根信號線。單根信號線。邏輯功能描畫

11、部分如:邏輯功能描畫部分如: assign d_out = d_en ? din :bz;mytri u_mytri(din,d_en,d_out);功能描畫用來產(chǎn)生各種邏輯主要是組合邏輯和時序功能描畫用來產(chǎn)生各種邏輯主要是組合邏輯和時序邏輯,可用多種方法進展描畫。還可用來實例化一個邏輯,可用多種方法進展描畫。還可用來實例化一個器件,該器件可以是廠家的器件庫也可以是我們本人器件,該器件可以是廠家的器件庫也可以是我們本人用用HDL設(shè)計的模塊相當于在原理圖輸入時調(diào)用一設(shè)計的模塊相當于在原理圖輸入時調(diào)用一個庫元件。在邏輯功能描畫中,主要用到個庫元件。在邏輯功能描畫中,主要用到assign 和和alw

12、ays 兩個語句。兩個語句。3、對每個模塊都要進展端口定義,并闡明輸入、對每個模塊都要進展端口定義,并闡明輸入、輸出口,然后對模塊的功能進展邏輯描畫,當然,輸出口,然后對模塊的功能進展邏輯描畫,當然,對測試模塊,可以沒有輸入輸出口。對測試模塊,可以沒有輸入輸出口。4、Verilog HDL 的書寫格式自在,一行可以寫的書寫格式自在,一行可以寫幾個語句,也可以一個語句分幾行寫。幾個語句,也可以一個語句分幾行寫。5、除、除endmodule 語句外,每個語句后面需有分語句外,每個語句后面需有分號表示該語句終了。號表示該語句終了。模塊的構(gòu)造:模塊的構(gòu)造:9.2.2 詞法構(gòu)成詞法構(gòu)成1、間隔符與注釋符

13、、間隔符與注釋符 在在 Verilog HDL里有兩種方式的注釋:里有兩種方式的注釋:/ 是單行注釋是單行注釋 /* */ 是多行注釋是多行注釋白空新行、制表符、空格沒有特殊意義。白空新行、制表符、空格沒有特殊意義。書寫規(guī)范建議:書寫規(guī)范建議:一個語句一行。一個語句一行。采用空四格的采用空四格的table 鍵進展縮進。鍵進展縮進。2、操作符、操作符 Arithmetic: +, - ! * / Binary operators: &, |, , , ! Shift: Relational: , , =, =, != Logical: &, |9.2.2 詞法構(gòu)成詞法構(gòu)成Exam

14、ples:549 / 十進制十進制h 8FF / 十六進制十六進制o765 / 八進制八進制4 b11 / 4位二進制數(shù)位二進制數(shù) 00113 b10 x / 3位二進制數(shù),最低位不確定位二進制數(shù),最低位不確定5 d3 / 5位十進制數(shù)位十進制數(shù)00003-4b11 / 4位二進制數(shù)位二進制數(shù)0011的補碼,的補碼,11019.2.2 詞法構(gòu)成詞法構(gòu)成3、數(shù)值常量、數(shù)值常量size base valuesize 定義以位計的常量的位長;定義以位計的常量的位長;base 為為o 或或O表示八進制,表示八進制,b 或或B表示二進制,表示二進制,d 或或D表示十進制,表示十進制,h 或或H 表示十六

15、進制之一;表示十六進制之一;value 是基于是基于base 的值的數(shù)字序列。值的值的數(shù)字序列。值x 和和z 以及以及十六進制中的十六進制中的a 到到f 不區(qū)分大小寫。不區(qū)分大小寫。 Verilog HDL中規(guī)定了四種根本的值類型:中規(guī)定了四種根本的值類型: 0:邏輯:邏輯0或或“假;假; 1:邏輯:邏輯1或或“真;真; X:未知值;:未知值; Z:高阻。:高阻。 留意這四種值的解釋都內(nèi)置于言語中。如一個為留意這四種值的解釋都內(nèi)置于言語中。如一個為z 的值的值總是意味著高阻抗,一個為總是意味著高阻抗,一個為0 的值通常是指邏輯的值通常是指邏輯0 。 此外,此外,x 值和值和z 值都不分大小寫。

16、值都不分大小寫。9.2.2 詞法構(gòu)成詞法構(gòu)成3、數(shù)值常量、數(shù)值常量9.2.2 詞法構(gòu)成詞法構(gòu)成4、字符串、字符串5、標識符、標識符6、關(guān)鍵字、關(guān)鍵字字符串是雙引號內(nèi)的字符序列。字符串不能分成多行書寫。字符串是雙引號內(nèi)的字符序列。字符串不能分成多行書寫。標識符是模塊、存放器、端口、連線、例如和標識符是模塊、存放器、端口、連線、例如和begin end 等等元素的稱號,是賦給對象的獨一的稱號。元素的稱號,是賦給對象的獨一的稱號。數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型有數(shù)據(jù)類型有 wire 和和 reg 。wire 用于對構(gòu)造化器件之間的物理連線的建模。如器用于對構(gòu)造化器件之間的物理連線的建模。如器件的管腳,內(nèi)部

17、器件如與門的輸出等。件的管腳,內(nèi)部器件如與門的輸出等。由于線網(wǎng)類型代表的是物理銜接線,因此它不存貯邏由于線網(wǎng)類型代表的是物理銜接線,因此它不存貯邏輯值。必需由器件所驅(qū)動。通常由輯值。必需由器件所驅(qū)動。通常由assign進展賦值。進展賦值。如如 assign A = B C;當一個當一個wire 類型的信號沒有被驅(qū)動時,缺省值為類型的信號沒有被驅(qū)動時,缺省值為Z高阻。高阻。信號沒有定義數(shù)據(jù)類型時,缺省為信號沒有定義數(shù)據(jù)類型時,缺省為 wire 類型。類型。數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型有數(shù)據(jù)類型有 wire 和和 reg 。reg 是最常用的存放器類型,存放器類型通常用于對是最常用的存放器類型,存放器

18、類型通常用于對存儲單元的描畫,如存儲單元的描畫,如D型觸發(fā)器、型觸發(fā)器、ROM等。等。存儲器類型的信號當在某種觸發(fā)機制下分配了一個值,存儲器類型的信號當在某種觸發(fā)機制下分配了一個值,在分配下一個值之時保管原值。在分配下一個值之時保管原值。但必需留意的是,但必需留意的是,reg 類型的變量,不一定是存儲單類型的變量,不一定是存儲單元,如在元,如在always 語句中進展描畫的必需用語句中進展描畫的必需用reg 類型的變類型的變量。量。簡單事例:簡單事例:reg A;always (B or C) beginA = B & C;endalways (B or C) begin X = B

19、& C;endalways (posedge Clk) Y = B & C; always (negedge Clk) Z = B & C; “=用于組合邏輯器件的賦值用于組合邏輯器件的賦值“=用于時序邏輯器件的賦值用于時序邏輯器件的賦值簡單事例:簡單事例:/ 與非門模塊與非門模塊module NAND(in1, in2, out);input in1, in2;output out;assign out = (in1 & in2);endmodule簡單事例:簡單事例:/ 用兩個與非門構(gòu)成與門模塊用兩個與非門構(gòu)成與門模塊module AND(in1, in2,

20、 out);input in1, in2;output out;wire w1;NAND NAND1(in1, in2, w1);NAND NAND2(w1, w1, out);endmodule更多構(gòu)造事例:更多構(gòu)造事例:9.2.3 模塊的描畫方式模塊的描畫方式1、行為描畫方式、行為描畫方式行為描畫方式是經(jīng)過行為語句來描畫電路要實現(xiàn)的功行為描畫方式是經(jīng)過行為語句來描畫電路要實現(xiàn)的功能,表示輸入與輸出間轉(zhuǎn)換的行為,不涉及詳細構(gòu)造。能,表示輸入與輸出間轉(zhuǎn)換的行為,不涉及詳細構(gòu)造。從這個意義上講,行為建模是一種從這個意義上講,行為建模是一種“高級的描畫方高級的描畫方式。式。例:一位例:一位2選選1

21、的數(shù)據(jù)選擇器的數(shù)據(jù)選擇器module mux_2_to_1(a, b, out,outbar,sel);input a, b, sel ;output out,outbar ;assign out = sel? a : b ;assign outbar= out ;endmodule例:一位全加器的行為建模例:一位全加器的行為建模module FA_behav1(A, B, Cin, Sum, Cout );input A,B,Cin;output Sum,Cout;reg Sum, Cout;reg T1,T2,T3;always ( A or B or Cin )beginSum = (A B) Cin ;T1 = A & Cin;T2 = B & Cin ;T3 = A & B;Cout = (T1| T2) | T3;endendmodule2、構(gòu)造描畫方式、構(gòu)造描畫方式構(gòu)造化的建模方式就是經(jīng)過對電路構(gòu)造的描畫來建模,構(gòu)造化的建模方式就是經(jīng)過對電路構(gòu)造的描畫來建模,即經(jīng)過對器件的調(diào)用即經(jīng)過對器件的調(diào)用HDL概念稱為例化,并運用線概念稱為例化,并運用線網(wǎng)來銜接各器件的描畫方式。網(wǎng)來銜

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論