chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

連接和復(fù)制運算符

汽車電子技術(shù) ? 來源:OpenFPGA ? 作者: 碎碎思 ? 2023-02-09 15:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數(shù)字硬件建模SystemVerilog-連接和復(fù)制運算符

poYBAGPkowyALvtUAATZyu9VRrM226.png

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

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

pYYBAGPkoxiAUJ-5AAIk-uoqDPg077.png

介紹

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

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

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

poYBAGPkoy-AXTi_AAAvdjJlvVU994.png

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

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

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

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

//`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的綜合結(jié)果:連接運算符(狀態(tài)寄存器)

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

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

示例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的綜合結(jié)果:加法運算符(帶進位/輸出的加法器)

pYYBAGPko0yAAycnAAG_jja-u34700.png

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

連接和復(fù)制運算符經(jīng)常用于創(chuàng)建用作其他運算符操作數(shù)的表達式。這方面的例子將在本章后面的章節(jié)和后面的章節(jié)中看到。

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

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

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

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

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

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

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

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

    關(guān)注

    0

    文章

    55

    瀏覽量

    11896
  • 連接
    +關(guān)注

    關(guān)注

    2

    文章

    101

    瀏覽量

    21363
  • 運算符
    +關(guān)注

    關(guān)注

    0

    文章

    173

    瀏覽量

    11485
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

    C語言中,運算符包括有算術(shù)運算符、關(guān)系運算符、邏輯運算符和位運算。
    的頭像 發(fā)表于 06-15 09:38 ?4940次閱讀

    C語言運算符的使用方法

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

    matlab關(guān)系運算符

    matlab關(guān)系運算符 算數(shù)運算符 + 矩陣加  - 減  * 乘  .* 數(shù)組乘  ^ 矩陣乘方  .^ 數(shù)
    發(fā)表于 06-18 14:47 ?2911次閱讀

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

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

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

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

    C運算符的優(yōu)先級和結(jié)合性詳細解決

    運算符是一種告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號。 C語言內(nèi)置了豐富的運算符,大體可分為10類:算術(shù)運算符、關(guān)系運算符、邏輯運算符、位
    的頭像 發(fā)表于 02-22 17:27 ?3606次閱讀

    淺析MySQL中的各類運算符

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

    python運算符是什么

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

    C語言總結(jié)_語句、運算符

    當(dāng)前文章復(fù)盤C語言的: 位運算運算符、基本運算符、數(shù)據(jù)類型、變量、for語句、while語句、goto語句、switch語句、運算符優(yōu)先級強制轉(zhuǎn)換等。
    的頭像 發(fā)表于 08-14 09:39 ?1336次閱讀

    什么是運算符重載

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

    條件(三元)運算符

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

    什么是移位運算符

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

    什么是邏輯運算符

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

    C語言的運算符

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

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

    Go語言運算符主要包括:算數(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符、賦值運算符和其他
    的頭像 發(fā)表于 05-26 15:54 ?1174次閱讀
    Go語言<b class='flag-5'>運算符</b>主要包括哪些呢?