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

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

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

3天內不再提示

什么是移位運算符

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

掃碼添加小助手

加入工程師交流群

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

pYYBAGPkpMCAS1oxAATfUc7boq8063.png

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

pYYBAGPkpM6AcnB_AAIyY3UUO5A678.png

移位運算符

移位運算符將向量的位向右或向左移位指定的次數。SystemVerilog具有按位和算術移位運算符,如表5-18所示。

表5-18:RTL建模的移位運算符

pYYBAGPkpOmAXpIMAAFTF5iD0G0559.png

按位移位只是將向量的位向右或向左移動指定的次數,移出向量的位丟失。移入的新位是零填充的。例如,操作8’b11000101 << 2將產生值8’b00010100。按位移位將執(zhí)行相同的操作,無論被移位的值是有符號的還是無符號的。

算術左移位對有符號和無符號表達式執(zhí)行與按位右移位相同的操作。算術右移位對“無符號”和“有符號”表達式執(zhí)行不同的運算。如果要移位的表達式是無符號的, 算術右移位的行為與按位右移相同,即用零填充輸入位。如果表達式是有符號的,則算術右移將通過用符號位的值填充每個輸入位來保持值的有符號性。

圖5-11顯示了這些移位操作如何將向量的位移動2位,

圖5-11:按位和算術移位運算-將值向左或向右移動2位圖5-11:按位和算術移位運算-將值向左或向右移動2位

poYBAGPkpPqACV2KAAJXozfr6lI128.png

可綜合移位操作

移動固定的次數。固定次數的移位操作只需將總線的位重新布線,“輸入位”接地。實現固定移位不需要邏輯門。示例5-11說明了一個簡單的除二組合邏輯模型,其中通過將8位總線右移一位來進行除法。

示例5-11:使用移位運算符:通過右移一位除以二

poYBAGPkpQWAfl1OAAE0_c-L7ao119.png

圖5-12顯示了固定位數的右移是如何綜合的。綜合編譯器在模塊的輸入和輸出上放置了緩沖區(qū),但沒有使用任何額外的門來執(zhí)行操作。

圖5-12:示例5-11的綜合結果:移位運算符,按1位右移

poYBAGPkpRGAB0akAAGUQuU_eV8512.png

固定次數的移位也可以使用連接操作來表示。下面兩行代碼在功能上是相同的。

pYYBAGPkpRyAeJbQAAB4tO7ApaY523.png

執(zhí)行移位操作的兩種類型都將綜合為相同的布線硬件,一種類型沒有優(yōu)于另一種類型的優(yōu)勢。

移動次數可變??勺兇螖档囊莆徊僮鞔硎峭靶我莆黄鳎╞arrel shifter)的功能,但具體實現將取決于特定目標庫中可用的門級功能。一些目標設備可能有一個已經針對該設備進行了優(yōu)化的預構建桶形移位器,其他設備可能需要綜合以從較低級別的門構建桶形移位器。

桶形移位器的一個應用是用2的冪乘(向左移位)或除(向右移位)。例如,左移1位將值乘以2。左移2位將一個值乘以4。

示例5-12顯示了可變左移操作的代碼

示例5-12:使用移位運算符:通過向左移位乘以二的冪

poYBAGPkpSiAPaYAAAF-MlcY4x0479.png

本例中的$ciog2系統(tǒng)函數用于計算base2exp輸入端口的寬度。此函數用于返回一個log2值的的上限(分數向上舍入到下一個整數)。該函數是計算一個值需要多少位的便捷方法。

圖5-13說明了該模型可能如何綜合。該示意圖是“在將移位功能映射并優(yōu)化”到特定設備之前的“中間綜合結果”。通用的“左移位邏輯”組件表示未映射的移位操作。

圖5-13:綜合結果“例如5-12:移位運算符,可變左移位”

poYBAGPkpTeASpiTAAD_aROPi7g006.png

綜合結果中的通用左移分量對其兩個輸入具有相同的位數。base2exp輸入未使用的高位與地相連。當綜合將通用左移組件映射到特定的目標實現時,這些未使用的位可能會被刪除。

移位運算符可用于乘以或除以除2的冪以外的值,以下示例將向量移動7次。

pYYBAGPkpUCAAIKxAAAsPz72_Eo410.png

可以在硬件中使用cading shift實現非2次方的移位,例如,操作可以通過鏈接4位左移位器、2位左移位器和1位左移位器來完成7次左移位。

讓綜合器完成它的工作!綜合使工程師能夠在抽象層次上進行設計,專注于功能,而不必陷入實現細節(jié)的泥潭,也不必過度關注特定ASICFPGA的功能。綜合編譯器將抽象功能模型轉換為目標ASIC或FPGA的有效實現。雖然可以在更詳細的層面上仿真barrel shift行為,但這樣做通常沒有好處?,F代綜合編譯器使用移位運算符識別抽象RTL模型中的barrel shift行為,并將在目標設備中生成此功能的最佳實現。對于不同的目標設備,這種實現可能會有所不同,具體取決于該設備中可用的標準單元、LUT或門陣列。

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

    關注

    29

    文章

    1367

    瀏覽量

    112256
  • System
    +關注

    關注

    0

    文章

    166

    瀏覽量

    37802
  • 運算符
    +關注

    關注

    0

    文章

    173

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    #硬聲創(chuàng)作季 #單片機應用 27 移位運算符

    單片機
    發(fā)布于 :2022年12月08日 08:55:26

    32 Java語言基礎移位運算符 #硬聲創(chuàng)作季

    JAVAPython編程語言
    充八萬
    發(fā)布于 :2023年07月26日 16:05:11

    18_移位運算符 [001100000064] - 第1節(jié) #硬聲創(chuàng)作季

    電路模塊編程函數代碼DAC驅動
    充八萬
    發(fā)布于 :2023年08月18日 20:08:57

    18_移位運算符 [001100000064] - 第3節(jié) #硬聲創(chuàng)作季

    電路模塊編程函數代碼DAC驅動
    充八萬
    發(fā)布于 :2023年08月18日 20:10:40

    煉獄傳奇-移位和位拼運算符之戰(zhàn)

    1. 移位運算符移位運算符是雙目運算符,將運算符左邊的操作數左移或右移
    發(fā)表于 04-30 09:43

    VHDL中移位運算符的實現之SLL使用

    本帖最后由 guyubinghu 于 2016-8-14 19:34 編輯 大家好,想請教大家一個問題,大家在用VHDL時使用過SLL這個操作運算沒,要是用過的話是怎么使用的呢?
    發(fā)表于 08-14 13:42

    【FPGA】VHDL 語言的運算符有哪些?計算的優(yōu)先級是怎樣的?

    在 VHDL 語言中,常用的運算符有邏輯運算(Logic)、關系運算(Relational)、算術運算(Arithmetic)和移位
    發(fā)表于 09-12 09:51

    【夢翼師兄今日分享】 常見的關系運算符(移位運算符)

    立即學習>>夢翼師兄FPGA培訓(視頻加板卡),手把手帶你入門FPGA寫在前面的話移位運算符是雙目運算符,將運算符左邊的操作數左移或右移指定的位數,用0來補充空閑位。如果右邊操作數的
    發(fā)表于 12-17 10:45

    二進制每一位數可取

    二進制每一位數可取,方法一:通過移位運算符>>、
    發(fā)表于 07-14 08:16

    FPGA入門實驗教程之進行LED跑馬燈實驗的詳細資料說明

    讓實驗板上的8個LED 實現跑馬燈的功能。通過這個實驗,進一步掌握采用計數與判斷的方式來實現分頻的Verilog HDL 的編程方法以及移位運算符的使用
    發(fā)表于 05-24 14:50 ?12次下載
    FPGA入門實驗教程之進行LED跑馬燈實驗的詳細資料說明

    數字設計FPGA應用:移位運算符

    本課程以目前流行的Xilinx 7系列FPGA的開發(fā)為主線,全面講解FPGA的原理及電路設計、Verilog HDL語言及VIVADO的應用,并循序漸進地從組合邏輯、時序邏輯的開發(fā)開始,深入到FPGA的基礎應用、綜合應用和進階應用。
    的頭像 發(fā)表于 12-03 07:03 ?3522次閱讀
    數字設計FPGA應用:<b class='flag-5'>移位</b><b class='flag-5'>運算符</b>

    FPGA入門系列教程之進行LED流水燈的實驗資料免費下載

    讓實驗板上的 8 個 LED 實現流水燈的功能。通過這個實驗,進一步掌握采用計數與判斷的方式來實現分頻的 Verilog HDL 的編程方法以及移位運算符的使用。
    發(fā)表于 06-10 17:07 ?7次下載
    FPGA入門系列教程之進行LED流水燈的實驗資料免費下載

    移位運算符的應用實例講解

    移位運算符在程序設計中,是位操作運算符的一種。移位運算符可以在二進制的基礎上對數字進行平移。按照平移的方向和填充數字的規(guī)則分為三種:(帶符號
    的頭像 發(fā)表于 11-19 07:04 ?3775次閱讀
    <b class='flag-5'>移位</b><b class='flag-5'>運算符</b>的應用實例講解

    C/C++中移位運算符的工作原理

      可以在計算機內部存儲和操作的最小數據量是二進制數字或位,它可用于存儲兩個不同的值:0 或 1。這些值在任何特定情況下實際體現的內容時間取決于我們。例如,我們可能決定一位代表開關的狀態(tài)(例如,向下或向上)或燈(例如,關閉或打開)或邏輯值(例如,假或真)。或者,我們可能決定使用我們的位來表示數值 0(零)或 1(一)。
    發(fā)表于 07-28 08:03 ?1570次閱讀