一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

RTL表達(dá)式和運(yùn)算符

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2022-07-27 09:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

b975cb1a-0d44-11ed-ba43-dac502259ad0.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)算符
b9af4d90-0d44-11ed-ba43-dac502259ad0.png

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

b9cd8b52-0d44-11ed-ba43-dac502259ad0.png
  • {a,b}結(jié)果是101100010001(二進(jìn)制),一個(gè)12位的值。

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

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

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

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

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

在賦值語(yǔ)句的右側(cè)或左側(cè)將多個(gè)信號(hào)連接在一起。在每個(gè)示例之后,圖5-1和5-2顯示了連接運(yù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-bitinterruptenable
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)寄存器)
b9e4e176-0d44-11ed-ba43-dac502259ad0.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功能,例如通過使用預(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)位/輸出的加法器)
ba0e9016-0d44-11ed-ba43-dac502259ad0.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)開頭(’),并且用于將單個(gè)值的集合分配給數(shù)組的單個(gè)元素或結(jié)構(gòu)的單個(gè)成員。

審核編輯:湯梓紅


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

    關(guān)注

    1

    文章

    389

    瀏覽量

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

    關(guān)注

    0

    文章

    173

    瀏覽量

    11417

原文標(biāo)題:SystemVerilog-連接和復(fù)制運(yùn)算符

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    數(shù)字硬件建模SystemVerilog-按位運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來(lái)就是RTL表達(dá)式運(yùn)算符。
    的頭像 發(fā)表于 08-12 14:27 ?3030次閱讀

    關(guān)于數(shù)字硬件建模SystemVerilog

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來(lái)就是RTL表達(dá)式運(yùn)算符
    的頭像 發(fā)表于 09-01 08:50 ?1655次閱讀

    C語(yǔ)言程序設(shè)計(jì)--運(yùn)算符表達(dá)式

    c語(yǔ)言對(duì)數(shù)據(jù)有很強(qiáng)的表達(dá)能力,具有十分豐富的運(yùn)算符,利用這些運(yùn)算符可以組成各種表達(dá)式及語(yǔ)句。運(yùn)算符就是完成某種特定
    發(fā)表于 07-14 21:30 ?46次下載

    單片機(jī)C語(yǔ)言教程-運(yùn)算符表達(dá)式

    單片機(jī)C語(yǔ)言教程-運(yùn)算符表達(dá)式   單片機(jī)C語(yǔ)言教程-運(yùn)算符表達(dá)式  運(yùn)算符的種類、優(yōu)先級(jí)和結(jié)合性  c語(yǔ)言中運(yùn)
    發(fā)表于 03-27 17:13 ?2315次閱讀

    基于運(yùn)算符信息的數(shù)學(xué)表達(dá)式檢索技術(shù)

    傳統(tǒng)的文本檢索技術(shù)主要面向一維文本,難以用于對(duì)二維結(jié)構(gòu)數(shù)學(xué)表達(dá)式的檢索。針對(duì)該問題,通過引入公式描述結(jié)構(gòu),實(shí)現(xiàn)基于運(yùn)算符信息的數(shù)學(xué)表達(dá)式檢索。利用公式描述結(jié)構(gòu)提取算法獲取 Latex數(shù)學(xué)表達(dá)式
    發(fā)表于 04-29 15:58 ?2次下載
    基于<b class='flag-5'>運(yùn)算符</b>信息的數(shù)學(xué)<b class='flag-5'>表達(dá)式</b>檢索技術(shù)

    RTL表達(dá)式運(yùn)算符

    運(yùn)算符對(duì)操作數(shù)執(zhí)行操作。大多數(shù)運(yùn)算符都有兩個(gè)操作數(shù)。
    的頭像 發(fā)表于 07-21 09:11 ?2211次閱讀

    SystemVerilog-運(yùn)算符/表達(dá)式規(guī)則

    RTL建模中廣泛使用的運(yùn)算符是條件運(yùn)算符,也稱為三元運(yùn)算符,該運(yùn)算符用于在兩個(gè)表達(dá)式之間進(jìn)行選擇
    的頭像 發(fā)表于 08-03 09:03 ?3657次閱讀

    關(guān)于RTL表達(dá)式運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來(lái)就是RTL表達(dá)式運(yùn)算符。
    的頭像 發(fā)表于 09-01 09:13 ?2235次閱讀

    RTL表達(dá)式運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來(lái)就是RTL表達(dá)式運(yùn)算符。
    的頭像 發(fā)表于 10-11 10:15 ?2198次閱讀

    RTL表達(dá)式運(yùn)算符

    決策語(yǔ)句(Decision statements)允許程序塊的執(zhí)行流程根據(jù)設(shè)計(jì)中信號(hào)的當(dāng)前值分支到特定語(yǔ)句。SystemVerilog有兩個(gè)主要的決策語(yǔ)句:if…else語(yǔ)句和case語(yǔ)句,使用關(guān)鍵字case、case…inside,casex和casez。
    的頭像 發(fā)表于 10-21 09:04 ?1654次閱讀

    RTL表達(dá)式運(yùn)算符

    經(jīng)過幾周的更新,SV核心部分用戶自定義類型和包內(nèi)容已更新完畢,接下來(lái)就是RTL表達(dá)式運(yùn)算符。
    的頭像 發(fā)表于 11-03 09:14 ?1711次閱讀

    運(yùn)算符/表達(dá)式規(guī)則

    運(yùn)算符對(duì)操作數(shù)執(zhí)行操作。大多數(shù)運(yùn)算符都有兩個(gè)操作數(shù)。例如,在運(yùn)算a+b中,+(加法)運(yùn)算的操作數(shù)是a和b。每個(gè)操作數(shù)都被稱為表達(dá)式,
    的頭像 發(fā)表于 02-09 15:37 ?1359次閱讀
    <b class='flag-5'>運(yùn)算符</b>/<b class='flag-5'>表達(dá)式</b>規(guī)則

    邏輯運(yùn)算符表達(dá)式

    在C語(yǔ)言中,我們通常會(huì)進(jìn)行真值與假值的判斷,這時(shí)我們就需要用到邏輯運(yùn)算符與邏輯表達(dá)式。如果表達(dá)式的值不為0,則通通返回為真值。只有當(dāng)表達(dá)式的值為0時(shí),才會(huì)返回假值。
    的頭像 發(fā)表于 02-21 15:16 ?2612次閱讀
    邏輯<b class='flag-5'>運(yùn)算符</b>與<b class='flag-5'>表達(dá)式</b>

    位邏輯運(yùn)算符表達(dá)式

    位邏輯運(yùn)算符與位邏輯表達(dá)式可以實(shí)現(xiàn)位的編輯,比如位的清零、設(shè)置、取反和取補(bǔ)等操作。使用位邏輯運(yùn)算符與位邏輯表達(dá)式可以在不使用匯編的情況下實(shí)現(xiàn)部分匯編的功能
    的頭像 發(fā)表于 02-21 15:22 ?1662次閱讀
    位邏輯<b class='flag-5'>運(yùn)算符</b>與<b class='flag-5'>表達(dá)式</b>

    C語(yǔ)言基本的算術(shù)運(yùn)算符表達(dá)式

    注意:自增和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式 **C語(yǔ)言算術(shù)表達(dá)式運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 ** 在表達(dá)式求值時(shí),
    的頭像 發(fā)表于 03-09 10:44 ?2060次閱讀