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

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

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

3天內不再提示

關于數字硬件建模SystemVerilog

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-09-01 08:50 ? 次閱讀

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

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

39b60faa-298e-11ed-ba43-dac502259ad0.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建模的邏輯運算符 39c6061c-298e-11ed-ba43-dac502259ad0.png

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

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

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

表5-12:邏輯AND and OR運算的示例結果 39e6f73c-298e-11ed-ba43-dac502259ad0.png 表5-13:邏輯求反運算的示例結果 3a1365d8-298e-11ed-ba43-dac502259ad0.png

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

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

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

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

3a3ee672-298e-11ed-ba43-dac502259ad0.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 3a67887a-298e-11ed-ba43-dac502259ad0.png

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

圖5-7:示例5-7的綜合結果:邏輯運算符(范圍內比較) 3a9d8e5c-298e-11ed-ba43-dac502259ad0.png

不可綜合的邏輯運算符

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

表5-14:不可綜合邏輯運算符 3ad2c126-298e-11ed-ba43-dac502259ad0.png

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

    關注

    11

    文章

    3253

    瀏覽量

    66114
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59701
  • 編譯器
    +關注

    關注

    1

    文章

    1618

    瀏覽量

    49050

原文標題:SystemVerilog-邏輯運算符

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在SystemVerilog中為狀態機的命令序列的生成建模

     我們將展示如何在SystemVerilog中為狀態機的命令序列的生成建模,并且我們將看到它是如何實現更高效的建模,以及實現更好的測試生成。?
    發表于 01-01 06:05

    數字硬件建模SystemVerilog-歸約運算符

    介紹歸約運算符對單個操作數的所有位執行運算,并返回標量(1位)結果。表5-9列出了歸約運算符。表5-9:RTL建模的歸約運算符歸約運算符包括一個NAND和一個NOR運算符,這是按位運算符所沒有
    發表于 10-20 15:03

    SystemVerilog硬件功能如何進行建模

    本文定義了通常用于描述使用SystemVerilog硬件功能進行建模的詳細級別的術語。
    的頭像 發表于 03-30 11:42 ?1661次閱讀

    數字硬件建模SystemVerilog-網絡

    每個SystemVerilog網絡類型都有特定的語義規則,這些規則會影響多個驅動程序的解析方式。雖然所有網絡類型都表示硅行為,但并非所有網絡類型都可以用標準ASIC和FPGA技術表示。表3-3列出了ASIC和FPGA綜合編譯器支持的網絡類型。
    的頭像 發表于 05-09 09:26 ?1990次閱讀

    數字硬件建模SystemVerilog-結構體

    默認情況下,結構體會被非壓縮的。這意味著結構體的成員被視為獨立變量或常量,并以一個共同的名稱分組在一起。SystemVerilog沒有指定軟件工具應該如何存儲非壓縮結構體的成員。不同的軟件工具具對于結構體的存儲分布也是不同的。
    的頭像 發表于 06-30 09:54 ?1007次閱讀

    關于數字硬件建模SystemVerilog聯合體

    聯合體是一個可以有多個數據類型表示的單個存儲元素,聯合體的聲明類似結構體,但推斷出的硬件非常不同。
    的頭像 發表于 07-07 09:05 ?963次閱讀

    IEEE SystemVerilog標準:統一的硬件設計規范和驗證語言

    IEEE SystemVerilog標準:統一的硬件設計規范和驗證語言
    發表于 08-25 15:52 ?1次下載

    使用Verilog/SystemVerilog硬件描述語言練習數字硬件設計

    HDLBits 是一組小型電路設計習題集,使用 Verilog/SystemVerilog 硬件描述語言 (HDL) 練習數字硬件設計~
    的頭像 發表于 08-31 09:06 ?1656次閱讀

    數字硬件建模SystemVerilog-組合邏輯建模(1)連續賦值語句

    SystemVerilog有三種在可綜合RTL級別表示組合邏輯的方法:連續賦值語句、always程序塊和函數。接下來幾篇文章將探討每種編碼風格,并推薦最佳實踐編碼風格。
    的頭像 發表于 12-07 15:31 ?1462次閱讀

    FPGA學習-SystemVerilog語言簡介

    SystemVerilog是一種硬件描述和驗證語言(HDVL),它基于IEEE1364-2001 Verilog硬件描述語言(HDL),并對其進行了擴展,包括擴充了 C語言 數據類型、結構、壓縮和非
    的頭像 發表于 12-08 10:35 ?2077次閱讀

    RTL和門級建模

    SystemVerilog能夠在許多不同的細節級別(稱為“抽象級別”)對數字邏輯進行建模。抽象意味著缺乏細節。數字模型越抽象,它所代表的硬件
    的頭像 發表于 02-09 14:20 ?1027次閱讀
    RTL和門級<b class='flag-5'>建模</b>

    數字硬件建模SystemVerilog之Interface方法概述

    SystemVerilog Interface是modport的一種,但比簡單的輸入、輸出或輸入輸出端口的功能更多。
    的頭像 發表于 04-28 14:10 ?2595次閱讀
    <b class='flag-5'>數字</b><b class='flag-5'>硬件</b><b class='flag-5'>建模</b><b class='flag-5'>SystemVerilog</b>之Interface方法概述

    數字硬件建模SystemVerilog之Interface和modport介紹

    SystemVerilog Interface是modport的一種,但比簡單的輸入、輸出或輸入輸出端口的功能更多。
    的頭像 發表于 04-28 14:12 ?3879次閱讀
    <b class='flag-5'>數字</b><b class='flag-5'>硬件</b><b class='flag-5'>建模</b><b class='flag-5'>SystemVerilog</b>之Interface和modport介紹

    SystemVerilog的覆蓋率建模方式

    為了確保驗證的完備性,我們需要量化驗證目標。SystemVerilog提供了一套豐富的覆蓋率建模方式。
    的頭像 發表于 06-25 10:44 ?1097次閱讀

    SystemVerilog硬件設計部分有哪些優勢

    Language,硬件描述語言),而SystemVerilog則是HDVL(Hardware Design and Verification Language,硬件設計與驗證語言)。由此可見,
    的頭像 發表于 10-19 11:19 ?1159次閱讀
    <b class='flag-5'>SystemVerilog</b>在<b class='flag-5'>硬件</b>設計部分有哪些優勢