精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

什么是邏輯運算符

汽車電子技術 ? 來源:OpenFPGA ? 作者: 碎碎思 ? 2023-02-09 15:55 ? 次閱讀

數字硬件建模SystemVerilog-邏輯運算符

poYBAGPkpiyAIH3vAATd-hAQQfA004.png

經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式和運算符。

pYYBAGPkpjeAHw_lAAIrsU-9Z64181.png

邏輯運算符

邏輯運算符對其操作數求值,并返回一個值,該值指示求值結果是真還是假(true or false)。例如,運算a && b測試a和b是否都為真,如果兩個操作數都為真,則運算符返回真。否則,運算符返回false。

邏輯運算符返回值。SystemVerilog沒有內置的true或false布爾值。相反,邏輯運算符的返回使用邏輯值1’b1(一個一位寬的邏輯l)表示真,1’b0表示假。邏輯運算符還可以返回1’bx,指示仿真無法確定實際邏輯門的評估結果是否為真或假的模糊條件。

判斷一個表達式是真是假。要確定操作數是真是假,SystemVerilog使用以下規則:

  • 如果所有位均為0,則操作數為假
  • 如果所有位均為1,則操作數為真
  • 如果所有位均為X或Z,且沒有位為1,則操作數未知X

表5-1列出了RTL綜合編譯器普遍支持的邏輯運算符。

表5-11:RTL建模的邏輯運算符

pYYBAGPkpkSANdXrAADSr4eViwU021.png

邏輯求反運算符通常被稱為“not運算符”,它是“not true”的縮寫。

邏輯運算符通過對每個操作數進行歸約OR來執行其運算,從而產生一個1位結果。然后對該結果進行求值,以確定其為真還是假。對于not運算符,1位的結果首先被反轉,然后求值為真或假。

表5-12和5-13顯示了這些邏輯運算符對幾個示例值的結果。

表5-12:邏輯AND and OR運算的示例結果

pYYBAGPkpnCAHjVOAAGAvWQPM9U423.png

表5-13:邏輯求反運算的示例結果

poYBAGPkpoGAOYXjAAFiZF8FZ0U483.png

邏輯求反運算符(!)和按位反轉運算符(~)之間的區別

練習題目《HDLBits: 在線學習 SystemVerilog(一)-Problem 2-6》Problem 4

應注意不要混淆邏輯求反運算符(!)以及按位反轉運算符(~)。求反運算符對其操作數執行真/假求值,并返回表示真、假或未知結果的1位值。按位反轉運算符對操作數的每一位(補碼)執行邏輯反轉,并返回與操作數相同位寬的值。

在某些操作中,這些操作的結果恰好相同,但在其他操作中,它們返回的值非常不同。當運算符與決策語句一起被錯誤使用時,這種差異可能導致錯誤代碼。考慮下面的例子:

poYBAGPkpoyAYuOLAAD7SenzQ2w554.png

前面代碼片段的最后兩行之所以不同,是因為這兩個運算符的工作方式不同——邏輯求反運算符(!)通過將兩位相加或相減,對2位選擇執行真/假計算,然后反轉1位結果,按位反轉運算符(~)只反轉2位選擇向量的每一位的值,并返回2位結果。if語句然后對2位向量進行真/假測試,該向量的計算結果為真,因為反轉后的值仍有一位設置為1。

最佳實踐指南5-1
使用按位反轉運算符反轉值的位,不要使用按位反轉運算符對邏輯求反運算符求反。相反,使用邏輯求反運算符來否定真/假測試的結果。不要使用邏輯求反運算符反轉值。
最佳實踐指南5-2
僅使用邏輯求反運算符求反來測試標量(1位)值,而不是 對向量執行真/假測試。

如果向量的任何位為1,邏輯運算將返回true,這可能會導致在測試特定位時出現設計錯誤。計算向量值時,使用等式或關系運算符測試可接受的值。

示例5-7說明了一個小型RTL模型,該模型使用邏輯NOT、邏輯AND和邏輯OR運算符。該設計是一個邏輯比較器,如果兩個數據值中的任何一個在可配置的值范圍內,則設置一個flag。

示例5-7:使用邏輯運算符:當值在某個范圍內時設置flag

poYBAGPkpp-AIiNYAAHodulFuHs131.png

圖5-7顯示了示例5-7中的RTL模型綜合結果

圖5-7:示例5-7的綜合結果:邏輯運算符(范圍內比較)

poYBAGPkpq6AdRsxAALenHpaj_E942.png

不可綜合的邏輯運算符

SV-2009增加了兩個額外的邏輯運算符,它們是蘊涵和等價運算符,在本文編寫時RTL綜合編譯器通常不支持這些運算符。表5-14列出了這兩個運算符的標記和描述。

表5-14:不可綜合邏輯運算符

pYYBAGPkpriAQUdWAAC9Pw7X9aA902.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作
    +關注

    關注

    0

    文章

    43

    瀏覽量

    18852
  • 邏輯
    +關注

    關注

    2

    文章

    832

    瀏覽量

    29446
  • 運算符
    +關注

    關注

    0

    文章

    172

    瀏覽量

    11062
收藏 人收藏

    評論

    相關推薦

    單片機的邏輯運算符和位運算符是什么?數字電路中的常用符號

    “真”就是其它一切“非 0 值”。然后,我們來具體分析一下幾個主要的邏輯運算符。我們假定有 2 個字節變量:A 和 B,二者進行某種邏輯運算后的結果為 F。以下邏輯運算符都是按照變量整體值進行
    的頭像 發表于 10-03 08:50 ?2.7w次閱讀
    單片機的<b class='flag-5'>邏輯運算符</b>和位<b class='flag-5'>運算符</b>是什么?數字電路中的常用符號

    Bug之邏輯運算符優先級分享!

    發現原來是運算符優先級的問題;看下面的圖可以知道,==的優先級高于 & ,再看上面那段代碼。。。發現了什么。。。。。。。天吶,,,可把我害苦了。。這也告訴我們,如果對優先級不全熟悉的話,那么盡量加括號來限制優先級,養成好習慣對減少Bug是多么重要啊!在此分享,希望能吸取教訓;
    發表于 10-28 20:31

    邏輯運算符是什么

    邏輯運算符:與或非條件結構if -else及其嵌套循環結構whilefordo-while
    發表于 07-14 07:50

    邏輯電路與邏輯運算符

    一、邏輯電路與邏輯運算邏輯運算符:(1)按變量整體值進行運算邏輯與(&&)邏輯或(||)
    發表于 07-16 10:51

    【通信專欄】附錄一:STM32單片機C語言基礎/邏輯運算/按位運算/結構體/宏定義 精選資料分享

    在單片機開發中,總有一些C語言基礎知識是常常用到的而我們又不易掌握的,今天以STM32單片機為例,總結一下那些常用的C語言基礎知識,例如邏輯運算符,結構體,宏定義以及按位運算符邏輯運算符邏輯
    發表于 07-21 08:28

    Bitwise 邏輯運算符進行設計

    鎖定。  AND Bitwise 運算符  攝像頭滑塊的主要位運算符是 AND。該運算器使用 C 語言編程中的安培 (&) 符號,使用圖 1 中的真值表。  圖 1
    發表于 04-02 17:39

    【verilog每日一練】基本邏輯運算符的使用

    用組合邏輯實現以下運算
    發表于 08-11 10:32

    C語言中的邏輯運算符是怎么樣的

    C語言提供了一組邏輯運算符:或(||)、且(&&)、非(!),分別對應于命題邏輯中的 OR、AND、NOT運算
    的頭像 發表于 02-20 16:25 ?4005次閱讀

    邏輯運算符與表達式

    在C語言中,我們通常會進行真值與假值的判斷,這時我們就需要用到邏輯運算符邏輯表達式。如果表達式的值不為0,則通通返回為真值。只有當表達式的值為0時,才會返回假值。
    的頭像 發表于 02-21 15:16 ?2071次閱讀
    <b class='flag-5'>邏輯運算符</b>與表達式

    邏輯運算符與表達式

    邏輯運算符與位邏輯表達式可以實現位的編輯,比如位的清零、設置、取反和取補等操作。使用位邏輯運算符與位邏輯表達式可以在不使用匯編的情況下實現部分匯編的功能
    的頭像 發表于 02-21 15:22 ?1216次閱讀
    位<b class='flag-5'>邏輯運算符</b>與表達式

    C語言邏輯運算符優先次序

    有3種邏輯運算符:與(AND),或(OR),非(NOT)。在basic和Pascal等語言可以在程序中直接用and,or,not作為邏輯運算符。在C語言中不能再程序中直接使用,而是用其他符號代替。
    的頭像 發表于 03-09 10:49 ?2977次閱讀

    KUKA機器人的邏輯運算符

    邏輯運算符用于布爾變量、常數和簡單的、借助比較運算符構成的邏輯表達式的邏輯運算
    發表于 07-21 10:06 ?2424次閱讀
    KUKA機器人的<b class='flag-5'>邏輯運算符</b>

    C語言中邏輯運算符的使用方法及優先級關系

    邏輯運算符是用來比較和操作布爾值的運算符
    發表于 08-21 14:46 ?4059次閱讀
    C語言中<b class='flag-5'>邏輯運算符</b>的使用方法及優先級關系

    verilog的邏輯運算符

    寫在前面 之前曾經整理過verilog的各類運算符的表達方式,但是在學習的過程中并未深入研究關于邏輯運算符的相關知識,導致在實際使用過程中錯誤頻出,下面是我從網絡上整理的相關verilog的邏輯運算符
    的頭像 發表于 09-21 10:07 ?2208次閱讀
    verilog的<b class='flag-5'>邏輯運算符</b>

    邏輯運算符兩側運算對象的數據類型是

    邏輯運算符是編程中常用的運算符之一,用于判斷兩個表達式之間的關系,并返回布爾值結果。在邏輯運算中,兩側運算對象的數據類型可以是任意類型。 首先,我們需要了解
    的頭像 發表于 11-30 14:15 ?1650次閱讀