![硬件描述語言及其程序設計方法_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/4aaa2018-7192-4afd-9dc5-509de1fcd5d0/4aaa2018-7192-4afd-9dc5-509de1fcd5d01.gif)
![硬件描述語言及其程序設計方法_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/4aaa2018-7192-4afd-9dc5-509de1fcd5d0/4aaa2018-7192-4afd-9dc5-509de1fcd5d02.gif)
![硬件描述語言及其程序設計方法_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/4aaa2018-7192-4afd-9dc5-509de1fcd5d0/4aaa2018-7192-4afd-9dc5-509de1fcd5d03.gif)
![硬件描述語言及其程序設計方法_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/4aaa2018-7192-4afd-9dc5-509de1fcd5d0/4aaa2018-7192-4afd-9dc5-509de1fcd5d04.gif)
![硬件描述語言及其程序設計方法_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/6/4aaa2018-7192-4afd-9dc5-509de1fcd5d0/4aaa2018-7192-4afd-9dc5-509de1fcd5d05.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第講硬件描述語言及其程序設計方法第1頁,共34頁。目目 錄錄qSOC設計概述設計概述q可編程邏輯器件可編程邏輯器件 q硬件描述語言及其程序設計方法硬件描述語言及其程序設計方法 qSOC的設計基本工具和方法的設計基本工具和方法qSOC設計實例設計實例第2頁,共34頁。Verilog HDL 簡介簡介qVerilog HDL是一種硬件描述語言,用于從算法級、門級到開關級的多種是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數(shù)字系統(tǒng)建模。抽象設計層次的數(shù)字系統(tǒng)建模。qVerilog HDL語言具有下述描述能力:語言具有下述描述能力:設計的行為特性設計的行為特性設計的數(shù)據(jù)流特性設計的
2、數(shù)據(jù)流特性設計的結(jié)構(gòu)組成設計的結(jié)構(gòu)組成包含響應監(jiān)控和設計驗證方面的時延和波形產(chǎn)生機制。包含響應監(jiān)控和設計驗證方面的時延和波形產(chǎn)生機制。qVerilog HDL語言不僅定義了語法,而且對每個語法結(jié)構(gòu)都定義了清語言不僅定義了語法,而且對每個語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進行驗證。仿真器進行驗證。第3頁,共34頁。Verilog HDL 簡介簡介qVerilog HDL硬件描述語言的主要能力:硬件描述語言的主要能力:基本邏輯門,例如基本邏輯門,例如and、or和和nand等都內(nèi)置在語言
3、中。等都內(nèi)置在語言中。用戶定義原語(用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時序邏輯原語。以是時序邏輯原語。開關級基本結(jié)構(gòu)模型,例如開關級基本結(jié)構(gòu)模型,例如pmos和和nmos等也被內(nèi)置在語言中。等也被內(nèi)置在語言中。提供顯式語言結(jié)構(gòu)指定設計中端口到端口的時延及路徑時延和設計的時序檢查。提供顯式語言結(jié)構(gòu)指定設計中端口到端口的時延及路徑時延和設計的時序檢查??刹捎萌N不同方式或混合方式對設計建模。這些方式包括:可采用三種不同方式或混合方式對設計建模。這些方式包括:行為描述方式行為描述方式使用過程化結(jié)構(gòu)建
4、模;使用過程化結(jié)構(gòu)建模;數(shù)據(jù)流方式數(shù)據(jù)流方式使用連續(xù)賦值語句方式建模;使用連續(xù)賦值語句方式建模;結(jié)構(gòu)化方式結(jié)構(gòu)化方式使用門和模塊實例語句描述建模。使用門和模塊實例語句描述建模。第4頁,共34頁。Verilog HDL 簡介簡介qVerilog HDL硬件描述語言的主要能力(續(xù)):硬件描述語言的主要能力(續(xù)):Verilog HDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲元件。件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲元件。能夠描述層次設計,可使用模塊實例結(jié)構(gòu)描述
5、任何層次。能夠描述層次設計,可使用模塊實例結(jié)構(gòu)描述任何層次。設計的規(guī)??梢允侨我獾?;語言不對設計的規(guī)模(大?。┦┘尤魏蜗拗?。設計的規(guī)??梢允侨我獾?;語言不對設計的規(guī)模(大?。┦┘尤魏蜗拗?。Verilog HDL不再是某些公司的專有語言而是不再是某些公司的專有語言而是IEEE標準。標準。人和機器都可以閱讀人和機器都可以閱讀Verilog語言,因此它可以作為語言,因此它可以作為EDA的工具和設計者之的工具和設計者之間的交互語言。間的交互語言。第5頁,共34頁。Verilog HDL 簡介簡介qVerilog HDL硬件描述語言的主要能力(續(xù)):硬件描述語言的主要能力(續(xù)):Verilog HDL語
6、言的描述能力能夠通過使用編程語言接口(語言的描述能力能夠通過使用編程語言接口(PLI)機制進一)機制進一步擴展。步擴展。PLI是允許外部函數(shù)訪問是允許外部函數(shù)訪問Verilog模塊內(nèi)信息、允許設計者與模擬器模塊內(nèi)信息、允許設計者與模擬器交互的例程集合。交互的例程集合。設計能夠在多個層次上加以描述,從開關級、門級、寄存器傳輸級(設計能夠在多個層次上加以描述,從開關級、門級、寄存器傳輸級(RTL)到算法級,包括進程和隊列級。到算法級,包括進程和隊列級。能夠使用內(nèi)置開關級原語在開關級對設計完整建模。能夠使用內(nèi)置開關級原語在開關級對設計完整建模。同一語言可用于生成模擬激勵和指定測試的驗證約束條件,例如
7、輸入值的指定。同一語言可用于生成模擬激勵和指定測試的驗證約束條件,例如輸入值的指定。Verilog HDL能夠監(jiān)控模擬驗證的執(zhí)行,即模擬驗證執(zhí)行過程中設計的值能夠被能夠監(jiān)控模擬驗證的執(zhí)行,即模擬驗證執(zhí)行過程中設計的值能夠被監(jiān)控和顯示。監(jiān)控和顯示。第6頁,共34頁。Verilog HDL 簡介簡介qVerilog HDL硬件描述語言的主要能力(續(xù)):硬件描述語言的主要能力(續(xù)):在行為級描述中,在行為級描述中,Verilog HDL不僅能夠在不僅能夠在RTL級上進行設計描述,而且能夠在體系級上進行設計描述,而且能夠在體系結(jié)構(gòu)級描述及其算法級行為上進行設計描述。結(jié)構(gòu)級描述及其算法級行為上進行設計描
8、述。能夠使用門和模塊實例化語句在結(jié)構(gòu)級進行結(jié)構(gòu)描述。能夠使用門和模塊實例化語句在結(jié)構(gòu)級進行結(jié)構(gòu)描述。Verilog HDL還具有內(nèi)置邏輯函數(shù),例如還具有內(nèi)置邏輯函數(shù),例如&(按位與按位與)和和 | (按位或按位或)。對高級編程語言結(jié)構(gòu),例如條件語句、情況語句和循環(huán)語句,語言中都可以使用。對高級編程語言結(jié)構(gòu),例如條件語句、情況語句和循環(huán)語句,語言中都可以使用??梢燥@式地對并發(fā)和定時進行建模??梢燥@式地對并發(fā)和定時進行建模。提供強有力的文件讀寫能力。提供強有力的文件讀寫能力。語言在特定情況下是非確定的,即在不同的模擬器上模型可以產(chǎn)生不同的結(jié)果;語言在特定情況下是非確定的,即在不同的模擬器上
9、模型可以產(chǎn)生不同的結(jié)果;例如,事件隊列上的事件順序在標準中沒有定義。例如,事件隊列上的事件順序在標準中沒有定義。第7頁,共34頁。Verilog程序的結(jié)構(gòu)程序的結(jié)構(gòu)q模塊是模塊是Verilog的基本描述單位,用于描述某個設計的功能或的基本描述單位,用于描述某個設計的功能或結(jié)構(gòu)及其與其他模塊通信的外部端口。結(jié)構(gòu)及其與其他模塊通信的外部端口。q一個設計的結(jié)構(gòu)可使用開關級原語、門級原語和用戶一個設計的結(jié)構(gòu)可使用開關級原語、門級原語和用戶定義的原語方式描述;定義的原語方式描述;q設計的數(shù)據(jù)流行為使用連續(xù)賦值語句進行描述;設計的數(shù)據(jù)流行為使用連續(xù)賦值語句進行描述;q時序行為使用過程結(jié)構(gòu)描述。時序行為使用
10、過程結(jié)構(gòu)描述。q一個模塊可以在另一個模塊中使用。一個模塊可以在另一個模塊中使用。第8頁,共34頁。Verilog程序的結(jié)構(gòu)程序的結(jié)構(gòu)qVerilog程序由關鍵詞程序由關鍵詞module和和endmodule進行定義進行定義qVerilog HDL 大小寫敏感大小寫敏感 port declarationsdata type declarationsfunctionalitytiming specificationendmodulemodule name (port_list);第9頁,共34頁。Verilog程序的組成部分程序的組成部分這這5個組件的排個組件的排列順序是任意列順序是任意的,可以選
11、擇的,可以選擇其中的一個或其中的一個或幾個組件構(gòu)成幾個組件構(gòu)成一個一個Verilog程程序。序。endmodulemodule Name,port list, port declarations(if ports present)parameters(optional),),Declarations of wires, regs and other variablesData flow statements( assign )Always and initial blocks,All behavioral statements go in these blocks.Instantiation
12、of lower level modulesTasks and functions第10頁,共34頁。時延時延qVerilog HDL模型中的所有時延都根據(jù)單位定義。模型中的所有時延都根據(jù)單位定義。q下面是帶時延的連續(xù)賦值語句實例:下面是帶時延的連續(xù)賦值語句實例: assign #2 Sum = A B; #2指指2個時間單位。個時間單位。q如果沒有說明時延時間單位,如果沒有說明時延時間單位,Verilog HDL模擬器會指定模擬器會指定一個缺省時間單位。一個缺省時間單位。qIEEE Verilog HDL標準中沒有規(guī)定缺省時間單位。標準中沒有規(guī)定缺省時間單位。第11頁,共34頁。數(shù)據(jù)流描述數(shù)
13、據(jù)流描述q一般使用連續(xù)賦值一般使用連續(xù)賦值assign語句描述,主要語句描述,主要用于組合邏輯電路建模。用于組合邏輯電路建模。module mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel;assign out1=(sel & b) | (sel & a);endmodulemodule mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel;assign out1= sel ? b : a;endmodule第12頁,共34頁。行為描述行為
14、描述q一般使用一般使用Initial或或Always語句描述,可以語句描述,可以對組合、時序邏輯電路建模。對組合、時序邏輯電路建模。module mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel;always (sel or a or b)begin case (sel) 1b0 : out1 = a; 1b1 : out1 = b; endcaseendendmodulemodule mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel;always (
15、sel or a or b)begin if (sel) out1 = b; else out1 = a;endendmodule第13頁,共34頁。結(jié)構(gòu)描述結(jié)構(gòu)描述q一般使用一般使用內(nèi)部元件(內(nèi)部元件(Primitive)、自定義的下層模塊對電路進、自定義的下層模塊對電路進行描述。主要用于層次化設計中。行描述。主要用于層次化設計中。module mux2_1(out1,a,b,sel); output out1; input a,b,sel; not (sel_, sel);and (a1, a, sel_);and (b1, b, sel_);or (out1, a1, b1);endmo
16、dule第14頁,共34頁?;旌显O計描述混合設計描述q結(jié)構(gòu)結(jié)構(gòu)和和行為行為描述方式可以自由混合。模塊描述中可以包含實例化描述方式可以自由混合。模塊描述中可以包含實例化的門、模塊實例化語句、連續(xù)賦值語句以及的門、模塊實例化語句、連續(xù)賦值語句以及a l w a y s語句和語句和i n i t i a l語句的混合。它們之間可以相互包含。語句的混合。它們之間可以相互包含。q來自來自a l w a y s語句和語句和i n i t i a l語句(語句(切記只有寄存器類型數(shù)據(jù)可切記只有寄存器類型數(shù)據(jù)可以在這兩種語句中賦值以在這兩種語句中賦值)的值能夠驅(qū)動門或開關。)的值能夠驅(qū)動門或開關。q而來自于門
17、或連續(xù)賦值語句(而來自于門或連續(xù)賦值語句(只能驅(qū)動線網(wǎng)只能驅(qū)動線網(wǎng))的值能夠反過來用)的值能夠反過來用于觸發(fā)于觸發(fā)a l w a y s語句和語句和i n i t i a l語句。語句。第15頁,共34頁?;旌显O計描述混合設計描述q實例:混合設計方式的實例:混合設計方式的1位全加器位全加器module FA_Mix(A,B,Cin,Sum,Cout); input A,B,Cin; output Sum,Cout; reg Cout; reg T1,T2,T3; wire S1;xor X1(S1,A,B); /門實例語句門實例語句always (A or B or Cin) /always
18、語句語句begin T1 = A & B; T2 = A & Cin; T3 = B & Cin; Cout = (T1 | T2) | T3;endassign Sum = S1 Cin; /連續(xù)賦值語句連續(xù)賦值語句endmodule 第16頁,共34頁。Verilog 基礎知識基礎知識q間隔符:空格、間隔符:空格、TAB鍵、換行符及換頁符鍵、換行符及換頁符q注釋注釋單行注釋用單行注釋用/標志起頭和回車符結(jié)尾標志起頭和回車符結(jié)尾多行注釋用多行注釋用/*標志起頭和標志起頭和*/標志結(jié)尾標志結(jié)尾q標識符標識符可以是任意一組字母、數(shù)字、可以是任意一組字母、數(shù)字、$符號和符號
19、和_(下劃線下劃線)符號的組合;符號的組合;必須是由字母或下劃線開頭,長度小于必須是由字母或下劃線開頭,長度小于1024字符;字符;轉(zhuǎn)義標識符以反斜杠轉(zhuǎn)義標識符以反斜杠“”開頭,以空白符結(jié)尾的任何字符序列;開頭,以空白符結(jié)尾的任何字符序列;標識符區(qū)分大、小寫。標識符區(qū)分大、小寫。q關鍵詞:關鍵詞:Verilog HDL 內(nèi)部已使用的詞,關鍵詞都是小寫。內(nèi)部已使用的詞,關鍵詞都是小寫。q格式:區(qū)分大小寫。自由格式,即結(jié)構(gòu)可以跨越多行編寫。格式:區(qū)分大小寫。自由格式,即結(jié)構(gòu)可以跨越多行編寫。第17頁,共34頁。Verilog 基礎知識基礎知識q系統(tǒng)任務和函數(shù)系統(tǒng)任務和函數(shù)以以$字符開始的標識符表示
20、系統(tǒng)任務或系統(tǒng)函數(shù);字符開始的標識符表示系統(tǒng)任務或系統(tǒng)函數(shù);任務提供了一種封裝行為的機制,任務可以返回任務提供了一種封裝行為的機制,任務可以返回0個或多個值;個或多個值;函數(shù)除只能返回一個值以外與任務相同;函數(shù)除只能返回一個值以外與任務相同;函數(shù)在函數(shù)在0時刻執(zhí)行,即不允許延遲,而任務可以帶有延遲。時刻執(zhí)行,即不允許延遲,而任務可以帶有延遲。q編譯指令:以編譯指令:以(反引號反引號)開始的某些標識符開始的某些標識符define和和undef,ifdef、else和和 endif,default_nettypeinclude,resetall,timescaleunconneted_drive和
21、和nounconnected_drivecelldefine和和endcelldefine第18頁,共34頁。Verilog 基礎知識基礎知識q四種基本的值四種基本的值0:邏輯:邏輯0或或“假假”1:邏輯:邏輯1或或“真真”x:未知:未知z:高阻:高阻q三類常量三類常量整型數(shù):簡單的十進制格式,基數(shù)格式(整型數(shù):簡單的十進制格式,基數(shù)格式(5O37,4B1x_01)實數(shù):十進制計數(shù)法,科學計數(shù)法實數(shù):十進制計數(shù)法,科學計數(shù)法字符串:字符串是雙引號的字符序列,字符串不能分成多行書寫字符串:字符串是雙引號的字符序列,字符串不能分成多行書寫q參數(shù)參數(shù)參數(shù)是一個常量,經(jīng)常用于定義時延和變量的寬度。參數(shù)
22、是一個常量,經(jīng)常用于定義時延和變量的寬度。信號等級信號等級信信 號號 強強 度度關關 鍵鍵 字字7Supply Drivesupply0supply16Strong Drivestrong0strong15Pull Drivepull0pull14Large Capacitancelarge3Weak Driveweak0weak12Medium Capacitancemedium1Small Capacitancesmall0Hi Impedance (no drive)highz0highz1第19頁,共34頁。Verilog 基礎知識基礎知識q數(shù)據(jù)類型數(shù)據(jù)類型線網(wǎng)類型。線網(wǎng)類型。net
23、type表示表示Verilog結(jié)構(gòu)化元件間的物理連線。結(jié)構(gòu)化元件間的物理連線。它的值由驅(qū)動元件的值決定;如果沒有驅(qū)動元件連接到線它的值由驅(qū)動元件的值決定;如果沒有驅(qū)動元件連接到線網(wǎng),線網(wǎng)的缺省值為網(wǎng),線網(wǎng)的缺省值為z。寄存器類型。寄存器類型。register type表示一個抽象的數(shù)據(jù)存儲單元,它只能表示一個抽象的數(shù)據(jù)存儲單元,它只能在在always語句和語句和initial語句中被賦值,并且它的值從一個賦值語句中被賦值,并且它的值從一個賦值到另一個賦值被保存下來。寄存器類型的變量具有到另一個賦值被保存下來。寄存器類型的變量具有x的缺省的缺省值。值。第20頁,共34頁。Verilog 基礎知識
24、基礎知識qNets數(shù)據(jù)類型:表示元件之間的結(jié)構(gòu)化連接數(shù)據(jù)類型:表示元件之間的結(jié)構(gòu)化連接wire和和tri線網(wǎng):是最常見的線網(wǎng)類型。線網(wǎng):是最常見的線網(wǎng)類型。wor和和trior線網(wǎng):如果某個驅(qū)動源為線網(wǎng):如果某個驅(qū)動源為1,那么線網(wǎng)的值也為,那么線網(wǎng)的值也為1。wand和和triand線網(wǎng):如果某個驅(qū)動源為線網(wǎng):如果某個驅(qū)動源為0,那么線網(wǎng)的值為,那么線網(wǎng)的值為0。trireg線網(wǎng):此線網(wǎng)存儲數(shù)值(類似于寄存器),并且用于電容節(jié)點的建模。線網(wǎng):此線網(wǎng)存儲數(shù)值(類似于寄存器),并且用于電容節(jié)點的建模。tri0和和tri1線網(wǎng):這類線網(wǎng)可用于線邏輯的建模,即線網(wǎng)有多于一個驅(qū)動線網(wǎng):這類線網(wǎng)可用于線
25、邏輯的建模,即線網(wǎng)有多于一個驅(qū)動源。源。supply0和和supply1線網(wǎng):線網(wǎng):supply0用于對用于對“地地”建模,即低電平建模,即低電平0;supply1用于對用于對電源建模,即高電平電源建模,即高電平1。第21頁,共34頁。Verilog 基礎知識基礎知識qRegister數(shù)據(jù)類型:在程序塊中作變量用,對信號賦值需要用該數(shù)據(jù)數(shù)據(jù)類型:在程序塊中作變量用,對信號賦值需要用該數(shù)據(jù)類型,賦值時用關鍵字類型,賦值時用關鍵字initial或或always開始。開始。reg寄存器類型:是最常見的數(shù)據(jù)類型寄存器類型:是最常見的數(shù)據(jù)類型.integer寄存器類型:整數(shù)寄存器包含整數(shù)值,可以作為普通
26、寄存器使用,寄存器類型:整數(shù)寄存器包含整數(shù)值,可以作為普通寄存器使用,典型應用為高層次行為建模。典型應用為高層次行為建模。time類型:用于存儲和處理時間。類型:用于存儲和處理時間。real和和realtime類型:實數(shù)寄存器(或?qū)崝?shù)時間寄存器)。類型:實數(shù)寄存器(或?qū)崝?shù)時間寄存器)。第22頁,共34頁。Verilog 表達式表達式q操作數(shù)操作數(shù)常數(shù),參數(shù),線網(wǎng),寄存器,位選擇,部分選擇,存儲器單元,函數(shù)調(diào)用。常數(shù),參數(shù),線網(wǎng),寄存器,位選擇,部分選擇,存儲器單元,函數(shù)調(diào)用。q標量線網(wǎng):標量線網(wǎng):線寬只有一條的連線,位數(shù)只有一位的寄存器。線寬只有一條的連線,位數(shù)只有一位的寄存器。q向量線網(wǎng):向
27、量線網(wǎng):線寬大于一條的連線,位數(shù)大于一位的寄存器。線寬大于一條的連線,位數(shù)大于一位的寄存器。q向量線網(wǎng)可選用關鍵詞向量線網(wǎng)可選用關鍵詞scalared或或vectored定義。如果一個線網(wǎng)定義時定義。如果一個線網(wǎng)定義時使用了關鍵詞使用了關鍵詞vectored,那么就不允許位選擇和部分選擇該線網(wǎng)。,那么就不允許位選擇和部分選擇該線網(wǎng)。換句話說,必須對線網(wǎng)整體賦值。換句話說,必須對線網(wǎng)整體賦值。q存儲器的表示(存儲器的表示(Memory):存儲器是一個寄存器數(shù)組。:存儲器是一個寄存器數(shù)組。q宏文本替換(宏文本替換(define):):define指令用于文本替換,它很像指令用于文本替換,它很像C語
28、言中的語言中的#define 指令,如:指令,如:define MAX_BUS_SIZE 32第23頁,共34頁。Verilog 表達式表達式q運算符(運算符(9類)類)算術運算符:算術運算符: +、-、*、/、%位運算符:位運算符: 、&、|、縮位運算符(單目):縮位運算符(單目): &、&、|、|、邏輯運算符:邏輯運算符: !、&、|關系運算符(雙目):關系運算符(雙目): 、=相等與全等運算符:相等與全等運算符: =、!=、=、!=邏輯移位運算符:邏輯移位運算符: 連接運算符:連接運算符: 條件運算符:條件運算符: ?:第24頁,共34頁。門電平模型化門電
29、平模型化q在在Verilog HDL語言中已預定義了門級原型語言中已預定義了門級原型 and n-input AND gate nand n-input NAND bate or n-input OR gate nor n-input NOR gate xor n-input exclusive OR gate xnor n-input exclusive NOR gate buf n-output buffer not n-output inverter bufif0 tri-state buffer; Io enable bufif1 tri-state buffer; hi enable
30、 notif0 tri-state inverter; Io enable notif1 tri-state inverter; hi enable第25頁,共34頁。門電平模型化門電平模型化q在在Verilog HDL語言中已預定義了單向和雙向的晶體管級語言中已預定義了單向和雙向的晶體管級原型原型Pmos uni-directional PMOS switch rpmos resistive PMOS switchnmos uni-directional NMOS switch rnmos resistive NMOS switchcmos uni-directional CMOS swit
31、ch rcmos resistive CMOS switch pullup pullup resistor tran bi-directional pass transistor rtran resistive pass transistor tranif0 bi-directional trnasistor;Io enable rtranif resistive transitor; Io enable tranif1 bi-directional transistor;hi enable rtranif1 resistive transistor; hi enable pulldow pu
32、lldown resistor第26頁,共34頁。用戶定義的原語用戶定義的原語qUDP的定義的定義primitive UDP_name (OutputName, List_of_inputs) Output_declaration List_of_input_declarations Reg_declaration Initial_statement table List_of_tabel_entries endtableendprimitive第27頁,共34頁。用戶定義的原語用戶定義的原語q在組合電路在組合電路UDP中,表規(guī)定了不同的輸入組合和相對應的輸出中,表規(guī)定了不同的輸入組合和相對應
33、的輸出值。值。q在時序電路在時序電路UDP中,使用中,使用1位寄存器描述內(nèi)部狀態(tài)。該寄存器的值是位寄存器描述內(nèi)部狀態(tài)。該寄存器的值是時序電路時序電路UDP的輸出值。共有兩種不同類型的時序的輸出值。共有兩種不同類型的時序 電路電路UDP:模擬電平觸發(fā)行為模擬電平觸發(fā)行為模擬邊沿觸發(fā)行為模擬邊沿觸發(fā)行為q時序電路時序電路UDP使用寄存器當前值和輸入值決定寄存器的下一狀使用寄存器當前值和輸入值決定寄存器的下一狀態(tài)(和后繼的輸出)。態(tài)(和后繼的輸出)。第28頁,共34頁。Verilog 程序設計程序設計qif-else 條件語句條件語句qcase 語句語句qfor循環(huán)語句循環(huán)語句 if (條件表達式條
34、件表達式) 塊語句塊語句1else if (條件表達式條件表達式2) 塊語句塊語句2else if (條件表達式條件表達式n) 塊語句塊語句nelse 塊語句塊語句n+1case (敏感表達式敏感表達式) 值值1: 塊語句塊語句1 值值2: 塊語句塊語句2 值值n: 塊語句塊語句n default:塊語句:塊語句n+1endcasefor (表達式表達式1;表達式;表達式2;表達式;表達式3)塊語句)塊語句第29頁,共34頁。Verilog 程序設計程序設計q賦值語句賦值語句q阻塞型過程賦值阻塞型過程賦值賦值算符賦值算符“” :前一條語句沒有完成賦值過程之前,后面的語句不可:前一條語句沒有完成
35、賦值過程之前,后面的語句不可能被執(zhí)行。能被執(zhí)行。q非阻塞型過程賦值非阻塞型過程賦值賦值算符賦值算符“” :一條非阻塞型賦值語句的執(zhí)行,并不會影響塊中其它語句的:一條非阻塞型賦值語句的執(zhí)行,并不會影響塊中其它語句的執(zhí)行。執(zhí)行。q連續(xù)賦值語句連續(xù)賦值語句只要輸入端操作數(shù)的值發(fā)生變化,該語句就重新計算并刷新賦值結(jié)果。用關鍵詞只要輸入端操作數(shù)的值發(fā)生變化,該語句就重新計算并刷新賦值結(jié)果。用關鍵詞assign來區(qū)分。來區(qū)分?;拘问剑夯拘问剑海煌獠磕J剑和獠磕J剑?;內(nèi)部模式:內(nèi)部模式: ;定時控制分為兩類:定時控制分為兩類:延時控制延時控制 事件控制事件控制 (事件控制敏感表)事件控制敏感表)第30頁,共34頁。Verilog 程序設計程序設計q任務(任務(task)q函數(shù)(函數(shù)(function) q任務和函數(shù)結(jié)構(gòu)之間的差異:任務和函數(shù)結(jié)構(gòu)之間的差異:一個任務塊可以含有一個任務塊可以含有時間控制結(jié)構(gòu)時間控制結(jié)構(gòu),而函數(shù)塊則沒有;而函數(shù)塊則沒有;一個任務塊可以有一個任務塊可以有輸入和輸出輸入和輸出,而,而函數(shù)塊必須有至少一個輸入,沒函數(shù)塊必須有至少一個輸入,沒有任何輸出;有任何輸出;任務塊的引發(fā)是通過任務塊的引發(fā)是通過一條語句一條語句,而函,而函數(shù)塊只有當它被引用在一個數(shù)塊只有當它被引用在一個表達式表達
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)兩間門面租賃合同
- 單位向私人借款合同書
- 國際空運運輸代理合同
- 風險管理與應對策略制定作業(yè)指導書
- 2025年泰安考從業(yè)資格證貨運試題
- 小學三年級,五年級下冊數(shù)學口算題比賽試卷
- 小學二年級數(shù)學萬以內(nèi)口算題
- 2025年北京交通運輸從業(yè)資格證怎樣考試
- 2025年西藏貨運從業(yè)資格證模擬考試系統(tǒng)
- 2025年烏蘭察布下載貨運從業(yè)資格證模擬考試題
- 2024年同等學力人員申請碩士學位英語試卷與參考答案
- 臨床用血管理培訓
- 介入手術室護理風險
- 小學一年級數(shù)學20以內(nèi)的口算題(可直接打印A4)
- 春季安全行車教育培訓
- 2024年6月第3套英語六級真題
- 2024年江蘇省公務員錄用考試《行測》題(A類)
- 2024年10月時政100題(附答案)
- 江蘇省無錫市2024年中考數(shù)學試卷(含答案)
- 2024年保密知識測試試題及答案(奪冠)
- 北師大版八年級下冊因式分解(分組分解法)100題及答案
評論
0/150
提交評論