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

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

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

在RTL編碼中考慮延時、面積、功耗與布線的問題

冬至子 ? 來源:Andy的ICer之路 ? 作者:AndyICer ? 2023-06-05 15:42 ? 次閱讀

在RTL編碼中考慮延時

01

看下面一段代碼,第四個else if 分支中的數(shù)據(jù)信號DATA_is_late_arriving延時比較高,要怎么處理,將電路的性能提高?

圖片

一般最高優(yōu)先級給最遲到的關(guān)鍵信號,因此要將DATA_is_late_arriving這個信號單獨拿出來分析,代碼如下:

圖片

再來看下面一段代碼以及其電路圖,假設(shè)A信號到來比較晚,如何修改能夠提高電路性能?

圖片

圖片

核心思想還是將延遲高的信號往后面優(yōu)先級更高的地方放 ,只需做小小修改即可,代碼如下:

圖片

圖片

在RTL編碼中考慮面積

02

隨著芯片工藝的進步和生產(chǎn)成本的降低,其實面積已經(jīng)顯得沒有時序問題那么重要。一般綜合過程中可以對面積進行優(yōu)化,但是在RTL設(shè)計的時候還是需要盡量減小面積的開銷,這樣可以達到事半功倍的效果。

例如RTL代碼中的一個“+”可能對應(yīng)著一個64位的加法器,所以條件語句中的比較運算,我們要判斷其必要性,是否能用更簡單的運算代替。

比如判斷A是否小于32(if(A<32)),可以改成判斷A的第五位是否為0(if(A[5]==1'b0)),這兩種表達形式是等價的,但是后者的判斷條件更節(jié)省面積,相當(dāng)于用一個1bit的邏輯門代替一個6bit的比較器,如果我們遇到定值的比較都可以這么操作。

如果必須使用復(fù)雜的運算符,則應(yīng)考慮是否可以資源共享,盡管電路邏輯綜合工具也會在綜合的過程中采用資源共享的方法進行優(yōu)化,但是,綜合器的策略是有限的,因此,在編寫RTL的時候,應(yīng)該盡量考慮共享,而不是把這項工作完全留給綜合工具。

圖片

如上面的代碼所示,右邊是修改之后的代碼,這樣可以減少兩個不必要的加法器,實際的設(shè)計中資源共享可能不會像這樣明顯,因此平時應(yīng)該按照這樣的思路多多練習(xí)。

還有一種情況就是關(guān)于多比特位的信號問題, 多比特位操作意味著成倍使用資源 ,在使用多比特位的信號時,看看這個信號是否所有比特位都需要參與操作,如果不是,則可以只對需要的部分比特進行操作。例如訪問RAM的地址有8比特,而寫入操作時從0開始,每隔32個地址寫入一個值,地址的產(chǎn)生可以有兩種寫法。顯然右邊這種寫法操作的比特位會比左邊的代碼少。

圖片

在RTL編碼中考慮功耗

03

一個電路中的功耗影響因素主要以下4個因素: 該點電路的翻轉(zhuǎn)次數(shù)、電路的工作頻率、該點的電容還有電壓值

但是負載電容、工作電壓和工作頻率這些都是RTL設(shè)計無法改變的因素,因此在RTL級設(shè)計主要考慮盡量降低電路的翻轉(zhuǎn)頻率。

主要措施包括如下:

①門控時鐘

②增加使能信號,使得部分電路只有在需要工作時才工作;

(門控時鐘與增加使能的區(qū)別是:門控時鐘是關(guān)掉時鐘,而使能關(guān)閉的是電路的功能,但是時鐘仍然在翻轉(zhuǎn),顯然門控時鐘更好)

③對芯片各個模塊進行控制,在需要工作時才工作;

④除了有用信號和時鐘的翻轉(zhuǎn)會消耗功耗,組合邏輯產(chǎn)生的毛刺也會大量消耗功耗。但是毛刺在設(shè)計中無法避免,因此,只有盡量減少毛刺在電路中的傳播,才可以減少功耗。即在設(shè)計中,盡量把產(chǎn)生毛刺的電路放在傳播路徑的最后。另外可以使用一些減少毛刺的技術(shù);

⑤對于有限狀態(tài)機,可以通過低功耗編碼來減少電路的翻轉(zhuǎn),比如將二進制編碼改為獨熱碼、格雷碼等。

在RTL編碼中考慮布線問題

04

如果可以在RTL編碼階段考慮代碼,可能對布線產(chǎn)生的影響就可以避免最后出現(xiàn)無法布通的情況。

熱點是指設(shè)計的功能需要在一個面積內(nèi)占用大量的布線資源。熱點產(chǎn)生原因:RTL編碼時使用了特定的結(jié)構(gòu),如很大的mux。

圖片

這種結(jié)構(gòu)產(chǎn)生的熱點,在綜合的時候,導(dǎo)致的延遲是看不出來的,只有到了布線階段才能給看到它的負面影響。因此,我們在RTL階段應(yīng)該重視這種電路,及早發(fā)現(xiàn)可能在布線階段產(chǎn)生的問題。

如果設(shè)計的功能中確實需要采用很大的mux,可以通過其他方式改變他的結(jié)構(gòu)。其基本的思想就是將一個大的mux分解為多級較小的mux。

圖片

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

    關(guān)注

    8

    文章

    1348

    瀏覽量

    114250
  • 比較器
    +關(guān)注

    關(guān)注

    14

    文章

    1616

    瀏覽量

    106853
  • 加法器
    +關(guān)注

    關(guān)注

    6

    文章

    183

    瀏覽量

    29987
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59534
  • 門控時鐘
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    8916
收藏 人收藏

    評論

    相關(guān)推薦

    請問怎么折中考慮電源功率因數(shù)和效率

    如何折中考慮電源設(shè)計當(dāng)中,功率因數(shù)和效率的關(guān)系
    發(fā)表于 04-24 02:46

    【設(shè)計技巧】PCB設(shè)計中考慮電磁兼容(上)

    PCB 板上,盡量縮短和減少各元器件之間的引線和連接。3)高頻下工作的電路,要考慮元器件之間的分布參數(shù)。一般電路應(yīng)盡可能使元器件平行排列。4)盡可能地減小環(huán)路面積,以抑制輻射干擾
    發(fā)表于 08-13 08:00

    【設(shè)計技巧】PCB設(shè)計中考慮電磁兼容(下)

    理,還可以上,下兩層也是大面積的鋪地。這樣,使信號的上,下,左,右都有地包著。保證信號的干凈。3)信號的回流面積最小定律PCB設(shè)計中,每根信號最好能做到與地的回流路徑最短,如下圖所示回路面積
    發(fā)表于 08-13 08:30

    新手求助UPF低功耗設(shè)計能否RTL仿真中實現(xiàn)呢?

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

    介紹RTL設(shè)計引入的后端實現(xiàn)過程中的布線問題

    RTL設(shè)計引入的后端實現(xiàn)過程中的布線(routing)問題。后端物理實現(xiàn)需要完成芯片中布局布線(place&routing)的工作。物理實現(xiàn)過程中routing之前
    發(fā)表于 04-11 17:11

    基于RTL的16位嵌入式微控制器(A8096)的設(shè)計

      這里描述了一款自主研發(fā)的16位嵌入式微控制器(A8096)的設(shè)計與實現(xiàn),基于RTL級設(shè)計方法使用VerilogHDL進行設(shè)計描述,設(shè)計中,采用硬布線控制方式,減少了面積
    發(fā)表于 08-27 10:41 ?1197次閱讀

    RTL功耗優(yōu)化

    我們針對 PC 圖形、視覺計算和應(yīng)用處理器的高性能、低功耗設(shè)計方法中,RTL 功耗優(yōu)化是非常關(guān)鍵的一步。NVIDIA Corporation 硬件工程部總監(jiān) Dan Smith 講道
    發(fā)表于 09-11 11:40 ?9次下載
    <b class='flag-5'>RTL</b><b class='flag-5'>功耗</b>優(yōu)化

    TP RAM的面積功耗優(yōu)化

    隨著芯片集成度越來越高,隨機存儲器(random access memory,RAM)片上系統(tǒng)(system on chip,SoC)中的占比也越來越高,因此RAM對SoC的面積功耗的貢獻也
    發(fā)表于 01-19 15:27 ?1次下載
    TP RAM的<b class='flag-5'>面積</b>及<b class='flag-5'>功耗</b>優(yōu)化

    現(xiàn)代SAR和∑-Δ型模數(shù)轉(zhuǎn)換器的主要優(yōu)勢之一是設(shè)計中考慮了易用性

    現(xiàn)代SAR和∑-Δ型模數(shù)轉(zhuǎn)換器(ADC)的主要優(yōu)勢之一是設(shè)計中考慮了易用性,這是針對前幾代設(shè)計的補充。不僅簡化了系統(tǒng)設(shè)計人員的工作,而且許多情況下,允許對多代各種應(yīng)用重復(fù)使用單個參考設(shè)計。
    的頭像 發(fā)表于 05-21 08:35 ?4219次閱讀
    現(xiàn)代SAR和∑-Δ型模數(shù)轉(zhuǎn)換器的主要優(yōu)勢之一是<b class='flag-5'>在</b>設(shè)計<b class='flag-5'>中考慮</b>了易用性

    基于瑞昱RTL系列的超低延時藍牙耳機方案

    基于瑞昱RTL系列的超低延時藍牙耳機方案
    發(fā)表于 05-12 10:21 ?46次下載

    芯片RTL設(shè)計中如何做到低功耗設(shè)計

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

    RTL設(shè)計中如何做到低功耗設(shè)計

    做芯片第一應(yīng)該關(guān)注的是芯片的PPA(Performance, Power, Area),本篇淺顯的部分討論,第二個 P,Power功耗,RTL設(shè)計中如何做到低功耗設(shè)計,對于移動設(shè)備續(xù)
    的頭像 發(fā)表于 04-13 08:12 ?1927次閱讀

    ZCU106PLDDR實現(xiàn)超低延時編碼

    Xilinx提供超低延時編解碼方案,ZCU106單板上可以驗證。文檔MPSoC VCU TRD 2020.2 Low Latency XV20 提供了詳細命令。缺省情況下,編碼使用的是PS DDR
    發(fā)表于 08-02 09:12 ?722次閱讀
    ZCU106<b class='flag-5'>在</b>PLDDR實現(xiàn)超低<b class='flag-5'>延時</b><b class='flag-5'>編碼</b>

    RTL編碼書寫中如何考慮時延與布線的問題呢?

    分if-else,case 的各種情況分開討論,主要目的是將分支支路中 晚到的信號放到離輸出最近的一級中
    的頭像 發(fā)表于 06-27 10:36 ?751次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>RTL</b><b class='flag-5'>編碼</b>書寫中如何<b class='flag-5'>考慮</b>時延與<b class='flag-5'>布線</b>的問題呢?

    如何通過優(yōu)化RTL減少功耗

    對于功耗估算來說,架構(gòu)階段為時過早,物理設(shè)計階段為時已晚。有一種趨勢是項目的RTL階段分析power hot spots。與后期分析相比,基于 RTL
    的頭像 發(fā)表于 04-05 09:15 ?1865次閱讀
    如何通過優(yōu)化<b class='flag-5'>RTL</b>減少<b class='flag-5'>功耗</b>