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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog語(yǔ)法基礎(chǔ)

工程師 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:h1654155205.5246 ? 2019-03-08 14:29 ? 次閱讀

Verilog語(yǔ)法基礎(chǔ)

一、Verilog HDL

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

1.1、 系統(tǒng)級(jí)(system): 用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊外部性能的模型。

1.2、 算法級(jí)(algorithm): 用語(yǔ)言提供的高級(jí)結(jié)構(gòu)實(shí)現(xiàn)算法運(yùn)行的模型。

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

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

1.5、 開(kāi)關(guān)級(jí)(switch-level):描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。

二、Verilog HDL模塊

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

Verilog HDL行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。這種行為描述語(yǔ)言具有以下功能:

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

(2)、用延遲表達(dá)式或事件表達(dá)式來(lái)明確地控制過(guò)程的啟動(dòng)時(shí)間。

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

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

(5)、提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)(task)程序結(jié)構(gòu)。

(6)、提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function)。

(7)、提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。

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

三、模塊的結(jié)構(gòu)

3.1.模塊的結(jié)構(gòu)

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

請(qǐng)看上面的例子: 程序模塊旁邊有一個(gè)電路圖的符號(hào)。在許多方面,程序模塊和電路圖符號(hào)是一致的,這是因?yàn)殡娐穲D符號(hào)的引腳也就是程序模塊的接口。而程序模塊描述了電路圖符號(hào)所實(shí)現(xiàn)的邏輯功能。以上就是設(shè)計(jì)一個(gè)簡(jiǎn)單的Verilog程序模塊所需的全部?jī)?nèi)容。從上面的例子可以看出,Verilog結(jié)構(gòu)位于在module和endmodule聲明語(yǔ)句之間,每個(gè)Verilog程序包括四個(gè)主要部分:端口定義、I/O說(shuō)明、內(nèi)部信號(hào)聲明、功能定義。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1343

    瀏覽量

    109926
  • 語(yǔ)法
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    9763
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Verilog硬件描述語(yǔ)言參考手冊(cè)

    一. 關(guān)于 IEEE 1364 標(biāo)準(zhǔn)二. Verilog簡(jiǎn)介三. 語(yǔ)法總結(jié)四. 編寫Verilog HDL源代碼的標(biāo)準(zhǔn)五. 設(shè)計(jì)流程
    發(fā)表于 11-04 10:12 ?0次下載

    Verilog語(yǔ)法中運(yùn)算符的用法

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

    Verilog HDL的基礎(chǔ)知識(shí)

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

    如何用FPGA實(shí)現(xiàn)一個(gè)通信系統(tǒng)的發(fā)射端接收機(jī)?

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

    FPGA學(xué)習(xí)筆記---基本語(yǔ)法

    Verilog語(yǔ)法是指硬件能夠?qū)崿F(xiàn)的語(yǔ)法。它的子集很小。常用的RTL語(yǔ)法結(jié)構(gòu)如下: 1、模塊聲明:module ... end module 2、端口聲明:input, output,
    發(fā)表于 06-23 14:58

    關(guān)于Verilog的一些基本語(yǔ)法

    示寄存器,可用來(lái)存儲(chǔ)數(shù)據(jù)的。 ②、如何對(duì)變量進(jìn)行賦值呢? 學(xué)習(xí)C語(yǔ)言可以知道賦值就是用=號(hào),比方int a = 15;//將15賦值給a;然而在verilog語(yǔ)法中也有 =(阻塞賦值) 這種賦值方式
    發(fā)表于 05-31 18:31

    Verilog到VHDL轉(zhuǎn)換的經(jīng)驗(yàn)與技巧總結(jié)

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

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

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

    如何快速入門FPGA

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

    如何快速入門FPGA?

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

    verilog雙向端口的使用

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

    verilog如何調(diào)用其他module

    第一部分:簡(jiǎn)介 1.1 什么是Verilog模塊? 在Verilog中,模塊是其設(shè)計(jì)層次結(jié)構(gòu)的基本單元。模塊是一個(gè)用于實(shí)現(xiàn)特定功能的單獨(dú)的硬件單元。它可以是一個(gè)組合邏輯電路,也可以是一個(gè)時(shí)序邏輯電路
    的頭像 發(fā)表于 02-22 15:56 ?5152次閱讀

    verilog task和function區(qū)別

    verilog中的task和function都是用于實(shí)現(xiàn)模塊中的可重復(fù)的功能,并且可以接收參數(shù)和返回結(jié)果。但是它們?cè)诰帉懞褪褂蒙嫌幸恍﹨^(qū)別。下面將詳細(xì)介紹task和function的區(qū)別。 語(yǔ)法
    的頭像 發(fā)表于 02-22 15:53 ?948次閱讀

    FPGA入門篇(三)至簡(jiǎn)原理與應(yīng)用-Verilog語(yǔ)法#電路原理 #電子技術(shù) #FPGA #物聯(lián)網(wǎng) #云計(jì)算

    fpga物聯(lián)網(wǎng)
    明德?lián)P助教小易老師
    發(fā)布于 :2024年01月23日 07:22:58

    verilog語(yǔ)法-如何使用function提高效率?

    function的作用返回一個(gè)數(shù)值,此數(shù)值由一串組合邏輯代碼計(jì)算得到。
    的頭像 發(fā)表于 12-25 15:27 ?2141次閱讀
    <b class='flag-5'>verilog</b><b class='flag-5'>語(yǔ)法</b>-如何使用function提高效率?