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

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

3天內不再提示

在RTL設計中如何做到低功耗設計

FPGA之家 ? 來源:硅農 ? 作者:硅農 ? 2022-04-13 08:12 ? 次閱讀

芯片第一應該關注的是芯片的PPA(Performance, Power, Area),本篇淺顯的部分討論,第二個 P,Power功耗,在RTL設計中如何做到低功耗設計,對于移動設備續航的十分重要,不要讓你的芯片徒增功耗。

數據通路寄存器打拍

數據寄存器打拍帶上vld,不加復位邏輯,這樣會省去寄存器復位電路的布線面積,而且工具還會給寄存器自動插時鐘門控,還達到了降低功耗的效果。至于寄存器不復位,一些剛學習的朋友可能會感覺有些刷新認知,寄存器怎么能不復位,不復位不就是x態了,系統不就紊亂了。是的,寄存器不復位是會產生x態,不過這里說的是數據通路,控制通路的所有信號都是必須帶復位邏輯。數據通路因為這里是帶著vld進行打拍,只需要保證在你使用的時候,它不是x態就行了??刂仆返男盘?a target="_blank">控制系統的運行,出現x態,必然掛死。而數據通路只要保證在vld的有效,也就是我踩這個數據的時候它是正確的就行了,不管它是x態還是其他無效的數據。當然如果數據有作為判斷邏輯用于控制,那這個數據一定要進行復位。代碼示例,時序邏輯可以省略else,寄存器默認保持,組合邏輯必須寫else。vld是一個脈沖將這個數據踹一腳直接踹進這個寄存器存儲,在下一腳來臨之前,這個寄存器都將保持這個數據。

	always @(posedge clk)begin if(data_vld) dout[63:0] <= din;end 
	

手動插入時鐘門控

手動插入時鐘門控,根據控制場景的不同自動關掉部分模塊的時鐘,留有軟件的控制通道,由軟件關閉??梢杂行У臏p少動態功耗。舉例,比如一塊運算電路配置全開的時候需要四個相同的計算模塊同時工作,最少的情況只需要一個模塊工作,這時根據配置的不同可以將其他三個模塊的時鐘關掉,減少動態功耗。

整個Top模塊掉電

整個二級Top模塊掉電休眠,掉電后將所有需要保存的數據寫到memory中,等下一次模塊喚醒上電啟動時再重新寫回到硬件中。ASIC中的RAM可以自己生成是否需要掉電保存數據的功能,不需要的專門存儲的RAM也一起掉電。需要使用和保存的數據寄存器較少,可以從模塊伸出接口到頂層,讓軟件讀走,等下一次模塊喚醒上電啟動時再通過軟件配置寄存器配置回模塊。這就是低功耗模式。

靜態功耗和動態功耗

靜態功耗只要電路供電就有,除非掉電休眠,否則無法避免,動態功耗只要存在高低電平切換就有。在rtl設計時,良好的代碼風格也可以降低動態功耗,乘法器、加法器等運算單元,通過減少組合邏輯的翻轉,從而達到降低動態功耗的效果。
在RTL設計中如何做到低功耗設計
輸入到輸出,組合邏輯的a、b端值不變,沒有電平翻轉,所以不會有動態功耗,只存在靜態功耗。在設計中考慮組合邏輯無效翻轉問題,某段時間這部分數據無效,通過使能信號選擇這部分邏輯保持,得到避免動態功耗的效果。

原文標題:Verilog如何實現低功耗設計?

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

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

    關注

    447

    文章

    48195

    瀏覽量

    411043
  • 寄存器
    +關注

    關注

    30

    文章

    5141

    瀏覽量

    118055
  • RTL
    RTL
    +關注

    關注

    1

    文章

    382

    瀏覽量

    59163

原文標題:Verilog如何實現低功耗設計?

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

收藏 人收藏

    評論

    相關推薦

    如何做到一個好的照明設計

    如何做到一個好的照明設計,本文中作者從一個較高的角度為讀者詳細講解了設計過程的整個構思。
    發表于 09-13 13:58 ?1080次閱讀

    STM32PWM輸出模式,如何做到PWM移向輸出?

    PWM輸出模式,如何做到PWM移向輸出?DSP中有時基相位寄存器,可以移向配置占空比。但是好像沒有發現STM32單片機有類似的寄存器功能。請問各位大神是否有其他方法可以實現PWM
    發表于 05-15 06:02

    labview 的Gauge控件如何做到360度的刻度?

    labview的Gauge控件如何做到360度的刻度?就是刻度是一個整圓周。
    發表于 06-17 17:42

    MATLAB如何做到去列平均值

    MATLAB如何做到去列平均值
    發表于 04-02 10:00

    圖像處理,如何做到一幅圖片中分成多個區域進行圖像處理?

    圖像處理,如何做到一幅圖片中分成多個區域進行圖像處理
    發表于 07-08 17:12

    如何做到進入低功耗PM2模式和定時器中斷喚醒交替循環?

    請問2540做從機,協議棧如何做到進入低功耗PM2模式和定時器中斷喚醒交替循環的過程?并且喚醒后能夠使用串口功能。
    發表于 10-15 10:06

    請問低功耗IDLE模式的喚醒如何做到幾個毫秒喚醒一次繼而再次進入該模式?

    資料中說:IDLE模式下,將CPU 置于低功耗模式??捎羞x擇性地關閉外設時鐘并且只有那些IDLE 期間需要運行的外設保持運行狀態。來自激活外設或者安全裝置定時器的已啟用的中斷將把處理器從IDLE
    發表于 05-12 09:13

    新手求助UPF低功耗設計能否RTL仿真中實現呢?

    RTL設計完畢之后,如何來驗證設計的正確性?UPF低功耗設計能否RTL仿真中實現呢?
    發表于 06-18 08:21

    請問STM8L低功耗如何做串口接收2s一次的數據?

    STM8L現在用他接收外部2s一次的串口數據,如何做到低功耗接收
    發表于 11-06 06:05

    從ESL到RTL,低功耗設計再下一城

    從ESL到RTL,低功耗設計再下一城 對于低功耗半導體設計來說,沒有唯一的解決方案,它需要芯片設計工程師以及EDA供應商的協作努力,并越來越多地把重
    發表于 09-19 10:08 ?1234次閱讀

    最美布線, 別人是如何做到

    最美布線,別人是如何做到
    的頭像 發表于 02-28 16:47 ?2095次閱讀

    芯片RTL設計中如何做到低功耗設計

    做芯片第一應該關注的是芯片的PPA(Performance, Power, Area),本篇淺顯的部分討論,第二個 P,Power功耗,在RTL設計中如何做到低功耗設計,對于移動設備續
    的頭像 發表于 08-26 10:29 ?3682次閱讀

    RTL設計中如何做到低功耗設計

    整個二級Top模塊掉電休眠,掉電后將所有需要保存的數據寫到memory中,等下一次模塊喚醒上電啟動時再重新寫回到硬件中。ASIC中的RAM可以自己生成是否需要掉電保存數據的功能,不需要的專門存儲的RAM也一起掉電。
    的頭像 發表于 08-15 16:25 ?1079次閱讀

    低功耗藍牙模塊的工作原理是怎樣的

    藍牙模塊分為經典藍牙和低功耗藍牙,那么在如此低功耗的情況下,是如何做到穩定工作的呢,低功耗藍牙模塊有四種工作模式:分別是主設備模式、從設備模式、廣播模式、Mesh組網模式。
    的頭像 發表于 12-26 14:19 ?1159次閱讀

    RF模組sleep狀態下如何做到低功耗?

    的。那么如何解決呢?本文將對RF模組在Sleep狀態下如何做到低功耗進行說明。RF模組sleep時RF模組的IO狀態先要獲知RF模組Sleep時,RF模組的IO
    的頭像 發表于 01-06 08:13 ?232次閱讀
    RF模組sleep狀態下<b class='flag-5'>如何做到</b>最<b class='flag-5'>低功耗</b>?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>