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

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

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

如何使用鎖存器的Time Borrowing技術(shù)來(lái)替代關(guān)鍵路徑中的寄存器

e9Zb_gh_8734352 ? 來(lái)源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)愛(ài)好者 ? 2022-06-14 16:56 ? 次閱讀

ASIC中用到鎖存器的地方很多,Time Borrowing是使用鎖存器的典型應(yīng)用之一,在深度流水線的設(shè)計(jì)中可以極大地提高處理性能。另外鎖存器和寄存器相比能夠顯著的減小面積:寄存器占用的硅片面積是鎖存器的兩倍,在ASIC設(shè)計(jì)中一個(gè)典型的主從寄存器是由兩個(gè)鎖存器級(jí)聯(lián)來(lái)實(shí)現(xiàn)的。

圖1說(shuō)明了如何使用鎖存器的Time Borrowing技術(shù)來(lái)替代關(guān)鍵路徑中的寄存器。通過(guò)重新分配相鄰鎖存器之間的組合邏輯延遲,從而延長(zhǎng)最長(zhǎng)路徑的時(shí)鐘周期。

68b0772a-ebbb-11ec-ba43-dac502259ad0.png

對(duì)于Xilinx的 FPGA芯片來(lái)說(shuō),不管是鎖存器還是寄存器,都是用相同的硬件資源實(shí)現(xiàn)的。這些硬件資源共享相同的數(shù)據(jù)輸入/輸出、復(fù)位和使能信號(hào),可以配置成邊沿觸發(fā)的寄存器或者電平使能的鎖存器。因此在 FPGA芯片中,無(wú)論是鎖存器還是寄存器都使用相同的硬件資源,使用鎖存器并不會(huì)帶來(lái)任何的優(yōu)勢(shì)。

寄存器和鎖存器關(guān)于數(shù)據(jù)的存儲(chǔ)方面存在著根本的差異。鎖存器屬于電平敏感電路,當(dāng)門使能信號(hào)有效時(shí),輸入數(shù)據(jù)將直接輸出;而門使能信號(hào)無(wú)效時(shí),數(shù)據(jù)保持到鎖存器中。寄存器屬于邊沿敏感電路,數(shù)據(jù)只有在時(shí)鐘的上升沿或者下降沿才會(huì)被保存到寄存器中。

雖然鎖存器和寄存器使用相同的FPGA硬件資源,但還是要盡量避免使用前者。首先,當(dāng)鎖存器處于導(dǎo)通狀態(tài)時(shí),輸入信號(hào)的毛刺會(huì)直接傳遞到后面的邏輯中;另外,對(duì)于靜態(tài)時(shí)序分析工具來(lái)說(shuō)、分析寄存器遠(yuǎn)遠(yuǎn)比鎖存器簡(jiǎn)單得多。因?yàn)閷?duì)于寄存器而言,只考慮到時(shí)鐘的上升或者下降沿:對(duì)于鎖存器而言,不僅需要考慮其上升沿和下降沿,而且還要考慮上、下沿之間的持續(xù)時(shí)間。對(duì)于具有周期性抖動(dòng)的信號(hào)而言,鎖存器常常會(huì)造成問(wèn)題。而對(duì)于邊沿敏感的寄存器,由于只需要關(guān)心時(shí)鐘邊沿的達(dá)到時(shí)間,因此即便是門使能的信號(hào)具有周期抖動(dòng),也不會(huì)造成任何的問(wèn)題。ASIC設(shè)計(jì)中鎖存器的Time Borrowing電路,對(duì)于FPGA結(jié)構(gòu)來(lái)講更是難以回避的挑戰(zhàn)。由于某級(jí)流水線的延遲和前面所有流水線的延遲相關(guān),這種流水線的高度相關(guān)性將使得靜態(tài)時(shí)序分析更加難以處理,并且其困難程度和流水線的級(jí)數(shù)也不存在任何的線性關(guān)系。

正是因?yàn)樯鲜鲈?基于鎖存器的設(shè)計(jì)需要更加仔細(xì)和周密的時(shí)序約束。對(duì)于基于鎖存器流水線的邏輯綜合和物理實(shí)現(xiàn),更是要從整個(gè)芯片的角度去做分析,才能夠正確地約束不同的時(shí)序關(guān)系。

因此在將ASIC 設(shè)計(jì)移植到FPGA時(shí),最好就是將電平使能的鎖存器轉(zhuǎn)換為邊沿觸發(fā)的寄存器。這需要工程師投人許多的時(shí)間去分析和修改,因?yàn)椴皇撬忻枋鲦i存器的代碼風(fēng)格都能夠通過(guò)同樣的方式進(jìn)行轉(zhuǎn)換。

大多數(shù)商用綜合工具都支持鎖存器的設(shè)計(jì),代碼中的if語(yǔ)句如果缺少相應(yīng)的case語(yǔ)句,將自動(dòng)生成鎖存器。

68cd24ce-ebbb-11ec-ba43-dac502259ad0.png

當(dāng)Xilinx的綜合工具XST 遇到鎖存器之后,會(huì)產(chǎn)生以下類似的報(bào)告。

68e189f0-ebbb-11ec-ba43-dac502259ad0.png

通過(guò)修改成綜合工具所支持的代碼風(fēng)格,可以將鎖存器轉(zhuǎn)換成寄存器。下面通過(guò)一個(gè)簡(jiǎn)單的例子展示了其中的一種代碼風(fēng)格,可以將門使能信號(hào)轉(zhuǎn)換成時(shí)鐘信號(hào)。

68f10100-ebbb-11ec-ba43-dac502259ad0.png

當(dāng)然也有其他一些代碼風(fēng)格,比如時(shí)鐘可以使用上升沿或者下降沿(Xilinx的FPGA不支持雙時(shí)鐘沿)、同步或者異步的復(fù)位置位等。

原文標(biāo)題:FPGA知識(shí)匯集-鎖存器的移植

文章出處:【微信公眾號(hào):FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598906
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119201
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    903

    瀏覽量

    41314

原文標(biāo)題:FPGA知識(shí)匯集-鎖存器的移植

文章出處:【微信號(hào):gh_873435264fd4,微信公眾號(hào):FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA的設(shè)計(jì)為什么避免使用

    文章都對(duì)有個(gè)誤解,我們后面會(huì)詳細(xì)說(shuō)明。 這篇文章,我們包含如下內(nèi)容: ①、觸發(fā)
    的頭像 發(fā)表于 11-16 11:42 ?8184次閱讀
    FPGA的設(shè)計(jì)<b class='flag-5'>中</b>為什么避免使用<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>

    、觸發(fā)寄存器和緩沖的區(qū)別

    的數(shù)據(jù)和運(yùn)算結(jié)果,它被廣泛的用于各類數(shù)字系統(tǒng)和計(jì)算機(jī)。其實(shí)寄存器就是一種常用的時(shí)序邏輯電路,但這種時(shí)序邏輯電路只包含存儲(chǔ)電路。寄存器的存儲(chǔ)電路是由
    發(fā)表于 10-09 16:19

    寄存器、和觸發(fā)的區(qū)別

    ,但這種時(shí)序邏輯電路只包含存儲(chǔ)電路。寄存器的存儲(chǔ)電路是由或觸發(fā)構(gòu)成的,因?yàn)橐粋€(gè)
    發(fā)表于 07-03 11:50

    觸發(fā)、、寄存器三者的區(qū)別

    公共的控制信號(hào)來(lái)控制,而各個(gè)數(shù)據(jù)端口仍然是各處獨(dú)立地接收數(shù)據(jù)。這樣所構(gòu)成的能一次傳送或存儲(chǔ)多位數(shù)據(jù)的電路就稱為“”。寄存器:在實(shí)際的數(shù)
    發(fā)表于 09-11 08:14

    【轉(zhuǎn)】數(shù)字電路三劍客:、觸發(fā)寄存器

    寄存器。 在FPGA設(shè)計(jì)建議如果不是必須那么應(yīng)該盡量使用觸發(fā)而不是。鐘控D觸發(fā)
    發(fā)表于 10-27 22:38

    74LS595-8位輸出移位寄存器

    74LS595-8位輸出移位寄存器,常用作數(shù)碼管驅(qū)動(dòng)芯片
    發(fā)表于 01-12 17:38 ?17次下載

    關(guān)于time borrowing概念

    靜態(tài)時(shí)序分析經(jīng)常會(huì)遇到基于(latch)的設(shè)計(jì)從而引入了一個(gè)概念稱為“Time Borrowing”。這篇文章向大家解釋了什么是
    發(fā)表于 10-02 07:54 ?913次閱讀

    如何在項(xiàng)目中使用移位寄存器

     第一個(gè)時(shí)鐘周期將其加載到A.然后,的輸出具有加載到
    發(fā)表于 07-15 10:02 ?1495次閱讀
    如何在項(xiàng)目中使用移位<b class='flag-5'>寄存器</b>

    、觸發(fā)、寄存器的關(guān)聯(lián)與區(qū)別及其相應(yīng)的verilog描述

    1:、觸發(fā)、寄存器的關(guān)聯(lián)與區(qū)別 首先應(yīng)該明確
    的頭像 發(fā)表于 12-19 12:25 ?1.1w次閱讀

    一文詳細(xì)區(qū)分寄存器、和觸發(fā)

    你有沒(méi)有遇到過(guò)這樣奇怪的事:你一直以為自己知道某件事,但當(dāng)你試著向別人解釋它時(shí),你才發(fā)現(xiàn)自己的論述存在漏洞和邏輯上的差異?這就是我最近所遇到的情況,當(dāng)時(shí)有人問(wèn)我和觸發(fā)
    的頭像 發(fā)表于 01-30 15:21 ?3057次閱讀

    寄存器的工作原理

    或觸發(fā)構(gòu)成的,因?yàn)橐粋€(gè)或觸發(fā)
    發(fā)表于 02-20 14:02 ?7983次閱讀

    什么是寄存器有何區(qū)別

    (Latch)是一種基本的數(shù)字電路元件,用于存儲(chǔ)二進(jìn)制數(shù)字的狀態(tài)信息,并能夠在需要時(shí)通過(guò)加電或控制信號(hào)的作用保持狀態(tài)。它通常由幾個(gè)邏輯門組成,可以實(shí)現(xiàn)簡(jiǎn)單的存儲(chǔ)、移位、計(jì)數(shù)等功能。
    的頭像 發(fā)表于 04-09 18:45 ?9192次閱讀

    具有3態(tài)輸出的8位寄存器收發(fā)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有3態(tài)輸出的8位寄存器收發(fā)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-13 10:38 ?0次下載
    具有3態(tài)輸出的8位<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>寄存器</b>收發(fā)數(shù)據(jù)表

    帶輸入的8位移位寄存器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶輸入的8位移位寄存器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-13 11:15 ?0次下載
    帶輸入<b class='flag-5'>鎖</b><b class='flag-5'>存</b><b class='flag-5'>器</b>的8位移位<b class='flag-5'>寄存器</b>數(shù)據(jù)表

    、觸發(fā)寄存器的區(qū)別

    在數(shù)字電路和計(jì)算機(jī)系統(tǒng),、觸發(fā)寄存器都是關(guān)鍵
    的頭像 發(fā)表于 05-23 15:28 ?1369次閱讀