0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog語法基礎

工程師 ? 來源:網絡整理 ? 作者:h1654155205.5246 ? 2019-03-08 14:29 ? 次閱讀

Verilog語法基礎

一、Verilog HDL

Verilog HDL是一種用于數字系統(tǒng)設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型也稱為模塊。Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,無論描述電路功能行為的模塊或描述元器件或較大部件互連的模塊都可以用Verilog語言來建立電路模型。如果按照一定的規(guī)矩編寫,功能行為模塊可以通過工具自動地轉換為門級互連模塊。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種:

1.1、 系統(tǒng)級(system): 用語言提供的高級結構實現設計模塊外部性能的模型。

1.2、 算法級(algorithm): 用語言提供的高級結構實現算法運行的模型。

1.3、 RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理和控制這些數據流動的模型。

1.4、 門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。

1.5、 開關級(switch-level):描述器件中三極管和儲存節(jié)點以及它們之間連接的模型。

二、Verilog HDL模塊

一個復雜電路系統(tǒng)的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊有交互聯系的現存電路或激勵信號源。利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,并對所作設計的邏輯電路進行嚴格的驗證。

Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下功能:

(1)、可描述順序執(zhí)行或并行執(zhí)行的程序結構。

(2)、用延遲表達式或事件表達式來明確地控制過程的啟動時間。

(3)、通過命名的事件來觸發(fā)其它過程里的激活行為或停止行為。

(4)、提供了條件、if-else、case、循環(huán)程序結構。

(5)、提供了可帶參數且非零延續(xù)時間的任務(task)程序結構。

(6)、提供了可定義新的操作符的函數結構(function)。

(7)、提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。

Verilog HDL作為一種高級的硬件描述編程語言,與C語言的風格有許多類似之處。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習Verilog HDL并不困難。我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,就能利用它的強大功能來設計復雜的數字邏輯電路系統(tǒng)。

三、模塊的結構

3.1.模塊的結構

Verilog的基本設計單元是“模塊”(block)。一個模塊是由兩部分組成的,一部分描述接口,另一部分描述邏輯功能,即定義輸入是如何影響輸出的。下面舉例說明:

請看上面的例子: 程序模塊旁邊有一個電路圖的符號。在許多方面,程序模塊和電路圖符號是一致的,這是因為電路圖符號的引腳也就是程序模塊的接口。而程序模塊描述了電路圖符號所實現的邏輯功能。以上就是設計一個簡單的Verilog程序模塊所需的全部內容。從上面的例子可以看出,Verilog結構位于在module和endmodule聲明語句之間,每個Verilog程序包括四個主要部分:端口定義、I/O說明、內部信號聲明、功能定義。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110100
  • 語法
    +關注

    關注

    0

    文章

    44

    瀏覽量

    9814
收藏 人收藏

    評論

    相關推薦

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog語法更接近于 C 語言,對于有 C 語言背景的工程
    的頭像 發(fā)表于 12-17 09:44 ?145次閱讀

    Verilog硬件描述語言參考手冊

    一. 關于 IEEE 1364 標準二. Verilog簡介三. 語法總結四. 編寫Verilog HDL源代碼的標準五. 設計流程
    發(fā)表于 11-04 10:12 ?0次下載

    Verilog語法中運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?744次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>語法</b>中運算符的用法

    Verilog HDL的基礎知識

    本文繼續(xù)介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數與任務語法知識。
    的頭像 發(fā)表于 10-24 15:00 ?398次閱讀
    <b class='flag-5'>Verilog</b> HDL的基礎知識

    如何用FPGA實現一個通信系統(tǒng)的發(fā)射端接收機?

    基礎(略懂verilog語法和通信原理)的人該怎么一步步學習? A:對于這個問題,分兩部分回答,一部分是如何設計以及思路,另一部分是規(guī)劃學習路線。拙見,僅供參考。 如何設計以及思路如下: 以下是使用 FPGA
    發(fā)表于 09-10 19:15

    FPGA學習筆記---基本語法

    Verilog語法是指硬件能夠實現的語法。它的子集很小。常用的RTL語法結構如下: 1、模塊聲明:module ... end module 2、端口聲明:input, output,
    發(fā)表于 06-23 14:58

    關于Verilog的一些基本語法

    示寄存器,可用來存儲數據的。 ②、如何對變量進行賦值呢? 學習C語言可以知道賦值就是用=號,比方int a = 15;//將15賦值給a;然而在verilog語法中也有 =(阻塞賦值) 這種賦值方式
    發(fā)表于 05-31 18:31

    Verilog到VHDL轉換的經驗與技巧總結

    Verilog與VHDL語法是互通且相互對應的,如何查看二者對同一硬件結構的描述,可以借助EDA工具,如Vivado,打開Vivado后它里面的語言模板后,也可以對比查看Verilog和VHDL之間的差異。
    的頭像 發(fā)表于 04-28 17:47 ?2490次閱讀
    <b class='flag-5'>Verilog</b>到VHDL轉換的經驗與技巧總結

    有什么好用的verilog HDL編輯工具可用?

    有什么好用的verilog HDL編輯工具可用?最好能集成實時的verilog HDL語法檢測、自定義模塊識別觸發(fā)等功能,最好能夠免費;
    發(fā)表于 04-28 11:00

    如何快速入門FPGA

    時鐘管理模塊、嵌入式塊RAM、布線資源等。 學習FPGA編程語言: 掌握Verilog HDL(硬件描述語言)。Verilog用于數字電路的系統(tǒng)設計,具有簡潔的語法和清晰的仿真語義,非常適合初學者入門
    發(fā)表于 04-28 09:06

    如何快速入門FPGA?

    時鐘管理模塊、嵌入式塊RAM、布線資源等。 學習FPGA編程語言: 掌握Verilog HDL(硬件描述語言)。Verilog用于數字電路的系統(tǒng)設計,具有簡潔的語法和清晰的仿真語義,非常適合初學者入門
    發(fā)表于 04-28 08:54

    verilog雙向端口的使用

    輸出信號。本文將詳細介紹Verilog雙向端口的使用,并提供示例說明其在實際應用中的作用。 第一部分:雙向端口的定義和語法Verilog中,可以使用wire聲明一個雙向端口。例如:wire bidirectional_por
    的頭像 發(fā)表于 02-23 10:18 ?1411次閱讀

    verilog如何調用其他module

    第一部分:簡介 1.1 什么是Verilog模塊? 在Verilog中,模塊是其設計層次結構的基本單元。模塊是一個用于實現特定功能的單獨的硬件單元。它可以是一個組合邏輯電路,也可以是一個時序邏輯電路
    的頭像 發(fā)表于 02-22 15:56 ?5855次閱讀

    verilog task和function區(qū)別

    verilog中的task和function都是用于實現模塊中的可重復的功能,并且可以接收參數和返回結果。但是它們在編寫和使用上有一些區(qū)別。下面將詳細介紹task和function的區(qū)別。 語法
    的頭像 發(fā)表于 02-22 15:53 ?1091次閱讀

    FPGA入門篇(三)至簡原理與應用-Verilog語法#電路原理 #電子技術 #FPGA #物聯網 #云計算

    fpga物聯網
    明德揚助教小易老師
    發(fā)布于 :2024年01月23日 07:22:58