在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

RTL表達式和運算符

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-07-27 09:11 ? 次閱讀

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

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

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

b975cb1a-0d44-11ed-ba43-dac502259ad0.png

介紹

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

表5-1:RTL建模的連接和復制運算符
b9af4d90-0d44-11ed-ba43-dac502259ad0.png

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

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

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

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

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

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

示例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-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的綜合結果:連接運算符(狀態寄存器)
b9e4e176-0d44-11ed-ba43-dac502259ad0.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的綜合結果:加法運算符(帶進位/輸出的加法器)
ba0e9016-0d44-11ed-ba43-dac502259ad0.png

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

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

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

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

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

審核編輯:湯梓紅


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

    關注

    1

    文章

    385

    瀏覽量

    59950
  • 運算符
    +關注

    關注

    0

    文章

    172

    瀏覽量

    11107

原文標題:SystemVerilog-連接和復制運算符

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

收藏 人收藏

    評論

    相關推薦

    數字硬件建模SystemVerilog-按位運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 08-12 14:27 ?2689次閱讀

    關于數字硬件建模SystemVerilog

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 09-01 08:50 ?1432次閱讀

    C語言程序設計--運算符表達式

    c語言對數據有很強的表達能力,具有十分豐富的運算符,利用這些運算符可以組成各種表達式及語句。運算符就是完成某種特定
    發表于 07-14 21:30 ?46次下載

    單片機C語言教程-運算符表達式

    單片機C語言教程-運算符表達式   單片機C語言教程-運算符表達式  運算符的種類、優先級和結合性  c語言中運
    發表于 03-27 17:13 ?2239次閱讀

    基于運算符信息的數學表達式檢索技術

    傳統的文本檢索技術主要面向一維文本,難以用于對二維結構數學表達式的檢索。針對該問題,通過引入公式描述結構,實現基于運算符信息的數學表達式檢索。利用公式描述結構提取算法獲取 Latex數學表達式
    發表于 04-29 15:58 ?2次下載
    基于<b class='flag-5'>運算符</b>信息的數學<b class='flag-5'>表達式</b>檢索技術

    RTL表達式運算符

    運算符對操作數執行操作。大多數運算符都有兩個操作數。
    的頭像 發表于 07-21 09:11 ?1848次閱讀

    SystemVerilog-運算符/表達式規則

    RTL建模中廣泛使用的運算符是條件運算符,也稱為三元運算符,該運算符用于在兩個表達式之間進行選擇
    的頭像 發表于 08-03 09:03 ?3226次閱讀

    關于RTL表達式運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 09-01 09:13 ?1949次閱讀

    RTL表達式運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 10-11 10:15 ?1818次閱讀

    RTL表達式運算符

    決策語句(Decision statements)允許程序塊的執行流程根據設計中信號的當前值分支到特定語句。SystemVerilog有兩個主要的決策語句:if…else語句和case語句,使用關鍵字case、case…inside,casex和casez。
    的頭像 發表于 10-21 09:04 ?1401次閱讀

    RTL表達式運算符

    經過幾周的更新,SV核心部分用戶自定義類型和包內容已更新完畢,接下來就是RTL表達式運算符
    的頭像 發表于 11-03 09:14 ?1440次閱讀

    運算符/表達式規則

    運算符對操作數執行操作。大多數運算符都有兩個操作數。例如,在運算a+b中,+(加法)運算的操作數是a和b。每個操作數都被稱為表達式
    的頭像 發表于 02-09 15:37 ?1060次閱讀
    <b class='flag-5'>運算符</b>/<b class='flag-5'>表達式</b>規則

    邏輯運算符表達式

    在C語言中,我們通常會進行真值與假值的判斷,這時我們就需要用到邏輯運算符與邏輯表達式。如果表達式的值不為0,則通通返回為真值。只有當表達式的值為0時,才會返回假值。
    的頭像 發表于 02-21 15:16 ?2239次閱讀
    邏輯<b class='flag-5'>運算符</b>與<b class='flag-5'>表達式</b>

    位邏輯運算符表達式

    位邏輯運算符與位邏輯表達式可以實現位的編輯,比如位的清零、設置、取反和取補等操作。使用位邏輯運算符與位邏輯表達式可以在不使用匯編的情況下實現部分匯編的功能
    的頭像 發表于 02-21 15:22 ?1311次閱讀
    位邏輯<b class='flag-5'>運算符</b>與<b class='flag-5'>表達式</b>

    C語言基本的算術運算符表達式

    注意:自增和自減運算符只能用于變量,而不能用于常量或表達式 **C語言算術表達式運算符的優先級與結合性 ** 在表達式求值時,
    的頭像 發表于 03-09 10:44 ?1728次閱讀
    主站蜘蛛池模板: 中文字幕在线永久在线视频2020 | 高清国产一区二区三区 | 黄网在线观看免费 | 日本午夜大片a在线观看 | 欧美1819 | 色丁香久久 | 在线天堂中文新版有限公司 | 国模精品视频 | 91中文字幕在线视频 | 久久怡红院国产精品 | 老师下面好湿好紧好滑好想要 | 夜夜操狠狠操 | 天天干天天拍天天射天天添天天爱 | 亚洲资源在线观看 | 午夜影院在线视频 | 天天视频色版 | 特级毛片aaaa免费观看 | 日本香蕉视频 | 欧美一级在线观看播放 | 午夜情趣视频 | 欧美日韩国产一区二区三区不卡 | 特黄一级黄色片 | 特黄一级黄色片 | 小雪被老外黑人撑破了视频 | 午夜免费一级片 | sihu国产午夜精品一区二区三区 | 国产成人高清一区二区私人 | 91极品视频在线观看 | 免费高清成人啪啪网站 | 毛片视频免费网站 | 日本不卡免费高清视频 | 欧美一级欧美一级高清 | 日日干夜夜骑 | 久久久午夜毛片免费 | 亚洲美女激情视频 | 日本高清视频色视频kk266 | 日韩亚洲欧洲在线rrrr片 | 男女免费在线视频 | 又粗又长又大真舒服好爽漫画 | 国产在线视欧美亚综合 | 天堂在线中文字幕 |