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

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

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

Verilog HDL語言的數(shù)據(jù)類型和運算符與表達式解析

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-06-30 11:18 ? 次閱讀

1、標志符

標識符可以是一組字母、數(shù)字、下劃線和$符號的組合,且標識符的第一個字符必須是字母或者下劃線。另外,標識符區(qū)分大小寫。要注意的是Verilog HDL定義了一系列保留字作為關(guān)鍵字,但只要小寫的關(guān)鍵字才是保留字,所以對于不確定是否為保留字,可以將標識符首字母大寫。

2、數(shù)據(jù)類型

1、wire型

Verilog程序模塊中輸入、輸出信號類型默認時自定義為wire型。

wire型信號的定義格式如下:

wire[n-1:0] 數(shù)據(jù)名1,數(shù)據(jù)名2,...數(shù)據(jù)名N;

總共定義了N條線,每條線的位寬為n。

2、reg型

reg是寄存器數(shù)據(jù)類型的關(guān)鍵字,是數(shù)據(jù)存儲單元的抽象,通過賦值語句可以改變寄存器存儲的值。reg型數(shù)據(jù)常用來表示always模塊內(nèi)的指定信號,在always塊內(nèi)被賦值的每一個信號都必須定義為reg型。

reg型信號的定義格式如下:

wire[n-1:0] 數(shù)據(jù)名1,數(shù)據(jù)名2,...數(shù)據(jù)名N;

總共定義了N個寄存器變量,每條線的位寬為n。

3、memory型

Verilog通過對reg型變量建立數(shù)組來對存儲器建模,memory型通過擴展reg型數(shù)據(jù)的地址范圍來達到二維數(shù)組的效果。其定義的格式如下:

reg[n-1:0] 存儲器名 [m-1:0];

其中,reg[n-1:0]定義了每一個存儲器中每一個存儲單元的大??;存儲器后面的[m-1:0]則定義了存儲器的大小。

eg:reg [15:0] ROMA [7:0];

即定義了一個存儲位寬為16位,存儲深度為8的一個存儲器。

要注意的是,一個n位的寄存器可以在一條賦值語句中直接進行賦值,而一個完整的存儲器則不行。如果要對memory型存儲單元進行讀寫,則必須要指明地址。

4、parameter型

在Verilog HDL中用parameter來定義常量。

parameter型信號的定義格式如下:

parameter 參數(shù)名1=數(shù)據(jù)名1;

3、模塊端口

1、input:模塊從外界讀取數(shù)據(jù)的接口,在模塊內(nèi)不可寫。

2、output:模塊往外界送出數(shù)據(jù)的接口,在模塊內(nèi)不可讀。

3、inout:可讀取數(shù)據(jù)也可送出數(shù)據(jù),數(shù)據(jù)可雙向流動。

4、常量集合

Verilog HDL有四種基本數(shù)值:

(1)0:邏輯0或“假”;

(2)1:邏輯1或“真”;

(3)x:未知;

(4)z:高阻。

1、整數(shù)

整數(shù)型可以按如下兩種方式書寫:簡單的十進制數(shù)格式及基數(shù)表示格式。

(1)簡單的十進制數(shù)格式

eg:45 -46

負數(shù)以補碼表示。

(2)基數(shù)表示格式

基數(shù)表示的整數(shù)格式為:

[長度]'基數(shù) 數(shù)值

eg:6'b9 5'o9 9'd6

2、實數(shù)

(1)十進制計數(shù)法

eg:2.0 16539.236

(2)科學計數(shù)法

eg:235.12e2 5e-4

其中,e與E相同。

3、字符串

字符串是雙引號內(nèi)的字符序列,字符串不能分成多行書寫。字符串是8位ASCLL值的序列。

eg:reg[1:8*7]Char;

Char="counter"

5、運算符和表達式

1、基本算術(shù)運算符

包含:+、-、*、/、%

其中,取模運算(%)結(jié)果的符號位和模運算的第一個操作數(shù)的符號保持一致(按照無符號進行運算,再對結(jié)果添加符號)。

2、賦值運算符

賦值運算分為連續(xù)賦值和過程賦值兩種。

(1)連續(xù)賦值

連續(xù)賦值語句只能用來對線網(wǎng)型變量進行賦值,而不能對寄存器變量進行賦值,在實際使用時,有以下幾種應用:

I.對標量線網(wǎng)型賦值

poYBAGDb40WAfw-PAAAnnM-1AhE657.png

(2)過程賦值

過程賦值主要用于兩種結(jié)構(gòu)化模塊(initial模塊和always模塊)中的賦值語句,在過程塊中只能使用過程賦值語句,不能出現(xiàn)連續(xù)賦值語句。其中,賦值操作符有兩種:“=”和“<=”,分別代表阻塞賦值和非阻塞賦值。

過程賦值語句只能對寄存器類型的變量(reg、integer、real和time)進行操作。對于存儲器類型,只能對指定地址單元的整個字進行賦值,不能對其中某些位單獨賦值。

3、關(guān)系運算符

關(guān)系運算符共8種:>、>=、<、<=、==(邏輯相等)、!=(邏輯不相等)、===(實例相等)、!==(實例不相等)。

實例算子===和!==可以比較含有X和Z的操作數(shù)。

4、邏輯運算符

(1)&& 邏輯與

(2)|| 邏輯或

(3)!邏輯非

5、條件運算符

三目運算符,格式如下:

y = x ? a : b;

若第一個操作數(shù)y=x為True,算子返回第二個操作數(shù)a,否則返回第三個操作數(shù)b。

6、位運算符

按位進行邏輯運算,共有7中邏輯運算符:

~非、&與、|或、^異或、^~同或、~&與非、|~或非。

如果兩個操作數(shù)的長度不相等,將會對較短的數(shù)高位補零,使輸出結(jié)果的長度與位寬較長的操作數(shù)的長度保持一致。

7、移位運算符

左移<<一位相當于乘2,右移一位相當于除2.

s<

8、一元約簡運算符

單目運算符。其運算過程為:首先將操作數(shù)的第一位與第二位進行與、或、非運算;然后再將結(jié)果和第三位進行與、或、非運算,以此類推,直至最后一位。

eg:reg [3:0] s1;

reg s2;

s2=&s1;

文章出處:【微信公眾號:FPGA之家】

責任編輯:gt

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

    關(guān)注

    38

    文章

    7402

    瀏覽量

    163391
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150517
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6754

    瀏覽量

    88614

原文標題:Verilog HDL語言(1) : Verilog HDL語言的數(shù)據(jù)類型和運算符

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

收藏 人收藏

    評論

    相關(guān)推薦

    JAVA語言運算符表達式

    JAVA語言運算符表達式3.5 運算符表達式數(shù)據(jù)類型
    發(fā)表于 12-06 00:28

    數(shù)據(jù)類型、運算符表達式

    數(shù)據(jù)類型運算符表達式2.1   程序設(shè)計概述2.2  C語言數(shù)據(jù)類型 2.3  常量和變量 2
    發(fā)表于 03-10 15:05

    【跟我學單片機c語言】如何更好地使用C51運算符表達式

    `【跟我學單片機c語言】如何更好地使用C51運算符表達式之前說了常量和變量,先來補充一個用以重新定義數(shù)據(jù)類型的的語句吧。這個語句就是 typedef,這是個很好用的語句,但我卻不常用
    發(fā)表于 12-05 10:22

    C語言程序設(shè)計--運算符表達式

    c語言對數(shù)據(jù)有很強的表達能力,具有十分豐富的運算符,利用這些運算符可以組成各種表達式及語句。運算符
    發(fā)表于 07-14 21:30 ?46次下載

    單片機C語言教程-運算符表達式

    單片機C語言教程-運算符表達式   單片機C語言教程-運算符表達式  
    發(fā)表于 03-27 17:13 ?2192次閱讀

    C語言教程之數(shù)據(jù)類型、運算符表達式的詳細資料介紹免費下載

    程序的任務是對數(shù)據(jù)進行處理,數(shù)據(jù)是程序處理的對象,而運算符是施加給這些數(shù)據(jù)的操作,數(shù)據(jù)運算符
    發(fā)表于 09-19 17:21 ?6次下載
    C<b class='flag-5'>語言</b>教程之<b class='flag-5'>數(shù)據(jù)類型</b>、<b class='flag-5'>運算符</b>與<b class='flag-5'>表達式</b>的詳細資料介紹免費下載

    C語言程序設(shè)計教程之基本數(shù)據(jù)類型、運算符表達式的詳細資料概述

    本文檔的主要內(nèi)容詳細介紹的是C語言程序設(shè)計教程之基本數(shù)據(jù)類型、運算符表達式的詳細資料概述主要內(nèi)容包括了:1 C語言
    發(fā)表于 10-31 18:04 ?30次下載
    C<b class='flag-5'>語言</b>程序設(shè)計教程之基本<b class='flag-5'>數(shù)據(jù)類型</b>、<b class='flag-5'>運算符</b>和<b class='flag-5'>表達式</b>的詳細資料概述

    C語言程序設(shè)計教程之基本數(shù)據(jù)類型運算符表達式的資料說明

    本文檔詳細介紹的是C語言程序設(shè)計教程之基本數(shù)據(jù)類型運算符表達式的資料說明主要內(nèi)容包括了:1 C的數(shù)據(jù)類型,2 常量與變量,3
    發(fā)表于 01-25 15:44 ?0次下載
    C<b class='flag-5'>語言</b>程序設(shè)計教程之基本<b class='flag-5'>數(shù)據(jù)類型</b>和<b class='flag-5'>運算符</b>及<b class='flag-5'>表達式</b>的資料說明

    C++入門教程之數(shù)據(jù)類型運算符表達式的詳細資料說明

    本文檔的詳細介紹的是C++入門教程之數(shù)據(jù)類型、運算符表達式的詳細資料說明。主要內(nèi)容包括了: 基本數(shù)據(jù)類型 常量和變量 輸入輸出 運算符
    發(fā)表于 02-15 11:26 ?2次下載
    C++入門教程之<b class='flag-5'>數(shù)據(jù)類型</b>、<b class='flag-5'>運算符</b>和<b class='flag-5'>表達式</b>的詳細資料說明

    C語言實用教程之數(shù)據(jù)類型運算符表達式的詳細資料說明

    本文檔詳細介紹的是C語言實用教程之數(shù)據(jù)類型運算符表達式的詳細資料說明主要內(nèi)容包括了:1 一個簡單的C程序例子,2 C程序常見符號分類,3 數(shù)據(jù)類型
    發(fā)表于 02-26 14:45 ?10次下載
    C<b class='flag-5'>語言</b>實用教程之<b class='flag-5'>數(shù)據(jù)類型</b><b class='flag-5'>運算符</b>和<b class='flag-5'>表達式</b>的詳細資料說明

    C++程序設(shè)計教程之數(shù)據(jù)類型表達式的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是C++程序設(shè)計教程之數(shù)據(jù)類型表達式的詳細資料說明包括了:1 . C++的數(shù)據(jù)類型,2 . 常量,3 . 變量,4 . C++的運算符,5 . 算術(shù)
    發(fā)表于 03-14 14:48 ?0次下載
    C++程序設(shè)計教程之<b class='flag-5'>數(shù)據(jù)類型</b>與<b class='flag-5'>表達式</b>的詳細資料說明

    RTL表達式運算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來就是RTL表達式運算符。
    的頭像 發(fā)表于 10-11 10:15 ?1557次閱讀

    C語言數(shù)據(jù)類型、運算符表達式

    天我們來介紹 C 語言數(shù)據(jù)類型、運算符表達式。我們先來簡單的看一個例子。
    的頭像 發(fā)表于 01-30 09:15 ?720次閱讀

    運算符/表達式規(guī)則

    運算符對操作數(shù)執(zhí)行操作。大多數(shù)運算符都有兩個操作數(shù)。例如,在運算a+b中,+(加法)運算的操作數(shù)是a和b。每個操作數(shù)都被稱為表達式,
    的頭像 發(fā)表于 02-09 15:37 ?900次閱讀
    <b class='flag-5'>運算符</b>/<b class='flag-5'>表達式</b>規(guī)則

    C語言基本的算術(shù)運算符表達式

    注意:自增和自減運算符只能用于變量,而不能用于常量或表達式 **C語言算術(shù)表達式運算符的優(yōu)先級與結(jié)合性 ** 在
    的頭像 發(fā)表于 03-09 10:44 ?1496次閱讀