《Verilog HDL數字系統(tǒng)設計-原理、實例及仿真》課件第2章_第1頁
《Verilog HDL數字系統(tǒng)設計-原理、實例及仿真》課件第2章_第2頁
《Verilog HDL數字系統(tǒng)設計-原理、實例及仿真》課件第2章_第3頁
《Verilog HDL數字系統(tǒng)設計-原理、實例及仿真》課件第2章_第4頁
《Verilog HDL數字系統(tǒng)設計-原理、實例及仿真》課件第2章_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章VerilogHDL基礎2.1VerilogHDL的特點2.2程序設計流程2.3程序的基本結構2.4語法基礎

2.1VerilogHDL的特點

VerilogHDL語言描述硬件單元的結構簡單、易讀,其最大特點就是易學易用,如果有C語言的編程經驗,在一個較短的時間內即能很快掌握。但VerilogHDL較自由的語法,也容易使初學者犯一些錯誤,這一點應注意。

VerilogHDL語言具有多種描述能力,包括設計的行為特性、設計的數據流特性、設計的結構組成以及包含響應監(jiān)控和設計驗證方面的時延和波形產生機制。

VerilogHDL語言編寫的模型可使用Verilog仿真器進行驗證,它從C編程語言中繼承了多種操作符和結構。VerilogHDL提供了擴展的建模能力,其中許多擴展最初很難理解,但是VerilogHDL的核心子集非常易于學習和使用,這對大多數建模應用來說已經足夠。完整的硬件描述語言可以對從最復雜的芯片到完整的電子系統(tǒng)進行描述,主要特點如下:

(1)?VerilogHDL是一種用于數字邏輯電路描述的語言,主要用于邏輯電路的建模、仿真和設計。

(2)用VerilogHDL描述的電路設計就是該電路的VerilogHDL模型。

(3)?VerilogHDL既是一種行為描述語言也是一種結構描述語言,既可以用電路的功能描述,也可以用元器件和它們之間的連接來建立所設計電路的VerilogHDL模型。

(4)?Verilog模型可以是實際電路不同級別的抽象,這些抽象的級別和它們對應的模型類型共有以下五種:

系統(tǒng)級(System)——用高級語言結構實現(xiàn)設計模塊行為的模型;

算法級(Algorithmic)——用高級語言結構實現(xiàn)設計算法行為的模型,部分可綜合;

RTL級(RegisterTransferLevel)——描述數據在寄存器之間流動和處理這些數據行為的模型,可綜合;

門級(Gate-Level)——描述邏輯門以及邏輯門之間連接的模型;

開關級(Switch-Level)——描述器件中三極管和存儲器件以及它們之間連接的模型。

2.2程序設計流程

圖2.1所示是一個典型的FPGA/CPLD設計流程,而如果是ASIC設計,則不需要STEP5這個環(huán)節(jié),只要把綜合后的結果直接交給集成電路生產廠家即可。圖2.1典型的FPGA/CPLD設計流程2.3程序的基本結構

2.3.1模塊的概念

模塊(module)是VerilogHDL設計中的基本描述單位,用于描述某個設計的功能或結構及其與其他模塊通信的外部端口。每個VerilogHDL設計的系統(tǒng)都是由若干個模塊組成的,所以在學習基本語法之前有必要了解模塊的概念。模塊具有如下特征:

(1)每個模塊在語言形式上是以關鍵詞module開始、以關鍵詞endmodule結束的一段程序。

(2)模塊代表硬件電路上的邏輯實體,其范圍可以從簡單的門到整個大的系統(tǒng),比如一個計數器、一個存儲子系統(tǒng)、一個微處理器等。

(3)模塊可以根據描述方法的不同定義成行為型或結構型(或者是二者的組合)。行為型模塊通過傳統(tǒng)的編程語言結構定義數字系統(tǒng)(模塊)的狀態(tài),如使用if條件語句、賦值語句等。結構型模塊是將數字系統(tǒng)(模塊)的狀態(tài)表達為具有層次概念的互相連接的子模塊。

(4)每個模塊都可實現(xiàn)特定的功能。

(5)模塊是分層的,高層模塊通過調用、連接底層模塊的實例來實現(xiàn)復雜的功能。

(6)模塊之間是并行運行的。

圖2.2是一個完整模塊的結構示意圖,從圖中我們可以看出模塊作為VerilogHDL設計中最基本的單元的結構組成。圖2.2模塊結構示意圖

模塊名是模塊唯一性的標識符(模塊的名稱)。

端口定義是端口(輸入、輸出和雙向端口)的列表,這些端口用來與其他模塊進行連接。端口類型有三種:輸入端口(input)、輸出端口(output)和輸入/輸出(雙向)端口(inout)。

通過圖2.3模塊的端口示意圖,我們可以更清楚地了解模塊端口。圖2.3模塊的端口示意圖

數據類型聲明是對模塊中所用到的信號(包括端口信號、節(jié)點信號等)進行數據類型的定義,也就是指定數據對象為寄存器型、存儲器型、線型等。

邏輯功能定義是模塊中最核心的部分,有多種方法可在模塊中描述和定義邏輯功能,還可以調用函數(function)和任務(task)來描述邏輯功能,可以包含initial結構、always結構、連續(xù)賦值或模塊實例等。

標識模塊結束的endmodule之后沒有分號。

【例2.1】一個三位二進制加法器。

【例2.2】2選1數據選擇器。圖2.42選1數據選擇器邏輯圖

【例2.3】一位比較器。

【例2.4】調用子模塊舉例。2.3.2模塊的調用

模塊調用是VerilogHDL結構描述的基本構成方式。我們可以把一個模塊看做由其他模塊像積木塊一樣搭建而成的,所有被當前模塊調用的其他模塊都屬于低一層次的模塊,如果當前模塊不再被其他模塊所調用,那么這個模塊一定是所謂的頂層模塊。在一個硬件系統(tǒng)的描述中必定有而且只能有一個頂層模塊。

【例2.5】以二選一數據選擇器為例,實現(xiàn)模塊調用。調用模塊實例的一般形式如下:

<模塊名><參數列表><實例名><端口列表>;

其中,<模塊名>是要調用子模塊的名稱,如上例中調用的是mymux2;<參數列表>是傳輸到子模塊的參數值,參數傳遞的典型應用是定義門級時延,例2.5中沒有用到;<實例名>是把子模塊實例化后的名稱,例2.5中的實例名是m2;<端口列表>是實現(xiàn)子模塊連接并實現(xiàn)高層模塊功能的關鍵。2.3.3模塊的測試

VerilogHDL模型建成之后,為確保其正確性,應當對模塊進行測試,這需要編寫測試程序(testbench),也即用一段程序產生測試信號序列,作為待測模塊的輸入信號,并測試被測模塊的輸出信號,用以測試所設計的模塊能否正常運行。

【例2.6】2選1數據選擇器測試模塊的描述。進行功能仿真后可以得到圖2.5的仿真波形和圖2.6的仿真監(jiān)測結果,通過對這些輸入、輸出信號進行分析,檢查模塊的功能是否滿足設計要求。圖2.5仿真波形

圖2.6仿真監(jiān)測結果上述程序仿真后將產生如下結果:

(1)仿真器執(zhí)行所有的事件后自行停止,因此不需要指定仿真結束時間。

(2)在VerilogHDL硬件編程中,模塊的調用是硬件的實現(xiàn),每一次調用(實例化)都將產生實現(xiàn)這個模塊功能的一組電路。

2.4語法基礎

2.4.1程序基本格式

VerilogHDL是一種書寫格式非常自由的語言,即語句可以在一行內編寫,也可跨行編寫;每一句均用分號分隔;由空格(\b)、制表符(\t)和換行符組成空白符,在文本中起一個分隔符的作用,在編譯時被忽略。例如:

initialbeginTop

=3'b001;#2Top

=3'b011;end

和下面的程序一樣:2.4.2注釋語句

VerilogHDL中有兩種注釋的方式。

1.多行注釋

多行注釋以起始符“/*”開始,以終止符“*/”結束,兩個符號之間的語句都是注釋語句,因此可擴展到多行。例如:

【例2.7】多行注釋舉例。

2.單行注釋

單行注釋以符號//開頭,表示以//開始到本行結束都屬于注釋語句,而且它只能注釋到本行結束。

【例2.8】單行注釋舉例。

regin1,in2; //定義兩個寄存器變量in1、in22.4.3標識符和關鍵字

標識符(identifier)用于定義模塊名、端口名、信號名等。VerilogHDL中的標識符可以是任意一組字母、數字、$符號和_(下劃線)符號的組合,但標識符的第一個字符必須是字母或者下劃線,不能是數字。單個標識符的總字符數不能超過1024個。另外,標識符是區(qū)分大小寫的。以下是標識符的幾個例子:2.4.4參數聲明

在VerilogHDL中用parameter來定義常量,即用parameter來定義一個代表常量的標識符,稱為符號常量,采用標識符常量可提高程序的可讀性和可維護性。parameter型數據是一種常數型的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論