色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

連接和復制運算符

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

數字硬件建模SystemVerilog-連接和復制運算符

poYBAGPkowyALvtUAATZyu9VRrM226.png

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

馬上HDLBits-SystemVerilog版本也開始準備了,基本這一部分完成后就開始更新~

pYYBAGPkoxiAUJ-5AAIk-uoqDPg077.png

介紹

連接和復制運算符將多個表達式連接在一起,形成一個向量表達式。結果向量中的位總數是每個子表達式中所有位的總和。連接有兩種形式,簡單連接和復制連接。一個簡單的連接將任意數量的表達式連接在一起。復制連接將表達式連接在一起,然后復制指定次數的結果。表5-3顯示了連接和復制運算符的一般語法和用法:

表5-1:RTL建模的連接和復制運算符

以下變量和值用于顯示這些運算符的結果。

poYBAGPkoy-AXTi_AAAvdjJlvVU994.png

連接和復制運算符是可綜合的。運算符不直接表示硬件中的任何邏輯功能。它們只是表示同時使用多個信號,將文字值附加到信號或文字值。

示例5-1和5-2說明了連接運算符在RTL建模中的兩種常見應用:

在賦值語句的右側或左側將多個信號連接在一起。在每個示例之后,圖5-1和5-2顯示了連接運算符如何在綜合生成的門級功能。然而,在RTL模型中,連接運算符是一種有用的構造,用于以簡潔的方式表示硬件功能。

示例5-1:使用連接運算符:多輸入狀態寄存器

//`begin_keywords

"1800-2012"

//useSystemVerilog-2012keywords

modulestatus_reg

(inputlogicclk,//registerclk

inputlogicrstN,//active-lowreset

inputlogicint_en,//1-bitinterrupt

enable

inputlogiczero,//1-bitresult=0flag

inputlogiccarry,//1-bitresultoverflowflag

inputlogicneg,//1-bitnegativeresultflag

inputlogic[1:0]parity,//2-bitparitybits

outputlogic[7:0]status//8-bitstatusregisteroutput

);

timeunit1ns;timeprecision1ns;

always_ff@(posedgeclkornegedgerstN)//asyncreset

if

(!rstN)//active-lowreset

status<=?{1

'b0,2'

b11,5

'b0};//reset

else

status<=?{int_en,2'

b11,zero,carry,neg,parity};//load

endmodule:status_reg

//`end_keywords

圖5-1:示例5-l的綜合結果:連接運算符(狀態寄存器)

pYYBAGPkoz-ANHa2AAGNkcfVBvg169.png
筆記
綜合編譯器實現運算符的方式會受到許多因素的影響,包括目標設備、與運算符一起使用的其他運算符或編程語句、使用的綜合編譯器,以及”指定的綜合選項和約束。

示例5-1中的狀態寄存器有兩個未使用的位,它們的常量值為1,用于生成圖5-1所示狀態寄存器實現的綜合編譯器將這兩個未使用的位映射到8位上拉輸出上。其他綜合編譯器,或者指定不同的綜合約束,可能會以不同的方式映射相同的RTL功能,例如通過使用預設為1值的觸發器

示例5-2:使用連接運算符:帶進位的加法器

//`begin_keywords

"1800-2012"

modulertl_adder

(inputlogica,b,ci,

outputlogicsum,co

);

timeunit1ns;timeprecision1ns;

assign{co,sum}=a+b+ci;

endmodule:rtl_adder

//`end_keywords

圖5-2:示例5-2的綜合結果:加法運算符(帶進位/輸出的加法器)

pYYBAGPko0yAAycnAAG_jja-u34700.png

用于生成圖5-2所示實現的綜合編譯器將RTL加法器功能映射到通用加法器塊——綜合的下一步將針對特定的ASICFPGA設備,通用加法器將在該步驟中映射到特定的加法器實現。

連接和復制運算符經常用于創建用作其他運算符操作數的表達式。這方面的例子將在本章后面的章節和后面的章節中看到。

在使用連接時,有一些重要的規則需要注意:

  • 可以將任何多個表達式連接在一起,只包括一個表達式,
  • 連接中的表達式必須具有固定大小。無大小的文字值不允許使用,例如數字5和’1,是不被允許的。
  • 連接的結果始終是無符號的,無論連接中表達式的符號是什么。

不要將連接與賦值列表混淆。SystemVerilog有一個包含在’{and}(賦值列表)標記之間的賦值列表運算符。雖然賦值列表運算符看起來類似于連接運算符,但其功能卻大不相同。賦值列表運算符將多個值連接在一起,以創建一個新的單個值。賦值列表運算符以撇號開頭(’),并且用于將單個值的集合分配給數組的單個元素或結構的單個成員。

{{4{a[3]}},a} 結果是11111011(二進制)一個8位的值, a的有效位重復4次,然后連接到a。

{8{2’bl0}}結果是1010101010101010(二進制),一個16位的值,2’b01重復8次。

{4’hF,a}結果是1111_1011(二進制),一個8位的值。

{a,b}結果是101100010001(二進制),一個12位的值。

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

    關注

    0

    文章

    55

    瀏覽量

    11662
  • 連接
    +關注

    關注

    2

    文章

    95

    瀏覽量

    20964
  • 運算符
    +關注

    關注

    0

    文章

    172

    瀏覽量

    11079
收藏 人收藏

    評論

    相關推薦

    C語言基礎知識(4)--運算符

    C語言中,運算符包括有算術運算符、關系運算符、邏輯運算符和位運算。
    的頭像 發表于 06-15 09:38 ?3637次閱讀

    C語言運算符的使用方法

    詳細介紹了C語言表達式、算術運算符、賦值運算符、關系運算符、條件結構、邏輯運算符、位運算符的語法和使用方法,并討論了
    發表于 11-02 11:30 ?1603次閱讀
    C語言<b class='flag-5'>運算符</b>的使用方法

    matlab關系運算符

    matlab關系運算符 算數運算符 + 矩陣加  - 減  * 乘  .* 數組乘  ^ 矩陣乘方  .^ 數
    發表于 06-18 14:47 ?2833次閱讀

    條件運算符是什么_條件運算符有哪些

    運算符優先級高于賦值、逗號運算符,低于其他運算符。關系運算實際上是邏輯比較運算,它是邏輯運算
    發表于 11-16 16:02 ?1.1w次閱讀
    條件<b class='flag-5'>運算符</b>是什么_條件<b class='flag-5'>運算符</b>有哪些

    單目運算符是什么_單目運算符有哪些

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

    C運算符的優先級和結合性詳細解決

    運算符是一種告訴編譯器執行特定的數學或邏輯操作的符號。 C語言內置了豐富的運算符,大體可分為10類:算術運算符、關系運算符、邏輯運算符、位
    的頭像 發表于 02-22 17:27 ?3233次閱讀

    淺析MySQL中的各類運算符

    MySQL支持多種運算符,我們在寫SQL腳本時經常會需要用到各種各樣的運算符,這些運算符可以用來連接表達式,進而從數據庫中查詢我們需要的結果集等。這些類型主要包括算術
    的頭像 發表于 05-03 17:41 ?2051次閱讀
    淺析MySQL中的各類<b class='flag-5'>運算符</b>

    python運算符是什么

    python運算符 0. 什么是運算符? 本章節主要說明Python的運算符。舉個簡單的例子 4 +5 = 9 。 例子中,4和5被稱為操作數,“+”號為運算符。 Python語言支持
    的頭像 發表于 02-21 16:44 ?2377次閱讀

    C語言總結_語句、運算符

    當前文章復盤C語言的: 位運算運算符、基本運算符、數據類型、變量、for語句、while語句、goto語句、switch語句、運算符優先級強制轉換等。
    的頭像 發表于 08-14 09:39 ?1000次閱讀

    什么是運算符重載

    重載運算符是具有特殊名稱的函數,是通過關鍵字** operator **后跟運算符的符號來定義的
    的頭像 發表于 01-20 15:30 ?2487次閱讀

    條件(三元)運算符

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

    什么是移位運算符

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

    什么是邏輯運算符

    邏輯運算符對其操作數求值,并返回一個值,該值指示求值結果是真還是假(true or false)。例如,運算a && b測試a和b是否都為真,如果兩個操作數都為真,則運算符返回真。否則,運算符
    的頭像 發表于 02-09 15:55 ?2017次閱讀
    什么是邏輯<b class='flag-5'>運算符</b>

    C語言的運算符

    在C語言中,我們常常會用到表達式,在使用表達式的過程中便會使用到運算符。C語言中,不同的運算符擁有不同的優先級和結合性。在執行運算的過程中,程序會按照運算符的優先級和結合性進行計算。
    的頭像 發表于 02-21 15:12 ?1187次閱讀
    C語言的<b class='flag-5'>運算符</b>

    Go語言運算符主要包括哪些呢?

    Go語言運算符主要包括:算數運算符、關系運算符、邏輯運算符、位運算符、賦值運算符和其他
    的頭像 發表于 05-26 15:54 ?860次閱讀
    Go語言<b class='flag-5'>運算符</b>主要包括哪些呢?
    主站蜘蛛池模板: 韩国无遮羞禁动漫在线观看| 亚洲精品一二三| 欧美xxx性| 久久青草免费91线频观看站街| 国产精品一区二区人妻无码| 超碰免费视频部落格| 91情国产l精品国产亚洲区| 一本之道高清在线观看一区| 亚洲国产在线综合018| 偷尝禁果H1V1幸运的山熊| 色偷偷91综合久久噜噜| 人人妻免费线| 人与禽交3d动漫羞羞动漫| 飘雪在线观看免费完整版| 碰超成人在线公开免费视频| 欧美自拍亚洲综合图区| 青青伊人久久| 日日干日日操日日射| 三级黄在线| 无码人妻视频又大又粗欧美| 小舞被爆操| 亚洲精品永久免费| 亚洲永久精品AV在线观看| 伊人不卡久久大香线蕉综合影院| 一级做a爰片久久免费| 最近免费中文MV在线字幕| 97成人在线| 啊叫大点声欠CAO的SAO贷| 抽插H浊水H嫩B父皇| 国产精品麻豆a在线播放| 国产女人与黑人在线播放| 好看的电影网站亚洲一区| 精精国产www视频在线观看免费| 久久国产精品久久国产精品| 恋夜影院安卓免费列表uc| 欧美日韩亚洲一区二区三区在线观看| 秋霞av伦理片在线观看| 为什么丈夫插我我却喜欢被打着插| 亚洲AV蜜桃永久无码精品红樱桃| 亚洲一区在线播放| 91久久偷偷看嫩草影院无费|