RM新时代网站-首页

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

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

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

Verilog HDL語(yǔ)言的數(shù)據(jù)類型和運(yùn)算符

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-04 10:50 ? 次閱讀

1、標(biāo)志符

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

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

1、wire型

Verilog程序模塊中輸入、輸出信號(hào)類型默認(rèn)時(shí)自定義為wire型。

wire型信號(hào)的定義格式如下:

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

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

2、reg型

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

reg型信號(hào)的定義格式如下:

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

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

3、memory型

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

reg[n-1:0] 存儲(chǔ)器名 [m-1:0];

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

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

即定義了一個(gè)存儲(chǔ)位寬為16位,存儲(chǔ)深度為8的一個(gè)存儲(chǔ)器。

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

4、parameter型

在Verilog HDL中用parameter來(lái)定義常量。

parameter型信號(hào)的定義格式如下:

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ù)可雙向流動(dòng)。

4、常量集合

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

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

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

(3)x:未知;

(4)z:高阻。

1、整數(shù)

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

(1)簡(jiǎn)單的十進(jìn)制數(shù)格式

eg:45 -46

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

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

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

[長(zhǎng)度]‘基數(shù) 數(shù)值

eg:6’b9 5‘o9 9’d6

2、實(shí)數(shù)

(1)十進(jìn)制計(jì)數(shù)法

eg:2.0 16539.236

(2)科學(xué)計(jì)數(shù)法

eg:235.12e2 5e-4

其中,e與E相同。

3、字符串

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

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

Char=“counter”

5、運(yùn)算符和表達(dá)式

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

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

其中,取模運(yùn)算(%)結(jié)果的符號(hào)位和模運(yùn)算的第一個(gè)操作數(shù)的符號(hào)保持一致(按照無(wú)符號(hào)進(jìn)行運(yùn)算,再對(duì)結(jié)果添加符號(hào))。

2、賦值運(yùn)算符

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

(1)連續(xù)賦值

連續(xù)賦值語(yǔ)句只能用來(lái)對(duì)線網(wǎng)型變量進(jìn)行賦值,而不能對(duì)寄存器變量進(jìn)行賦值,在實(shí)際使用時(shí),有以下幾種應(yīng)用:

I.對(duì)標(biāo)量線網(wǎng)型賦值

wire a,b;

assign a=b;

II.對(duì)矢量線網(wǎng)型賦值

wire [7:0] a,b;

assign a=b;

III.對(duì)矢量線網(wǎng)型中的某一位賦值

wire [7:0] a,b;

assign a[3]=b[1];

IV.對(duì)矢量線網(wǎng)型中的某幾位賦值

wire [7:0] a,b;

assign a[3:0]=b[3:0];

V.對(duì)任意拼接的線網(wǎng)型賦值

wire a,b;

wire [1:0] c;

assign c={a,b};

(2)過(guò)程賦值

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

過(guò)程賦值語(yǔ)句只能對(duì)寄存器類型的變量(reg、integer、real和time)進(jìn)行操作。對(duì)于存儲(chǔ)器類型,只能對(duì)指定地址單元的整個(gè)字進(jìn)行賦值,不能對(duì)其中某些位單獨(dú)賦值。

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

關(guān)系運(yùn)算符共8種:》、》=、《、《=、==(邏輯相等)、!=(邏輯不相等)、===(實(shí)例相等)、!==(實(shí)例不相等)。

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

4、邏輯運(yùn)算符

(1)&& 邏輯與

(2)|| 邏輯或

(3)!邏輯非

5、條件運(yùn)算符

三目運(yùn)算符,格式如下:

y = x ? a : b;

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

6、位運(yùn)算符

按位進(jìn)行邏輯運(yùn)算,共有7中邏輯運(yùn)算符:

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

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

7、移位運(yùn)算符

左移《《一位相當(dāng)于乘2,右移一位相當(dāng)于除2.

s《《N表示左移N位,且都用0來(lái)填補(bǔ)移出的空位。

8、一元約簡(jiǎn)運(yùn)算符

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

eg:reg [3:0] s1;

reg s2;

s2=&s1;

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

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

審核編輯:彭靜
聲明:本文內(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)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120230
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    172

    瀏覽量

    11079
  • Verilog HDL
    +關(guān)注

    關(guān)注

    17

    文章

    126

    瀏覽量

    50410

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    理解。 VHDL :VHDL 的語(yǔ)法更接近于 Ada 語(yǔ)言,它是一種更正式的語(yǔ)言,具有豐富的數(shù)據(jù)類型和結(jié)構(gòu)。VHDL 支持數(shù)據(jù)流、行為和結(jié)構(gòu)化三種描述方式。 2. 可讀性和可維護(hù)性
    的頭像 發(fā)表于 12-17 09:44 ?112次閱讀

    邏輯異或運(yùn)算符在Python中的用法

    在Python編程語(yǔ)言中,邏輯異或運(yùn)算符并不直接作為一個(gè)內(nèi)置的操作存在,因?yàn)镻ython更側(cè)重于高級(jí)編程和可讀性,并沒(méi)有直接提供異或運(yùn)算符的簡(jiǎn)寫形式用于邏輯
    的頭像 發(fā)表于 11-19 09:46 ?164次閱讀

    C語(yǔ)言指針運(yùn)算符詳解

    在C語(yǔ)言中,當(dāng)你有一個(gè)指向數(shù)組中某個(gè)元素的指針時(shí),你可以對(duì)該指針執(zhí)行某些算術(shù)運(yùn)算,例如加法或減法。這些運(yùn)算可以用來(lái)遍歷數(shù)組中的元素,如ptr[i]等價(jià)于*(ptr + i)。然而,如果你的操作使得指針指向了數(shù)組以外的位置(除了數(shù)
    的頭像 發(fā)表于 10-30 11:16 ?237次閱讀

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

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

    FPGA編程語(yǔ)言的入門教程

    編程基礎(chǔ) 基本結(jié)構(gòu) Verilog程序的基本結(jié)構(gòu)包括模塊(module)和端口(port)定義。每個(gè)模塊都有輸入(input)、輸出(output)和可能的雙向(inout)端口。 數(shù)據(jù)類型
    的頭像 發(fā)表于 10-25 09:21 ?237次閱讀

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

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

    技術(shù)干貨驛站 ▏解鎖C語(yǔ)言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級(jí)

    在C語(yǔ)言的學(xué)習(xí)過(guò)程中,運(yùn)算符的使用是不可忽視的重要環(huán)節(jié)。本文將繼續(xù)深入探討C語(yǔ)言中的運(yùn)算符,重點(diǎn)介紹位運(yùn)算符、賦值
    的頭像 發(fā)表于 10-13 08:09 ?245次閱讀
    技術(shù)干貨驛站 ▏解鎖C<b class='flag-5'>語(yǔ)言</b>高效編程秘訣:深入解析<b class='flag-5'>運(yùn)算符</b>與優(yōu)先級(jí)

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:編程高手必備,全方位解析運(yùn)算符的核心技能!

    在C語(yǔ)言的編程領(lǐng)域中,運(yùn)算符是實(shí)現(xiàn)數(shù)據(jù)處理與邏輯操作的關(guān)鍵工具。無(wú)論是在處理簡(jiǎn)單的數(shù)值計(jì)算,還是在構(gòu)建復(fù)雜的邏輯結(jié)構(gòu)時(shí),運(yùn)算符的使用貫穿始終。作為編程
    的頭像 發(fā)表于 09-18 15:56 ?348次閱讀
    技術(shù)干貨驛站 ▏深入理解C<b class='flag-5'>語(yǔ)言</b>:編程高手必備,全方位解析<b class='flag-5'>運(yùn)算符</b>的核心技能!

    c語(yǔ)言從右到左的運(yùn)算符有哪些

    以下是一些主要的從右到左運(yùn)算的C語(yǔ)言運(yùn)算符: 函數(shù)調(diào)用運(yùn)算符 ( () ):當(dāng)您調(diào)用一個(gè)函數(shù)時(shí),參數(shù)列表是從右到左進(jìn)行求值的。 后置遞增運(yùn)算符
    的頭像 發(fā)表于 08-20 11:39 ?895次閱讀

    TestStand表達(dá)式中常用的語(yǔ)法規(guī)則和運(yùn)算符使用

    TestStand也有自己的語(yǔ)言嘛?在回答這個(gè)問(wèn)題之前大家可以想一下在使用TestStand時(shí)有一個(gè)和語(yǔ)言密切相關(guān)的屬性。沒(méi)錯(cuò)那就是表達(dá)式(Expressions),在這篇文章中,小編將以Q&A的方式來(lái)帶著大家來(lái)理解并熟悉TestStand表達(dá)式中較為常用的一些語(yǔ)法規(guī)則以
    的頭像 發(fā)表于 08-15 18:10 ?1350次閱讀
    TestStand表達(dá)式中常用的語(yǔ)法規(guī)則和<b class='flag-5'>運(yùn)算符</b>使用

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本數(shù)據(jù)類型和變量

    在C語(yǔ)言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲(chǔ)范圍和操作方式,而變量則是存儲(chǔ)數(shù)據(jù)的容器。本篇文章將從基本
    的頭像 發(fā)表于 07-26 17:53 ?2090次閱讀
    技術(shù)干貨驛站 ▏深入理解C<b class='flag-5'>語(yǔ)言</b>:基本<b class='flag-5'>數(shù)據(jù)類型</b>和變量

    Golang為何舍棄三元運(yùn)算符

    golang中不存在?:運(yùn)算符的原因是因?yàn)?b class='flag-5'>語(yǔ)言設(shè)計(jì)者已經(jīng)預(yù)見(jiàn)到三元運(yùn)算符經(jīng)常被用來(lái)構(gòu)建一些極其復(fù)雜的表達(dá)式。雖然使用if進(jìn)行替代會(huì)讓代碼顯得更長(zhǎng),但這毫無(wú)疑問(wèn)可讀性更強(qiáng)。
    的頭像 發(fā)表于 04-03 15:13 ?693次閱讀

    鴻蒙TypeScript入門學(xué)習(xí)第5天:【TypeScript 運(yùn)算符

    運(yùn)算符用于執(zhí)行程序代碼運(yùn)算,會(huì)針對(duì)一個(gè)以上操作數(shù)項(xiàng)目來(lái)進(jìn)行運(yùn)算。
    的頭像 發(fā)表于 04-01 16:18 ?485次閱讀
    鴻蒙TypeScript入門學(xué)習(xí)第5天:【TypeScript <b class='flag-5'>運(yùn)算符</b>】

    C語(yǔ)言數(shù)據(jù)類型有哪些

    在 C 語(yǔ)言中,數(shù)據(jù)類型指的是用于聲明不同類型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類型決定了變量存儲(chǔ)占用的空間,以及如何解釋存儲(chǔ)的位模式。
    發(fā)表于 03-20 10:56 ?468次閱讀
    C<b class='flag-5'>語(yǔ)言</b><b class='flag-5'>數(shù)據(jù)類型</b>有哪些

    西門子博途的算術(shù)表達(dá)式

    算術(shù)表達(dá)式既可以是一個(gè)數(shù)字值,也可以是由帶有算術(shù)運(yùn)算符的兩個(gè)值或表達(dá)式組合而成。 算術(shù)運(yùn)算符可以處理當(dāng)前 CPU 所支持的各種數(shù)據(jù)類型。如果在該運(yùn)算中有 2 個(gè)操作數(shù),那么可根據(jù)以下條
    的頭像 發(fā)表于 01-24 11:36 ?1000次閱讀
    RM新时代网站-首页