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

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

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

如何運(yùn)用Retiming優(yōu)化Block RAM的使用

FPGA技術(shù)驛站 ? 來源:Copyright @ FPGA技術(shù)驛站 ? 2024-04-18 10:05 ? 次閱讀

對于邏輯級數(shù)較大的路徑,常用的時序收斂的方法之一就是采用Retiming(中文翻譯為重定時)。Retiming到底是怎么回事呢?我們可以通過下圖理解。圖中通過搬移觸發(fā)器的位置減小了關(guān)鍵路徑的邏輯級數(shù)。無論是把觸發(fā)器向前搬移還是向后搬移,搬移后整個路徑的Latency和搬移前的Latency保持一致。可以看到Retiming的前提是相鄰路徑有可供搬移的觸發(fā)器,換言之,相鄰路徑的時序裕量較為“富余”,從這些“富余”中拿出一部分給時序較為緊張的路徑。這樣,時序緊張的路徑其邏輯級數(shù)降低了,而相鄰的時序“富余”的路徑邏輯級數(shù)增加了,達(dá)到整體邏輯級數(shù)的平衡。

045b40bc-fd24-11ee-a297-92fbcf53809c.jpg

Vivado提供了多種方法實(shí)現(xiàn)Retiming。在綜合選項(xiàng)設(shè)置界面提供了-retiming,如下圖所示。在這里,它是一個全局選項(xiàng),作用于設(shè)計(jì)中的所有模塊。除此之外,Vivado還提供了模塊級綜合技術(shù),可針對關(guān)鍵模塊使用Retiming,此時需要借助屬性BLOCK_SYNTH.RETIMING實(shí)現(xiàn)。顯然,這個綜合屬性是針對指定模塊的,所以這是一種更精細(xì)的設(shè)置方法。實(shí)踐證明往往全局選項(xiàng)-retiming加上模塊級Retiming能獲得更好的效果。

04f17f82-fd24-11ee-a297-92fbcf53809c.jpg

上述兩種方法人工干預(yù)度都較低,如果用戶能夠判定哪些路徑上的觸發(fā)器可搬移以改善相鄰路徑的時序,那么就可以使用Vivado提供的綜合屬性RETIMING_BACKWARD或RETIMING_FORWARD,直接將其作用于指定的觸發(fā)器。另外,在PSIP階段還可以使用屬性PSIP_RETIMING_BACKWARD或PSIP_RETIMING_FORWARD實(shí)現(xiàn)Retiming。對用戶而言,這一過程還是有一定難度的,好在Vivado提供了另外一種方式就是QoR建議,有時該報(bào)告就會包含Retiming的相關(guān)設(shè)置,如下圖所示。這樣用戶只需將該建議添加到工程中直接使用即可。

04ff8dfc-fd24-11ee-a297-92fbcf53809c.jpg

0511fe4c-fd24-11ee-a297-92fbcf53809c.jpg

此外,phys_opt_design還提供了-directive AddRetime,既可在布局之后執(zhí)行也可在布線之后執(zhí)行。本質(zhì)是是因?yàn)閜hys_opt_design提供了選項(xiàng)-retime。

審核編輯:黃飛

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

    關(guān)注

    8

    文章

    1350

    瀏覽量

    114369
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60976
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    799

    瀏覽量

    66128

原文標(biāo)題:如何對Block RAM使用Retiming(1)

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FIFOPrimitive在Block RAM上有什么優(yōu)勢?

    我今天正在實(shí)現(xiàn)FIFO,我想知道FIFOPrimitive和Block RAM實(shí)現(xiàn)之間的區(qū)別是什么。根據(jù)我的理解,它們使用相同的底層RAM原語,但FIFOPrimitive不能有不同的R / W方面
    發(fā)表于 02-27 14:16

    Block RAM的功耗始終為0mW

    大家好。我設(shè)計(jì)并模擬了簡單的RTL with Block RAMin Kintex 7。在合成和實(shí)現(xiàn)之后,vivado用于功率估計(jì)。當(dāng)我使用分布式RAM時,會正確報(bào)告每個RAM的功耗。但是
    發(fā)表于 03-13 14:21

    請幫助我解決Block RAM問題?

    ,維克多Rdp_fifo3.v 3 KB以上來自于谷歌翻譯以下為原文I am trying to use the block ram on Xilinx Spartan 3AN (XC3S400AN
    發(fā)表于 06-04 09:08

    創(chuàng)建Block RAM IP不起作用

    DCM_SP為spartan 3E創(chuàng)建50Mhz DCM時鐘的IP,并且它可以工作。我不確定為什么當(dāng)我嘗試創(chuàng)建Block RAM IP時它不起作用。我真的很感激一些幫助。歡迎來到Xilinx CORE
    發(fā)表于 06-05 13:39

    請問9K Block RAM設(shè)計(jì)中那些2 9K Block RAM在哪里?

    嗨,我想為我的設(shè)計(jì)使用比特流加密,我遇到了一個關(guān)于9K Block RAM的問題,在答案記錄39999中描述了r然后我決定在我的設(shè)計(jì)中刪除所有9k Block RAM并將它們更改為16
    發(fā)表于 06-06 07:23

    SPARTAN-3AN怎么使用標(biāo)準(zhǔn)JTAG命令讀取Block RAM內(nèi)容

    嗨,為了調(diào)試系統(tǒng),我需要在系統(tǒng)運(yùn)行時動態(tài)讀取Block-RAM內(nèi)容....我只有JTAG線,我不能在FPGA中制作一個特定的塊用于讀取內(nèi)容并通過JTAG等發(fā)送它們。我可以使用ISMP 13.2作為
    發(fā)表于 06-11 07:36

    用INIT_XX初始化Block RAM的方法有哪些?

    嗨,我正在使用“RAMB16_S36”原始實(shí)現(xiàn)一個512內(nèi)存寬度的Block Ram。我通讀了XAPP463用戶指南,但我顯然不了解初始化屬性。INIT_00是否對應(yīng)于[255:0] Block
    發(fā)表于 07-22 08:10

    為什么Spartan 6 block ram有2個時鐘延遲?

    我正在運(yùn)行Spartan 6 block ram的模擬。時鐘速度為100Mhz。塊ram的寫作運(yùn)作良好。我可以在內(nèi)存中看到數(shù)據(jù)。但是當(dāng)我讀取數(shù)據(jù)時,輸出有2個時鐘的延遲。在塊ram用戶
    發(fā)表于 07-25 08:15

    請問分布式RAMBlock RAM的芯片中有menexternalmemory或內(nèi)存嗎?

    嗨!我有一個關(guān)于分布式RAMBlock RAM的問題。芯片中有menexternalmemory或內(nèi)存嗎?請?jiān)敿?xì)告訴我。謝謝!
    發(fā)表于 11-07 09:07

    怎么使用virtex 5上的Block RAM來實(shí)現(xiàn)延遲線?

    我正在嘗試使用virtex 5上的Block RAM來實(shí)現(xiàn)延遲線。延遲線需要將數(shù)據(jù)延遲一個時鐘周期。這可能使用Block RAM嗎?我嘗試使用簡單的雙端口
    發(fā)表于 06-18 15:40

    如何使用Block RAM及利用其功能和性能優(yōu)勢

    了解新的Block RAM級聯(lián)功能,如何使用它,以及如何利用其功能和性能優(yōu)勢。
    的頭像 發(fā)表于 11-23 06:56 ?4761次閱讀

    xilinx 7系列FPGA里面的Block RAM

    些大材小用,因此xilinx公司在其FPGA內(nèi)部專門集成了很多存儲器模塊,稱作Block RAM,其猶如slice海洋當(dāng)中的一顆顆明珠,專門實(shí)現(xiàn)數(shù)據(jù)暫存功能,且每個時鐘區(qū)域都布置了若干個Block
    的頭像 發(fā)表于 11-23 14:08 ?7879次閱讀
    xilinx 7系列FPGA里面的<b class='flag-5'>Block</b> <b class='flag-5'>RAM</b>

    關(guān)于Block RAM的寄存器輸出

    關(guān)于Block RAM的寄存器輸出,我們在《通過RTL改善時序的技巧之Block RAM的輸出》中介紹過。如果我們在時序報(bào)告中關(guān)鍵路徑上看到這樣一條信息: 在第一級的C2Q delay
    的頭像 發(fā)表于 03-26 15:50 ?1756次閱讀
    關(guān)于<b class='flag-5'>Block</b> <b class='flag-5'>RAM</b>的寄存器輸出

    FPGA中block ram的特殊用法列舉

    在FPGA中block ram是很常見的硬核資源,合理的利用這些硬件資源一定程度上可以優(yōu)化整個設(shè)計(jì),節(jié)約資源利用率,充分開發(fā)FPGA芯片中的潛在價(jià)值,本文結(jié)合安路科技FPGA做簡單總結(jié),說明基本原理。
    的頭像 發(fā)表于 12-24 14:28 ?1175次閱讀

    超高數(shù)據(jù)流通量FPGA新品類中的Block RAM級聯(lián)架構(gòu)

    本文主要講述了Speedster7t FPGA的片上SRAM,也就是Block RAM針對傳統(tǒng)的結(jié)構(gòu)所做出的一些優(yōu)化
    的頭像 發(fā)表于 07-13 17:24 ?490次閱讀
    超高數(shù)據(jù)流通量FPGA新品類中的<b class='flag-5'>Block</b> <b class='flag-5'>RAM</b>級聯(lián)架構(gòu)