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

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

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

使用“~”運(yùn)算符對(duì)單bit信號(hào)進(jìn)行取反

雷達(dá)通信電子戰(zhàn) ? 來源:軟硬件技術(shù)開發(fā) ? 2023-11-08 09:28 ? 次閱讀

使用“~”運(yùn)算符對(duì)單bit信號(hào)進(jìn)行取反(也稱為位翻轉(zhuǎn)或反向)。

例如,假設(shè)有一個(gè)單bit信號(hào)a,你可以創(chuàng)建一個(gè)新的信號(hào)b,它是a的反向:

wire a;
wire b = ~a;
如果a是1,那么b就是0;如果a是0,那么b就是1。這就是所謂的取反操作。

對(duì)多bit信號(hào)進(jìn)行取反時(shí),依然可以使用 "~" 運(yùn)算符。

例如,假設(shè)有一個(gè)8bit的信號(hào) 'a',您可以創(chuàng)建一個(gè)新的信號(hào) 'b',它是 'a' 的取反:
wire [7:0] a;
wire [7:0] b = ~a;

在這個(gè)例子中,如果 `a` 是 `8'b10101010`,那么 `b` 就是 `8'b01010101`。這個(gè)操作會(huì)分別對(duì) `a` 的每一位進(jìn)行取反,不需要使用循環(huán)或者 generate 語句。

當(dāng)然,`generate` 和 `for` 語句可用于生成一組結(jié)構(gòu)類似的模塊或代碼塊。

如果想對(duì)多位數(shù)據(jù)進(jìn)行取反操作,也可以使用 `for` 循環(huán)和 `generate` 語句。

以下是使用 `for` 和 `generate` 對(duì)多位信號(hào)進(jìn)行取反的示例:

module invertor #(parameter WIDTH = 8)
(
input wire [WIDTH-1:0] a, // 輸入信號(hào)
output wire [WIDTH-1:0] b // 輸出信號(hào)
);
genvar i; // 生成變量, 在generate塊中作為計(jì)數(shù)器使用
generate
for (i = 0; i < WIDTH; i = i + 1) begin: invert_loop // 指定循環(huán)標(biāo)簽
assign b[i] = ~a[i]; // 對(duì)每一位進(jìn)行取反操作
end
endgenerate
endmodule
在這個(gè)例子中,`for` 循環(huán)遍歷輸入向量 `a` 的每一位,并對(duì)每一位使用 `~` 運(yùn)算符進(jìn)行取反操作,然后把結(jié)果賦值給輸出向量 `b` 的相應(yīng)位。

`generate` 和 `genvar` 關(guān)鍵詞用于創(chuàng)建可生成的硬件結(jié)構(gòu)。

這種做法可以處理任何位寬的輸入,只要將位寬作為參數(shù)傳遞給模塊即可。





審核編輯:劉清

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

    關(guān)注

    28

    文章

    1335

    瀏覽量

    109847
  • for循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    2483

原文標(biāo)題:Verilog基礎(chǔ):按位取反“~”的用法

文章出處:【微信號(hào):雷達(dá)通信電子戰(zhàn),微信公眾號(hào):雷達(dá)通信電子戰(zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言運(yùn)算符的使用方法

    詳細(xì)介紹了C語言表達(dá)式、算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、條件結(jié)構(gòu)、邏輯運(yùn)算符、位運(yùn)算符的語法和使用方法,并討論了
    發(fā)表于 11-02 11:30 ?1215次閱讀
    C語言<b class='flag-5'>運(yùn)算符</b>的使用方法

    【跟我學(xué)單片機(jī)C語言】詳解運(yùn)算符和表達(dá)式的位運(yùn)算符

    【跟我學(xué)單片機(jī)C語言】詳解運(yùn)算符和表達(dá)式的位運(yùn)算符學(xué)過匯編的朋友都知道匯編對(duì)位的處理能力是很強(qiáng)的,但是單片機(jī)C語言也能對(duì)運(yùn)算對(duì)象進(jìn)行按位操作,從而使單片機(jī)C語言也能具有一定的對(duì)硬件直接
    發(fā)表于 12-07 13:51

    C語言運(yùn)算符優(yōu)先級(jí)(超詳細(xì))

    -- 2-負(fù)號(hào)運(yùn)算符-表達(dá)式右到左運(yùn)算符~按位取反運(yùn)算符~表達(dá)式++自增運(yùn)算符++變量名/變
    發(fā)表于 04-27 16:47

    邏輯電路與邏輯運(yùn)算符

    一、邏輯電路與邏輯運(yùn)算邏輯運(yùn)算符:(1)按變量整體值進(jìn)行運(yùn)算 :邏輯與(&&)邏輯或(||) 邏輯非(?。?(2)按變量的每一位進(jìn)行運(yùn)算: 按位與(&) 按位或(|) 按位
    發(fā)表于 07-16 10:51

    2.7 python運(yùn)算符

    ;> a5>>> a -= 2>>> a34. Python位運(yùn)算符按位運(yùn)算符是把數(shù)字看作二進(jìn)制來進(jìn)行計(jì)算的。Python中的按位運(yùn)算法則如下:[td]
    發(fā)表于 02-21 16:43

    條件運(yùn)算符是什么_條件運(yùn)算符有哪些

    運(yùn)算符優(yōu)先級(jí)高于賦值、逗號(hào)運(yùn)算符,低于其他運(yùn)算符。關(guān)系運(yùn)算實(shí)際上是邏輯比較運(yùn)算,它是邏輯運(yùn)算
    發(fā)表于 11-16 16:02 ?1.1w次閱讀
    條件<b class='flag-5'>運(yùn)算符</b>是什么_條件<b class='flag-5'>運(yùn)算符</b>有哪些

    運(yùn)算符是什么_運(yùn)算符有哪些

    運(yùn)算符是指運(yùn)算所需變量為一個(gè)的運(yùn)算符,又叫一元運(yùn)算符,其中有邏輯非運(yùn)算符:!、按位
    的頭像 發(fā)表于 02-24 15:42 ?6w次閱讀
    <b class='flag-5'>單</b>目<b class='flag-5'>運(yùn)算符</b>是什么_<b class='flag-5'>單</b>目<b class='flag-5'>運(yùn)算符</b>有哪些

    縮減運(yùn)算符的工程實(shí)例講解

      縮減運(yùn)算符運(yùn)算符,也有與或非運(yùn)算。其與或非運(yùn)算規(guī)則類似于位運(yùn)算符的與或非
    的頭像 發(fā)表于 11-19 07:06 ?4096次閱讀
    縮減<b class='flag-5'>運(yùn)算符</b>的工程實(shí)例講解

    淺析MySQL中的各類運(yùn)算符

    MySQL支持多種運(yùn)算符,我們?cè)趯慡QL腳本時(shí)經(jīng)常會(huì)需要用到各種各樣的運(yùn)算符,這些運(yùn)算符可以用來連接表達(dá)式,進(jìn)而從數(shù)據(jù)庫中查詢我們需要的結(jié)果集等。這些類型主要包括算術(shù)運(yùn)算符、比較
    的頭像 發(fā)表于 05-03 17:41 ?2000次閱讀
    淺析MySQL中的各類<b class='flag-5'>運(yùn)算符</b>

    python運(yùn)算符是什么

    python運(yùn)算符 0. 什么是運(yùn)算符? 本章節(jié)主要說明Python的運(yùn)算符。舉個(gè)簡單的例子 4 +5 = 9 。 例子中,4和5被稱為操作數(shù),“+”號(hào)為運(yùn)算符。 Python語言支持
    的頭像 發(fā)表于 02-21 16:44 ?2287次閱讀

    什么是運(yùn)算符重載

    重載運(yùn)算符是具有特殊名稱的函數(shù),是通過關(guān)鍵字** operator **后跟運(yùn)算符的符號(hào)來定義的
    的頭像 發(fā)表于 01-20 15:30 ?2373次閱讀

    條件(三元)運(yùn)算符

    RTL建模中廣泛使用的運(yùn)算符是條件運(yùn)算符,也稱為三元運(yùn)算符,該運(yùn)算符用于在兩個(gè)表達(dá)式之間進(jìn)行選擇——表5-2列出了用于表示條件
    的頭像 發(fā)表于 02-09 15:42 ?1267次閱讀
    條件(三元)<b class='flag-5'>運(yùn)算符</b>

    什么是移位運(yùn)算符

    移位運(yùn)算符將向量的位向右或向左移位指定的次數(shù)。SystemVerilog具有按位和算術(shù)移位運(yùn)算符
    的頭像 發(fā)表于 02-09 15:49 ?1732次閱讀
    什么是移位<b class='flag-5'>運(yùn)算符</b>

    c語言運(yùn)算符及例題

    只要有一個(gè)為真整體就為真。最后一個(gè)邏輯非!運(yùn)算符運(yùn)算符,只需右邊跟一個(gè)表達(dá)式,表示取反的意思,即原先真的取反則為假,原先假的
    發(fā)表于 02-16 16:14 ?0次下載

    C語言的運(yùn)算符

    在C語言中,我們常常會(huì)用到表達(dá)式,在使用表達(dá)式的過程中便會(huì)使用到運(yùn)算符。C語言中,不同的運(yùn)算符擁有不同的優(yōu)先級(jí)和結(jié)合性。在執(zhí)行運(yùn)算的過程中,程序會(huì)按照運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
    的頭像 發(fā)表于 02-21 15:12 ?1109次閱讀
    C語言的<b class='flag-5'>運(yùn)算符</b>