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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    1624

    文章

    21538

    瀏覽量

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

    關(guān)注

    31

    文章

    5268

    瀏覽量

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

    關(guān)注

    8

    文章

    904

    瀏覽量

    41386

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

    ,但這種時序邏輯電路只包含存儲電路。寄存器的存儲電路是由或觸發(fā)構(gòu)成的,因為一個
    發(fā)表于 07-03 11:50

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

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

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

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

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

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

    關(guān)于time borrowing概念

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

    如何在項目中使用移位寄存器

     第一個時鐘周期將其加載到A.然后,的輸出具有加載到
    發(fā)表于 07-15 10:02 ?1540次閱讀
    如何在項目中使用移位<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ā)

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

    寄存器的工作原理

    或觸發(fā)構(gòu)成的,因為一個或觸發(fā)
    發(fā)表于 02-20 14:02 ?8161次閱讀

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

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

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

    電子發(fā)燒友網(wǎng)站提供《具有3態(tài)輸出的8位寄存器收發(fā)數(shù)據(jù)表.pdf》資料免費下載
    發(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ā)表于 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ù)字電路和計算機系統(tǒng)、觸發(fā)寄存器都是關(guān)鍵
    的頭像 發(fā)表于 05-23 15:28 ?1729次閱讀