国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FPGA設(shè)計Verilog基礎(chǔ)之Verilog的運(yùn)算符

這篇具有很好參考價值的文章主要介紹了FPGA設(shè)計Verilog基礎(chǔ)之Verilog的運(yùn)算符。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

verilog 不等于,FPGA進(jìn)階,fpga開發(fā),Verilog的運(yùn)算符,Verilog的運(yùn)算符優(yōu)先級

注意:后續(xù)技術(shù)分享,第一時間更新,以及更多更及時的技術(shù)資訊和學(xué)習(xí)技術(shù)資料,將在公眾號CTO Plus發(fā)布,請關(guān)注公眾號:CTO Plus

verilog 不等于,FPGA進(jìn)階,fpga開發(fā),Verilog的運(yùn)算符,Verilog的運(yùn)算符優(yōu)先級

FPGA設(shè)計Verilog基礎(chǔ)之Verilog的運(yùn)算符Verilog是一種硬件描述語言,支持多種運(yùn)算符,包括算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符https://mp.weixin.qq.com/s?__biz=MzIyMzQ5MTY4OQ==&mid=2247485152&idx=1&sn=28ca47f6cae79f6db708086d6f7c3bad&chksm=e81c25e6df6bacf0cd2d04315c716e870add24c8e1c11be0840a1c7e710bdba157a4a545d427#rd

Verilog是一種硬件描述語言,支持多種運(yùn)算符,包括算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、位運(yùn)算符、移位運(yùn)算符、拼接運(yùn)算符和其他一些運(yùn)算符。在進(jìn)行Verilog開發(fā)時,需要熟悉各種運(yùn)算符的作用和使用方法,以及運(yùn)算符的優(yōu)先級。

在前面的文章中已經(jīng)介紹了一百多個Verilog關(guān)鍵字的特性和使用的總結(jié),詳情請參考文末的推薦閱讀。

FPGA專欄:https://blog.csdn.net/zhouruifu2015/category_5690253

例如:

module comparator(input a, input b, output eq);

? assign eq = (a == b);

endmodule

上述代碼定義了一個比較器模塊,它有兩個輸入端口a和b,一個輸出端口eq。內(nèi)部邏輯使用比較運(yùn)算符實現(xiàn)。

1. 算術(shù)運(yùn)算符

在Verilog HDL語言中,算術(shù)運(yùn)算符又稱為二進(jìn)制運(yùn)算符。

Verilog支持加、減、乘、除和取模等算術(shù)運(yùn)算符,算術(shù)運(yùn)算符,簡單來說,就是數(shù)學(xué)運(yùn)算里面的加減乘除,數(shù)字邏輯處理有時候也需要進(jìn)行數(shù)字運(yùn)算,所以需要算術(shù)運(yùn)算符。這些運(yùn)算符的作用和使用方法如下:

加法運(yùn)算符(+):將兩個數(shù)相加?;蚍Q為正值運(yùn)算符。

減法運(yùn)算符(-):將兩個數(shù)相減?;蚍Q為負(fù)值運(yùn)算符。

乘法運(yùn)算符(*):將兩個數(shù)相乘。

除法運(yùn)算符(/):將兩個數(shù)相除。

取模運(yùn)算符(%):求兩個數(shù)相除的余數(shù)?;蚍Q為求余運(yùn)算符。

例如,下面是一個使用算術(shù)運(yùn)算符的示例:

reg [7:0] a, b, c;

assign c = a + b;

assign c = a - b;

assign c = a * b;

assign c = a / b;

assign c = a % b;

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

注意:? 在進(jìn)行算術(shù)運(yùn)算操作時,如果某一個操作數(shù)有不確定的值x,則整個結(jié)果也為不定值x。

2. 比較(關(guān)系)運(yùn)算符

Verilog支持等于、不等于、小于、小于等于、大于和大于等于等比較運(yùn)算符,關(guān)系運(yùn)算符主要是用來做一些條件判斷用的,在進(jìn)行關(guān)系運(yùn)算符時,如果聲明的關(guān)系是假的,則返回值是0,如果聲明的關(guān)系是真的,則返回值是1;所有的關(guān)系運(yùn)算符有著相同的優(yōu)先級別,關(guān)系運(yùn)算符的優(yōu)先級別低于算術(shù)運(yùn)算符的優(yōu)先級別。這些運(yùn)算符的作用和使用方法如下:

等于運(yùn)算符(==):判斷兩個數(shù)是否相等。

不等于運(yùn)算符(!=):判斷兩個數(shù)是否不相等。

小于運(yùn)算符(<):判斷第一個數(shù)是否小于第二個數(shù)。

小于等于運(yùn)算符(<=):判斷第一個數(shù)是否小于等于第二個數(shù)。

大于運(yùn)算符(>):判斷第一個數(shù)是否大于第二個數(shù)。

大于等于運(yùn)算符(>=):判斷第一個數(shù)是否大于等于第二個數(shù)。

例如,下面是一個使用比較運(yùn)算符的示例:

reg [7:0] a, b;

wire result;

assign result = (a == b);

assign result = (a != b);

assign result = (a < b);

assign result = (a <= b);

assign result = (a > b);

assign result = (a >= b);

3. 邏輯運(yùn)算符

Verilog支持與、或、非、異或等邏輯運(yùn)算符,邏輯運(yùn)算符是連接多個關(guān)系表達(dá)式用的,可實現(xiàn)更加復(fù)雜的判斷,一般不單獨使用,都需要配合具體語句來實現(xiàn)完整的邏輯。這些運(yùn)算符的作用和使用方法如下:

邏輯與運(yùn)算符(&&):當(dāng)兩個條件都為真時,返回真。

邏輯或運(yùn)算符(||):當(dāng)兩個條件中至少有一個為真時,返回真。

邏輯非運(yùn)算符(!):將一個條件取反。

例如,下面是一個使用邏輯運(yùn)算符的示例:

reg [7:0] a, b;

wire result;

assign result = (a && b);

assign result = (a || b);

assign result = !a;

4. 位(移位)運(yùn)算符

Verilog支持按位與、按位或、按位異或、按位取反、左移和右移等位運(yùn)算符,位運(yùn)算符是一類最基本的運(yùn)算符,可以認(rèn)為它們直接對應(yīng)數(shù)字邏輯中的與、或、非門等邏輯門。

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

移位運(yùn)算符包括左移位運(yùn)算符和右移位運(yùn)算符,這兩種移位運(yùn)算符都用0來填補(bǔ)移出的空位。這些運(yùn)算符的作用和使用方法如下:

按位與運(yùn)算符(&):將兩個數(shù)的二進(jìn)制位進(jìn)行與運(yùn)算。

按位或運(yùn)算符(|):將兩個數(shù)的二進(jìn)制位進(jìn)行或運(yùn)算。

按位異或運(yùn)算符(^):將兩個數(shù)的二進(jìn)制位進(jìn)行異或運(yùn)算。

按位取反運(yùn)算符(~):將一個數(shù)的二進(jìn)制位進(jìn)行取反運(yùn)算(每個位進(jìn)行取反)。

左移運(yùn)算符(<<):將一個數(shù)的二進(jìn)制位向左移動。

右移運(yùn)算符(>>):將一個數(shù)的二進(jìn)制位向右移動。

例如,下面是一個使用位運(yùn)算符的示例:

reg [7:0] a, b;

wire result;

assign result = (a & b);?? // 將 a 的每個位與 b 相同的位進(jìn)行相與

assign result = (a | b);??? // 將 a 的每個位與 b 相同的位進(jìn)行相或

assign result = (a ^ b);?? // 將 a 的每個位與 b 相同的位進(jìn)行異或

assign result = ~a;????? // 將 a 的每個位進(jìn)行取反

assign result = (a << 2);? 將 a 左移 2 位

assign result = (a >> 2);? 將 a 右移 2 位

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

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

條件操作符一般來構(gòu)建從兩個輸入中選擇一個作為輸出的條件選擇結(jié)構(gòu)(在其他語言中也叫三目運(yùn)算符),功能等同于always中的if-else語句。

符號

使用方法

說明

? :

a ? b : c

如果 a 為真,就選擇 b,否則選擇 c

代碼示例:

assign out = (sel == 1) ? in1 : in2;

上述代碼中,sel為選擇信號,in1和in2為兩個輸入信號,out為輸出信號。當(dāng)sel等于1時,將in1賦值給out,否則將in2賦值給out。

6. 拼接運(yùn)算符(Concatation)

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

符號

使用方法

說明

{}

{a, b}

將 a 和 b 拼接起來,作為一個新信號

代碼示例:

wire [7:0] a, b, c;

assign d = {a, b, c};

上述代碼中,a、b、c為三個8位輸入信號,d為24位輸出信號。使用拼接運(yùn)算符{}將a、b、c拼接成一個24位的信號d。

7. 其他運(yùn)算符

Verilog還支持其他一些運(yùn)算符,包括條件運(yùn)算符(?:)、括號運(yùn)算符(())、逗號運(yùn)算符(,)等。這些運(yùn)算符的作用和使用方法如下:

條件運(yùn)算符(?:):根據(jù)一個條件的真假返回兩個不同的值。

括號運(yùn)算符(()):用于改變運(yùn)算符的優(yōu)先級。

逗號運(yùn)算符(,):用于將多個表達(dá)式連接起來。

例如,下面是一個使用其他運(yùn)算符的示例:

reg [7:0] a, b;

wire result;

assign result = (a > b) ? a : b;

assign result = (a + b) * c;

assign result = (a, b, c);

wire out;

assign out = (a == 1) ? b : c, d;

上述代碼中,a為輸入信號,b、c、d為三個輸出信號,使用逗號運(yùn)算符將b和c、d連接起來,當(dāng)a等于1時,將b賦值給out,否則將c和d賦值給out。

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

在Verilog中,不同運(yùn)算符的優(yōu)先級不同,需要注意運(yùn)算順序,可以使用括號運(yùn)算符改變運(yùn)算符的優(yōu)先級。

下面是Verilog運(yùn)算符的優(yōu)先級,從高到低依次排列:

1. 括號運(yùn)算符(())

2. 取反運(yùn)算符(!、~)

3. 乘法運(yùn)算符(*)、除法運(yùn)算符(/)、取模運(yùn)算符(%)

4. 加法運(yùn)算符(+)、減法運(yùn)算符(-)

5. 左移運(yùn)算符(<<)、右移運(yùn)算符(>>)

6. 比較運(yùn)算符(<、<=、>、>=、==、!=、===、!==)

6. 按位與運(yùn)算符(&)

7. 按位異或運(yùn)算符(^、^~)

8. 按位或運(yùn)算符(|)

8. 與運(yùn)算符(&&)

9. 或運(yùn)算符(||)

10. 條件運(yùn)算符(?:)

11. 逗號運(yùn)算符(,)

SteveRocket的博客_CSDN博客-Python進(jìn)階,Django進(jìn)階,C進(jìn)階領(lǐng)域博主SteveRocket擅長Python進(jìn)階,Django進(jìn)階,C進(jìn)階,等方面的知識https://blog.csdn.net/zhouruifu2015/


更多資料 · 微信公眾號搜索【CTO Plus】關(guān)注后,獲取更多,我們一起學(xué)習(xí)交流。

關(guān)于公眾號的描述訪問如下鏈接


verilog 不等于,FPGA進(jìn)階,fpga開發(fā),Verilog的運(yùn)算符,Verilog的運(yùn)算符優(yōu)先級?

關(guān)于Articulate“做一個知識和技術(shù)的搬運(yùn)工。做一個終身學(xué)習(xí)的愛好者。做一個有深度和廣度的技術(shù)圈。”一直以來都想把專業(yè)領(lǐng)域的技https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q

推薦閱讀:

  • FPGA在工業(yè)缺陷檢測上的應(yīng)用實踐

  • FPGA設(shè)計Verilog基礎(chǔ)之Verilog全局變量和局部變量定義

  • FPGA設(shè)計Verilog基礎(chǔ)之Verilog中clk為什么要用posedge,而不用negedge

  • 初學(xué)者必須弄懂的一些基本FPGA設(shè)計概念(1)

  • 工作總結(jié)之全網(wǎng)最全的103個Verilog關(guān)鍵字總結(jié)(上)

  • 工作總結(jié)之全網(wǎng)最全的103個Verilog關(guān)鍵字總結(jié)(下)?

  • 5G時代的FPGA發(fā)展趨勢和應(yīng)用分析

  • FPGA結(jié)合chatgpt的應(yīng)用開發(fā)實踐

  • FPGA | FPGA設(shè)計流程指南 v2.0

  • 設(shè)計規(guī)范 | 總結(jié)開發(fā)過程中DDR3和FPGA部分的設(shè)計規(guī)范

  • 術(shù)語一覽 | 總結(jié)開發(fā)過程中關(guān)于FPGA的專業(yè)術(shù)語

  • 用AI幫我寫一篇關(guān)于FPGA的文章,并推薦最熱門的FPGA開源項目文章來源地址http://www.zghlxwxcb.cn/news/detail-771460.html

到了這里,關(guān)于FPGA設(shè)計Verilog基礎(chǔ)之Verilog的運(yùn)算符的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Verilog語法(二)——運(yùn)算符

    Verilog HDL 中支持多種運(yùn)算符,包括算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等等。以下是一些常用的運(yùn)算符及其用法。 Verilog 中的算術(shù)運(yùn)算符包括加法、減法、乘法、除法、取模等。它們的用法與常見的編程語言類似,如: 加法:+ 減法:- 乘法:* 除法:/ 取模:

    2024年02月01日
    瀏覽(21)
  • Verilog運(yùn)算符優(yōu)先級

    0 ! ~ 1 * / % 2 + 1 3 4 = = 5 == != === !== 6 ~ 7 ^ ^~ 8 | ~| 9 10 || 11 ?: 從上至下優(yōu)先級依次降低

    2024年02月16日
    瀏覽(24)
  • Verilog基本語法之運(yùn)算符(三)

    Verilog基本語法之運(yùn)算符(三)

    運(yùn)算符按功能分為9類: 算術(shù)運(yùn)算符 邏輯運(yùn)算符 關(guān)系運(yùn)算符 等式運(yùn)算符 縮減運(yùn)算符 條件運(yùn)算符 位運(yùn)算符 移位運(yùn)算符 位拼接運(yùn)算符 運(yùn)算符按操作數(shù)的個數(shù)分為3類: 單目運(yùn)算符:帶一個操作數(shù) 邏輯非!,按位取反~,縮減運(yùn)算符,移位運(yùn)算符 雙目運(yùn)算符:帶兩個操作數(shù) 算

    2023年04月09日
    瀏覽(27)
  • Verilog語法——2.模塊例化、運(yùn)算符

    Verilog語法——2.模塊例化、運(yùn)算符

    參考資料 【明德?lián)P_verilog零基礎(chǔ)入門語法HDL仿真快速掌握-手把手教你寫FPGA/ASIC代碼設(shè)計流程中的應(yīng)用】 2.1.1 什么是模塊例化 例化,即將項目不斷拆分成次級功能模塊,然后從最簡單的模塊開始實現(xiàn),進(jìn)而完成整個復(fù)雜項目 2.1.2 模塊例化的方法 針對已經(jīng)抽象好的模塊,需要

    2024年01月16日
    瀏覽(54)
  • Verilog學(xué)習(xí)記錄3——三目運(yùn)算符

    進(jìn)階示例: 以牛客網(wǎng) VL1 四選一多路器 為例 使用三目運(yùn)算符寫法:

    2024年02月11日
    瀏覽(23)
  • Verilog常用運(yùn)算符及表達(dá)式

    Verilog常用運(yùn)算符及表達(dá)式

    本文詳細(xì)介紹了Verilog常用的運(yùn)算符和表達(dá)式,特別是分享了處理“計算位寬溢出”和“負(fù)數(shù)”的可行方式,幫助讀者更加輕松地理解和掌握Verilog語言的運(yùn)算符。 算數(shù)運(yùn)算符:加(+)、減(-)、乘(*)、除(/)、取余(%) 賦值運(yùn)算符:非阻塞賦值(=)、阻塞賦值(=);

    2024年02月08日
    瀏覽(30)
  • 【JavaScript】JavaScript 運(yùn)算符 ⑤ ( 賦值運(yùn)算符 | 基礎(chǔ)賦值運(yùn)算符 與 復(fù)合賦值運(yùn)算符 )

    【JavaScript】JavaScript 運(yùn)算符 ⑤ ( 賦值運(yùn)算符 | 基礎(chǔ)賦值運(yùn)算符 與 復(fù)合賦值運(yùn)算符 )

    JavaScript 賦值運(yùn)算符種類 : 基礎(chǔ)賦值運(yùn)算符 : 等于 : = ; 復(fù)合賦值運(yùn)算符 : 加等 : += 減等 : -= 乘等 : *= 除等 : /= 取模等 : %= 有符號左移等 : = 有符號右移等 : = 無符號左移等 : = 無符號右移等 : = 在 JavaScript 語言中 , \\\" 賦值運(yùn)算符 \\\" 的 作用是 為 變量 分配值 ; 最基礎(chǔ)的 \\\" 賦值運(yùn)算

    2024年03月25日
    瀏覽(25)
  • FPGA設(shè)計Verilog基礎(chǔ)之Verilog全局變量和局部變量定義

    FPGA設(shè)計Verilog基礎(chǔ)之Verilog全局變量和局部變量定義

    注意:后續(xù)技術(shù)分享,第一時間更新,以及更多更及時的技術(shù)資訊和學(xué)習(xí)技術(shù)資料 ,將在公眾號 CTO Plus 發(fā)布,請關(guān)注公眾號: CTO Plus ? 在Verilog中,變量可以分為全局變量和局部變量兩種類型。全局變量在整個模塊中都可以使用,而局部變量只能在某個特定的代碼塊中使用。

    2024年02月15日
    瀏覽(38)
  • FPGA四選一的多路選擇器(用三元運(yùn)算符?:解決)

    FPGA四選一的多路選擇器(用三元運(yùn)算符?:解決)

    ?????? ?:符號通常用于條件運(yùn)算符,表示條件判斷。它類似于C語言中的三元運(yùn)算符,用于根據(jù)條件選擇不同的操作或值。 ????????例如,在Verilog中,條件運(yùn)算符?:可以用于if-else語句的簡寫形式。它的一般語法格式如下: ????????如果表達(dá)式為真,則結(jié)果為結(jié)果1;否

    2024年01月21日
    瀏覽(24)
  • Java基礎(chǔ)(運(yùn)算符)

    Java基礎(chǔ)(運(yùn)算符)

    運(yùn)算符和表達(dá)式 運(yùn)算符:對字面量或者變量進(jìn)行操作的 符號 表達(dá)式:用 運(yùn)算符 把字面量或者變量連接起來, 符合java語法的式子 就可以稱為表達(dá)式;不同運(yùn)算符連接的表達(dá)式體現(xiàn)的是不同類型的表達(dá)式。 算術(shù)運(yùn)算符(加、減、乘、除、取模、取余)(字符串只有加) 一、

    2024年04月26日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包