99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

poYBAGPkowyALvtUAATZyu9VRrM226.png

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

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

pYYBAGPkoxiAUJ-5AAIk-uoqDPg077.png

介紹

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

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

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

poYBAGPkoy-AXTi_AAAvdjJlvVU994.png

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

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

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

示例5-1:使用連接運(yùn)算符:多輸入狀態(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é)果:連接運(yùn)算符(狀態(tài)寄存器)

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

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

示例5-2:使用連接運(yùn)算符:帶進(jìn)位的加法器

//`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é)果:加法運(yùn)算符(帶進(jìn)位/輸出的加法器)

pYYBAGPko0yAAycnAAG_jja-u34700.png

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

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

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

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

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

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

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

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

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

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

    關(guān)注

    0

    文章

    55

    瀏覽量

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

    關(guān)注

    2

    文章

    101

    瀏覽量

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

    關(guān)注

    0

    文章

    173

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    C語(yǔ)言基礎(chǔ)知識(shí)(4)--運(yùn)算符

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

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

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

    matlab關(guān)系運(yùn)算符

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

    條件運(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)算符:!、按位取反運(yùn)算符
    的頭像 發(fā)表于 02-24 15:42 ?6.1w次閱讀
    單目<b class='flag-5'>運(yùn)算符</b>是什么_單目<b class='flag-5'>運(yùn)算符</b>有哪些

    C運(yùn)算符的優(yōu)先級(jí)和結(jié)合性詳細(xì)解決

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

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

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

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

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

    C語(yǔ)言總結(jié)_語(yǔ)句、運(yùn)算符

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

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

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

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

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

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

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

    什么是邏輯運(yùn)算符

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

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

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

    Go語(yǔ)言運(yùn)算符主要包括哪些呢?

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