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

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

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

Verilog HDL中定義的26個有關(guān)門級的關(guān)鍵字中常用的有哪些?

FPGA之家 ? 來源:YGOPRO de Space ? 作者:YGOPRO ? 2021-07-02 16:29 ? 次閱讀

1、結(jié)構(gòu)描述形式

從電路結(jié)構(gòu)的角度來描述電路模塊,稱為結(jié)構(gòu)描述形式。

Verilog HDL中定義了26個有關(guān)門級的關(guān)鍵字,比較常用的有8個:

and nand nor or xor xnor buf not。

其調(diào)用格式為:

門類型 《實例名》(輸出,輸入1,輸入2,。。。。,輸入N)

eg. nand na01(na_out, a, b, c);

表示一個名字為na01的與非門,輸出為na_out,輸入為a,b,c。

2、數(shù)據(jù)流描述形式

對線型變量進行操作,就是數(shù)據(jù)流描述形式。數(shù)據(jù)流描述一般采用assign連續(xù)賦值語句來實現(xiàn),主要用于實現(xiàn)組合功能。連續(xù)賦值語句右邊所有的變量受持續(xù)監(jiān)控,只要這些變量有一個發(fā)生變化,整個表達式就被重新賦值給左端。

其格式為:

assign L_s = R_s;

3、行為描述形式

從功能和行為的角度來描述一個實際電路,稱為行為級描述形式。行為描述主要包括過程結(jié)構(gòu)、語句塊、時序控制、流控制四個方面,主要用于時序邏輯功能的實現(xiàn)。

1、過程結(jié)構(gòu)

過程結(jié)構(gòu)采用下面四種過程模塊來實現(xiàn):

initial模塊 always模塊 任務(wù)(task)模塊 函數(shù)(function)模塊

(1)initial模塊

在進行仿真時,一個initial模塊從模擬0時刻開始執(zhí)行,且在仿真過程中只執(zhí)行一次,在執(zhí)行完一次后,該initial就被掛起,不再執(zhí)行。如果仿真中有兩個initial模塊,則同時從0時刻開始執(zhí)行

initial模塊是面向仿真的,是不可綜合的,通常被用來描述測試模塊的初始化、監(jiān)視、波形生成等功能。

其格式為:

initial

begin/fork

塊內(nèi)變量說明

時序控制1 行為語句1;

。。。。

時序控制n 行為語句n;

end/join

其中,begin/end塊定義語句是串行執(zhí)行的,而fork/join塊語句中的語句定義是并行執(zhí)行的。

(2)always模塊

always模塊是一直重復(fù)執(zhí)行且可綜合的,多個always模塊是同時并行執(zhí)行的。其格式為:

always@(敏感時間列表)

begin/fork

塊內(nèi)變量說明

時序控制1 行為語句1;

。。。。

時序控制n 行為語句n;

end/join

2、語句塊

語句塊就是在initial或always模塊中位于begin.。.end/fork.。.join塊定義語句之間的一組行為語句。

(1)begin.。.end

串行塊,塊內(nèi)的語句逐次逐條順序執(zhí)行。

(2)fork.。.join

并行塊,塊內(nèi)的語句都是各自獨立地同時開始執(zhí)行。

3、時序控制

Verilog HDL提供兩種類型的顯示時序控制:延時控制和事件控制。

(1)延時控制

其格式如下:

# 延時數(shù) 表達式;

延時控制只能在仿真中使用,是不可綜合的。在綜合時,所有的延時控制都會被忽略。

(2)事件控制

分為兩種:邊沿觸發(fā)事件和電平觸發(fā)事件控制。

邊沿觸發(fā):上升沿posedge,下降沿negedge。

4、流控制

流控制語句包括3類:跳轉(zhuǎn)、分支、循環(huán)。

(1)if語句

else分支可缺省,但會生成本不期望的鎖存器,所以不要省去。

(2)case語句

其格式如下:

case(變量)

情況1:語句1 ;

。。。。。

情況n:語句n;

default: 語句n+1;

endcase

default語句缺省也會生成鎖存器,所以不要省去。

if語句是串行執(zhí)行的,case語句是并行執(zhí)行的,選用if語句要占用額外的硬件資源。

(3)循環(huán)語句

for循環(huán)。

while循環(huán)。

forever循環(huán):forever語句必須寫在initial模塊中,用于產(chǎn)生周期性波形。

repeat循環(huán):執(zhí)行指定的循環(huán)數(shù),如果循環(huán)計數(shù)表達式的值不確定(x或z),那么循環(huán)次數(shù)按0處理,其格式:

repeat(表達式)

begin

。。。。。

end

編輯:jq

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

    關(guān)注

    17

    文章

    125

    瀏覽量

    50365

原文標題:Verilog HDL語言(2) : Verilog HDL語言的描述語句

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Verilog HDL的基礎(chǔ)知識

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

    C語言關(guān)鍵字--typedef

    C語言關(guān)鍵字使用方法學(xué)習指南!
    的頭像 發(fā)表于 10-07 12:44 ?123次閱讀

    使用邊緣AI和Sitara處理器進行關(guān)鍵字檢測

    電子發(fā)燒友網(wǎng)站提供《使用邊緣AI和Sitara處理器進行關(guān)鍵字檢測.pdf》資料免費下載
    發(fā)表于 09-02 11:30 ?0次下載
    使用邊緣AI和Sitara處理器進行<b class='flag-5'>關(guān)鍵字</b>檢測

    快速掌握C語言關(guān)鍵字

    C語言中的32關(guān)鍵字你知道多少呢?根據(jù)關(guān)鍵字的作用分為四類:數(shù)據(jù)類型關(guān)鍵字、控制語句關(guān)鍵字、
    的頭像 發(fā)表于 07-06 08:04 ?260次閱讀
    快速掌握C語言<b class='flag-5'>關(guān)鍵字</b>

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

    什么好用的verilog HDL編輯工具可用?最好能集成實時的verilog HDL語法檢測、自定義
    發(fā)表于 04-28 11:00

    veriloginitial和always的區(qū)別

    Verilog是一種硬件描述語言(HDL),用于設(shè)計和模擬數(shù)字電路。在Verilog關(guān)鍵字initial和always都是用于描述電路行
    的頭像 發(fā)表于 02-22 16:09 ?2196次閱讀

    verilogfunction和task的區(qū)別

    非常相似,但它們在功能和使用方式上有一些重要的區(qū)別。 定義和聲明方式不同: Function:使用關(guān)鍵字"function"來定義和聲明。函數(shù)可以
    的頭像 發(fā)表于 02-22 15:40 ?1609次閱讀

    關(guān)鍵字搜索文件夾某個TXT文件

    文件夾隨時創(chuàng)造TXT文件,如何及時選出剛創(chuàng)造的文件?或關(guān)鍵字搜索出需要的TXT文件?
    發(fā)表于 02-06 15:22

    在NVM和本地\"內(nèi)存定義數(shù)組(靜態(tài) /global /local)的\"關(guān)鍵字是什么?

    在 NVM 和本地\"內(nèi)存定義數(shù)組(靜態(tài) /global /local)的\"關(guān)鍵字是什么? 還有與 32 位對齊的關(guān)鍵字怎么樣。
    發(fā)表于 01-25 07:52

    探討多線程編程的volatile關(guān)鍵字應(yīng)用

    有時候,我們可能需要在指針類型之間進行轉(zhuǎn)換,而編譯器會認為這是不安全的操作,從而導(dǎo)致編譯錯誤。使用volatile關(guān)鍵字可以告知編譯器,這個類型轉(zhuǎn)換是有意義的,不應(yīng)該引發(fā)錯誤。
    發(fā)表于 12-27 13:53 ?389次閱讀

    你還記得這個C語言關(guān)鍵字嗎?

    當你使用volatile關(guān)鍵字時,你告訴編譯器該變量的值可能會在程序的執(zhí)行過程中被外部因素更改,因此編譯器不應(yīng)該對該變量的讀寫進行優(yōu)化。下面是一些使用volatile的例子,以及對它們的一些文字描述
    的頭像 發(fā)表于 12-17 08:00 ?315次閱讀
    你還記得這個C語言<b class='flag-5'>關(guān)鍵字</b>嗎?

    vlookup提取關(guān)鍵字匹配多個結(jié)果

    VLOOKUP是一流行且功能強大的Excel函數(shù),允許用戶在一列數(shù)據(jù)搜索特定值,并從另一列檢索相應(yīng)的信息。VLOOKUP通常用于數(shù)據(jù)分析,尤其是在處理大型數(shù)據(jù)集時。VLOOKUP的一
    的頭像 發(fā)表于 12-01 10:40 ?2211次閱讀

    static關(guān)鍵字的三種用法

    在C語言中,關(guān)鍵字"static"可以用于不同的上下文,具有不同的作用。以下是"static"在C語言中的主要作用:1.靜態(tài)
    的頭像 發(fā)表于 11-10 08:00 ?466次閱讀
    static<b class='flag-5'>關(guān)鍵字</b>的三種用法

    IAR能否在整個工程搜索關(guān)鍵字

    像mdk可以在整個工程搜索關(guān)鍵字 IAR應(yīng)該也有類似的功能吧,但是我貌似沒有找到
    發(fā)表于 11-08 07:21

    指向code區(qū)數(shù)組的指針需不需要加code關(guān)鍵字的聲明?

    指向code區(qū)數(shù)組的指針需不需要加code 關(guān)鍵字的聲明?
    發(fā)表于 11-02 06:16