在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

Verilog的基礎(chǔ)知識

我快閉嘴 ? 來源:博客園 ? 作者:南明離火hk ? 2022-08-15 09:04 ? 次閱讀

本節(jié)主要講解了 Verilog 的基礎(chǔ)知識,包括 7 個小節(jié),下面我們分別給大家介紹這 7 個小節(jié)的內(nèi)容。

1.Verilog 的邏輯值

我們先看下邏輯電路中有四種值,即四種狀態(tài):

邏輯 0:表示低電平,也就是對應(yīng)我們電路的 GND;

邏輯 1:表示高電平,也就是對應(yīng)我們電路的 VCC;

邏輯 X:表示未知,有可能是高電平,也有可能是低電平;

邏輯 Z:表示高阻態(tài),外部沒有激勵信號是一個懸空狀態(tài)。

如下圖所示:

a289540a-1c29-11ed-ba43-dac502259ad0.png

2.Verilog 的標(biāo)識符

定義 :

標(biāo)識符(identifier)用于定義模塊名、端口名和信號名等。Verilog 的標(biāo)識符可以是任意一組字母、數(shù)字、$和_(下劃線)符號的組合,但標(biāo)識符的第一個字符必須是字母或者下劃線。另外,標(biāo)識符是區(qū)分大小寫的。以下是標(biāo)識符的幾個例子:

Count,COUNT //與 Count 不同,R56_68,F(xiàn)IVE$;

雖然標(biāo)識符寫法很多,但是要簡潔、清晰、易懂,推薦寫法如下:

Count,fifo_wr

不建議大小寫混合使用,普通內(nèi)部信號建議全部小寫,參數(shù)定義建議大寫,另外信號命名最好體現(xiàn)信 號的含義。

規(guī)范建議 :

以下是一些書寫規(guī)范的要求:

1、用有意義的有效的名字如 sum、cpu_addr 等。

2、用下劃線區(qū)分詞語組合,如 cpu_addr。

3、采用一些前綴或后綴,比如:時鐘采用 clk 前綴:clk_50m,clk_cpu;低電平采用_n 后綴:enable_n;

4、統(tǒng)一縮寫,如全局復(fù)位信號 rst。

5、同一信號在不同層次保持一致性,如同一時鐘信號必須在各模塊保持一致。

6、自定義的標(biāo)識符不能與保留字(關(guān)鍵詞)同名。

7、參數(shù)統(tǒng)一采用大寫,如定義參數(shù)使用SIZE。

3.Verilog 的數(shù)字進(jìn)制格式

Verilog 數(shù)字進(jìn)制格式包括二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制,一般常用的為二進(jìn)制、十進(jìn)制和十六 進(jìn)制。

二進(jìn)制表示如下:4’b0101 表示 4 位二進(jìn)制數(shù)字 0101;十進(jìn)制表示如下:4’d2 表示 4 位十進(jìn)制數(shù)字 2(二進(jìn)制 0010);十六進(jìn)制表示如下:4’ha 表示 4 位十六進(jìn)制數(shù)字 a(二進(jìn)制 1010),十六進(jìn)制的計數(shù)方式為 0,1,2…9,a,b,c,d,e,f,最大計數(shù)為 f(f:十進(jìn)制表示為 15)。當(dāng)代碼中沒有指定數(shù)字的位寬與進(jìn)制時,默認(rèn)為 32 位的十進(jìn)制,比如 100,實際上表示的值為 32’d100。

4.Verilog 的數(shù)據(jù)類型

在 Verilog 語法中,主要有三大類數(shù)據(jù)類型,即寄存器類型、線網(wǎng)類型和參數(shù)類型。從名稱中,我們可 以看出,真正在數(shù)字電路中起作用的數(shù)據(jù)類型應(yīng)該是寄存器類型和線網(wǎng)類型。

1) 寄存器類型

寄存器類型表示一個抽象的數(shù)據(jù)存儲單元,它只能在 always 語句和 initial 語句中被賦值,并且它的值從一個賦值到另一個賦值過程中被保存下來。如果該過程語句描述的是時序邏輯,即 always 語句帶有時鐘信號,則該寄存器變量對應(yīng)為寄存器;如果該過程語句描述的是組合邏輯,即 always 語句不帶有時鐘信號,則該寄存器變量對應(yīng)為硬件連線;寄存器類型的缺省值是 x(未知狀態(tài))。寄存器數(shù)據(jù)類型有很多種,如 reg、integer、real 等,其中最常用的就是 reg 類型,它的使用方法如下:

//reg define

reg [31:0] delay_cnt; //延時計數(shù)器

reg key_flag ; //按鍵標(biāo)志

2) 線網(wǎng)類型

線網(wǎng)表示 Verilog 結(jié)構(gòu)化元件間的物理連線。它的值由驅(qū)動元件的值決定,例如連續(xù)賦值或門的輸出。如果沒有驅(qū)動元件連接到線網(wǎng),線網(wǎng)的缺省值為 z(高阻態(tài))。線網(wǎng)類型同寄存器類型一樣也是有很多種,如 tri 和 wire 等,其中最常用的就是 wire 類型,它的使用方法如下:

//wire define

wire data_en; //數(shù)據(jù)使能信號

wire [7:0] data ; //數(shù)據(jù)

3) 參數(shù)類型

我們再來看下參數(shù)類型,參數(shù)其實就是一個常量,常被用于定義狀態(tài)機的狀態(tài)、數(shù)據(jù)位寬和延遲大小等,由于它可以在編譯時修改參數(shù)的值,因此它又常被用于一些參數(shù)可調(diào)的模塊中,使用戶在實例化模塊時,可以根據(jù)需要配置參數(shù)。在定義參數(shù)時,我們可以一次定義多個參數(shù),參數(shù)與參數(shù)之間需要用逗號隔開。這里我們需要注意的是參數(shù)的定義是局部的,只在當(dāng)前模塊中有效。它的使用方法如下:

//parameter define

parameter DATA_WIDTH =8; //數(shù)據(jù)位寬為8位

5.Verilog 的運算符

大家看完了 Verilog 的數(shù)據(jù)類型,我們再來介紹下 Verilog 的運算符。Verilog 中的運算符按照功能可以分為下述類型:1、算術(shù)運算符、 2、關(guān)系運算符、3、邏輯運算符、 4、條件運算符、 5、位運算符、 6、移位運算符、 7、拼接運算符。下面我們分別對這些運算符進(jìn)行介紹。

1) 算術(shù)運算符

算術(shù)運算符,簡單來說,就是數(shù)學(xué)運算里面的加減乘除,數(shù)字邏輯處理有時候也需要進(jìn)行數(shù)字運算,所以需要算術(shù)運算符。常用的算術(shù)運算符主要包括加減乘除和模除(模除運算也叫取余運算)如下表所示:

a2b33ed2-1c29-11ed-ba43-dac502259ad0.png

大家要注意下,Verilog 實現(xiàn)乘除比較浪費組合邏輯資源,尤其是除法。一般 2 的指數(shù)次冪的乘除法使用移位運算來完成運算,詳情可以看移位運算符章節(jié)。非 2 的指數(shù)次冪的乘除法一般是調(diào)用現(xiàn)成的 IP, QUARTUS/ISE 等工具軟件會有提供,不過這些工具軟件提供的 IP 也是由最底層的組合邏輯(與或非門等)搭建而成的。

2) 關(guān)系運算符

關(guān)系運算符主要是用來做一些條件判斷用的,在進(jìn)行關(guān)系運算符時,如果聲明的關(guān)系是假的,則返回值是 0,如果聲明的關(guān)系是真的,則返回值是 1;所有的關(guān)系運算符有著相同的優(yōu)先級別,關(guān)系運算符的優(yōu)先級別低于算術(shù)運算符的優(yōu)先級別如下表所示。

a2c254b2-1c29-11ed-ba43-dac502259ad0.png

3) 邏輯運算符

邏輯運算符是連接多個關(guān)系表達(dá)式用的,可實現(xiàn)更加復(fù)雜的判斷,一般不單獨使用,都需要配合具體語句來實現(xiàn)完整的意思,如下表所示。

a2edcbce-1c29-11ed-ba43-dac502259ad0.png

4) 條件運算符

條件操作符一般來構(gòu)建從兩個輸入中選擇一個作為輸出的條件選擇結(jié)構(gòu),功能等同于 always 中的 if-else 語句,如下表所示。

a3128c8e-1c29-11ed-ba43-dac502259ad0.png

5) 位運算符

位運算符是一類最基本的運算符,可以認(rèn)為它們直接對應(yīng)數(shù)字邏輯中的與、或、非門等邏輯門。常用 的位運算符如下表所示。

a3273fa8-1c29-11ed-ba43-dac502259ad0.png

位運算符的與、或、非與邏輯運算符邏輯與、邏輯或、邏輯非使用時候容易混淆,邏輯運算符一在條件判斷上,位運算符一般用在信號賦值上。

6) 移位運算符

移位運算符包括左移位運算符和右移位運算符,這兩種移位運算符都用 0 來填補移出的空位。如下表所示。

a33a27d0-1c29-11ed-ba43-dac502259ad0.png

假設(shè) a 有 8bit 數(shù)據(jù)位寬,那么 a<<2,表示 a 左移 2bit,a 還是 8bit 數(shù)據(jù)位寬,a 的最高 2bit 數(shù)據(jù)被移位丟棄了,最低 2bit 數(shù)據(jù)固定補 0。如果 a 是 3(二進(jìn)制:00000011),那么 3 左移 2bit,3<<2,就是 12(二進(jìn)制:00001100)。一般使用左移位運算代替乘法,右移位運算代替除法,但是這種也只能表示 2 的指數(shù)次冪的乘除法。

7) 拼接運算符

Verilog 中有一個特殊的運算符是 C 語言中沒有的,就是位拼接運算符。用這個運算符可以把兩個或多個信號的某些位拼接起來進(jìn)行運算操作。如下表所示。

a35bb864-1c29-11ed-ba43-dac502259ad0.png

8) 運算符的優(yōu)先級

介紹完了這么多運算符,大家可能會想到究竟哪個運算符高,哪個運算符低。為了便于大家查看這些 運算符的優(yōu)先級,我們將它們制作成了表格,如下表所示。

a36f38c6-1c29-11ed-ba43-dac502259ad0.png

6.注釋

Verilog HDL 中有兩種注釋的方式,一種是以“/*”符號開始,“*/”結(jié)束,在兩個符號之間的語句都是注釋語句,因此可擴展到多行。如:

/*statement1 ,

statement2,

......

statementn */

以上 n 個語句都是注釋語句。

另一種是以//開頭的語句,它表示以//開始到本行結(jié)束都屬于注釋語句。如:

//statement1

建議的寫法:使用//作為注釋。

7.關(guān)鍵字

Verilog 和 C 語言類似,都因編寫需要定義了一系列保留字,叫做關(guān)鍵字(或關(guān)鍵詞)。這些保留字是識別語法的關(guān)鍵。我們給大家列出了 Verilog 中的關(guān)鍵字,如下表所示。

a3797764-1c29-11ed-ba43-dac502259ad0.png

雖然上表列了很多,但是實際經(jīng)常使用的不是很多,實際經(jīng)常使用的主要如下表所示。

a38fca00-1c29-11ed-ba43-dac502259ad0.png

注意只有小寫的關(guān)鍵字才是保留字。例如,標(biāo)識符 always(這是個關(guān)鍵詞)與標(biāo)識符 ALWAYS(非關(guān)鍵詞)是不同的。

審核編輯:湯梓紅


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

    關(guān)注

    29

    文章

    1366

    瀏覽量

    111963
  • 標(biāo)識符
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7453
  • GND
    GND
    +關(guān)注

    關(guān)注

    2

    文章

    544

    瀏覽量

    39566

原文標(biāo)題:七步來學(xué)習(xí)掌握Verilog 基礎(chǔ)知識

文章出處:【微信號:IC學(xué)習(xí),微信公眾號:IC學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    哪有FPGA的verilog編程基礎(chǔ)知識

    沒接觸過FPGA開發(fā),那個verilog編程有什么入門基礎(chǔ)知識學(xué)習(xí)的?
    發(fā)表于 04-29 23:09

    Verilog HDL練習(xí)題和Verilog基礎(chǔ)知識適合verilog新人

    Verilog HDL練習(xí)題和Verilog基礎(chǔ)知識適合verilog新人Verilog HDL練習(xí)題.pdfVerilog
    發(fā)表于 08-15 15:08

    Verilog基礎(chǔ)知識

    Verilog基礎(chǔ)知識
    發(fā)表于 09-30 08:50

    【正點原子FPGA連載】第五章Verilog HDL語法-領(lǐng)航者ZYNQ之FPGA開發(fā)指南

    5.2Verilog基礎(chǔ)知識5.3Verilog程序框架5.4Verilog高級知識點5.5Veril
    發(fā)表于 09-21 16:48

    Verilog HDL數(shù)字系統(tǒng)設(shè)計教程》(第四版)學(xué)習(xí)筆記 part1 Verilog數(shù)字設(shè)計基礎(chǔ)——第一章知識點總結(jié)

    內(nèi)容,有的沒寫在總結(jié)里,有的在總結(jié)里標(biāo)注出了“存疑”二字,請各位讀者閱讀時留意。最后也歡迎各位讀者指出文章中出現(xiàn)的錯誤!目錄第一章Verilog基礎(chǔ)知識1.1Verilog HDL開發(fā)的優(yōu)勢:1.2軟核
    發(fā)表于 03-22 10:26

    Verilog HDL基礎(chǔ)知識

    Verilog HDL基礎(chǔ)知識:硬件描述語言是硬件設(shè)計人員和電子設(shè)計自動化工具之間的界面。其主要目的是用來編寫設(shè)計文件,建立電子系統(tǒng)行為級的仿真模型即利用計算機的巨大能力對用
    發(fā)表于 05-31 19:33 ?49次下載

    Verilog基礎(chǔ)知識

    發(fā)表于 08-18 12:53 ?0次下載

    Verilog基礎(chǔ)知識教程

    發(fā)表于 03-04 14:07 ?14次下載

    Verilog基礎(chǔ)知識

    Verilog基礎(chǔ)知識,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-10 15:29 ?4次下載

    Verilog_HDL基礎(chǔ)知識非常好的學(xué)習(xí)教程 (1)

    Verilog_HDL基礎(chǔ)知識非常好的學(xué)習(xí)教程 (1)
    發(fā)表于 01-04 12:33 ?0次下載

    鋯石FPGA A4_Nano開發(fā)板視頻:Verilog基礎(chǔ)知識和語法的講解

      Verilog HDL是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時序建模。
    的頭像 發(fā)表于 09-27 07:08 ?1921次閱讀
    鋯石FPGA A4_Nano開發(fā)板視頻:<b class='flag-5'>Verilog</b><b class='flag-5'>基礎(chǔ)知識</b>和語法的講解

    Verilog教程之Verilog HDL數(shù)字集成電路設(shè)計方法和基礎(chǔ)知識課件

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog教程之Verilog HDL數(shù)字集成電路設(shè)計方法和基礎(chǔ)知識課件
    發(fā)表于 12-09 11:24 ?53次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b> HDL數(shù)字集成電路設(shè)計方法和<b class='flag-5'>基礎(chǔ)知識</b>課件

    Verilog基礎(chǔ)知識

    對于Verilog描述初學(xué)者來說,最難的莫過于編寫測試代碼并判斷自己寫的是否正確。在這里我推薦一個HDL描述練習(xí)網(wǎng)站,這個網(wǎng)站上的練習(xí)題無需自己編寫測試代碼,寫好邏輯代碼之后上傳,即可判斷你的代碼邏輯是否正確。網(wǎng)站鏈接如下:
    的頭像 發(fā)表于 08-03 09:06 ?1105次閱讀

    verilog基礎(chǔ)知識介紹

    組合邏輯:任何時刻電路的穩(wěn)定輸出,僅僅取決于該時刻各個輸入變量的取值。
    的頭像 發(fā)表于 05-29 09:16 ?1263次閱讀
    <b class='flag-5'>verilog</b><b class='flag-5'>基礎(chǔ)知識</b>介紹

    Verilog HDL的基礎(chǔ)知識

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識,重點介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識
    的頭像 發(fā)表于 10-24 15:00 ?1109次閱讀
    <b class='flag-5'>Verilog</b> HDL的<b class='flag-5'>基礎(chǔ)知識</b>
    主站蜘蛛池模板: 日本wwwwwwwww| 日本三级黄视频 | 日本黄色美女视频 | 日韩三级久久 | 在线免费观看视频你懂的 | 国产成人免费无庶挡视频 | 免费一级毛毛片 | 第四色男人天堂 | 色视频网站大全免费 | 一区二区影视 | 国产免费成人在线视频 | 手机在线看片国产日韩生活片 | 午夜欧美成人久久久久久 | aaaaaa精品视频在线观看 | 日韩一级片在线免费观看 | 亚洲四虎永久在线播放 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片毛片 | 啪啪午夜免费 | 国产成人精品日本 | 欧美黄色片在线观看 | 午夜视频啪啪 | 骚黄视频| 天堂资源最新版在线www | 99热成人精品热久久669 | 激情五月婷婷综合网 | 午夜精品视频5000 | 一二三区视频 | 黄色免费片 | 丁香婷婷开心激情深爱五月 | 成人在线a | 一级一级毛片免费播放 | 免费看国产黄色片 | 国产手机在线国内精品 | 国产在线观看福利 | 女人张开双腿让男人桶爽免 | 天堂中文字幕 | 亚洲国产福利 | www.人人干 | 性xxxxhd高清 | 四虎影视永久在线 yin56xyz | 亚洲资源最新版在线观看 |