《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > 掃盲:復位信號如何影響FPGA資源利用率

掃盲:復位信號如何影響FPGA資源利用率

2022-10-24
來源:FPGA研究院
關鍵詞: 復位信號 觸發器 FPGA

  在數字系統設計中,我們傳統上都認為,應該對所有的觸發器設置一個主復位,這樣將大大方便后續的測試工作。所以,在所有的程序中,我往往都在端口定義中使用同一個reset信號(其實好多時候根本就沒有用到)。所以,當看到文檔中提到,“不建議在FPGA設計中使用全局復位,或者說應該努力避免這種設計方式”時,許多設計人員(包括我)都會覺得非常難以理解,這種設計思想跟我們通常的認識是相沖突的!

  繼續讀下去,不知不覺發現這個白皮書講的還真是在理。接下來把我的個人理解講述一下。

  1.全局復位是不是關鍵時序?

  全局復位信號一般由以下三種途徑獲得:

  1. 第一種,最常見的,就是用一個復位按鈕產生一個復位信號接到FPGA的全局復位管腳上。它的速度顯然是非常慢的(因為是機械結構),而且存在抖動的問題。

  2. 第二種是上電的時候由電源芯片產生的,如TI的TPS76x系列的電源系統一般都可以產生復位信號,供主芯片上電復位使用。

  3. 第三種是由控制芯片產生的復位脈沖,這個是我們設計人員可以方便使用程序控制的。

  在這些情況下,復位信號的變化與FGPA芯片內部信號相比看起來是及其緩慢的,例如,復位按鈕產生的復位信號的周期至少是在毫秒級別的,而我們FPGA內部信號往往是納米或者微秒級別的。復位信號的頻率是如此之低,以至于我們任務它不屬于關鍵時序(not TIming-criTIcal)。即使是對此類信號進行時序約束,約束的周期也是非常長的。全局復位脈沖的周期遠大于時鐘周期,所以傳統意義上假設FPGA芯片中所有的觸發器都能夠得到有效的復位。

  然而,隨著FPGA性能和工作頻率的快速提高,這種假設開始不再成立。此時,全局復位信號的產生開始成為時序關鍵的問題。

  在Xilinx 的FPGA器件中,全局的復位/置位信號(Global Set/Reset (GSR))(可以通過全局復位管腳引入)是幾乎絕對可靠的,因為它是芯片內部的信號。如果所有的觸發器都使用這一全局復位信號,則GSR信號將形成一個高扇出的網絡(有興趣的朋友可以在綜合工具中查看)。雖然在啟動順序中,它可以與一個用戶自定義的時鐘進行同步,但是想讓它與設計中的所有時鐘信號進行同步是不可能的;比如,一個Xilinx FPGA中可能含有多個DLL/DCM/PLL時鐘處理模塊,每個模塊又可以產生多個時鐘信號,在各個模塊內部進行時鐘信號的同步是可行的,然而想讓所有時鐘信號同步是完全不可行的——從DCM的分布上就可以看出來:中間相隔的長距離布線對高頻時鐘信號的延時顯著增大,進行同步自然無法做到。于是,在時鐘信號頻率越來越高的情況下,全局復位信號便開始成為時序關鍵。解釋如下:

 094.JPG

  圖1被兩個時鐘信號的邊沿截斷的復位信號的時序圖

  圖1 給出了被兩個時鐘信號的邊沿截斷的復位信號的時序圖,第一行是時鐘信號,第二行是器件復位管腳上的信號,第三行是到達觸發器復位端的復位信號。為了使觸發器進行有效的復位,在有效的時鐘邊沿到來之前,復位信號應該被保持至少一個建立時間(時鐘信號的簡歷時間)。可以看出,時鐘信號的頻率越高,用來分配復位信號的可用時間就越少。而且考慮到全局復位信號往往是高扇出的的網絡,想在這個龐大的網絡中滿足苛刻的時序要求是非常困難的。在經常使用的異步復位的設計中,更沒有辦法來保證所有的觸發器都可以在同一個時鐘邊沿被釋放,即使存在用來分配復位信號的可用時間。這一點從圖2中可以看出。

  093.JPG

  圖2 異步設計中復位信號的時序圖

  圖2給出了異步設計中復位信號的時序圖。可以看出,在A時刻產生的復位信號,將在第一個時鐘信號的有效邊沿產生,而在C時刻產生的復位信號將在第二個有效的時鐘信號邊沿產生。在B時刻,觸發器很難有效定義哪一個復位信號是有效的,這將導致亞穩態的產生。

  隨著時鐘信號頻率的增高和器件規模增大帶來的潛在的時鐘偏移,在同一個時鐘邊沿對所有的觸發器進行是否已經幾乎是不可能的了。圖3顯示了高時鐘頻率下的復位時序圖。

 092.JPG

  圖3 高時鐘頻率下的復位時序

  全局復位對時序的要求真的很關鍵嗎?

  好消息是,在絕大多數設計中(白皮書說是超過99.99%?應該是老外寫文檔的習慣吧),復位信號的時序是無關緊要的——通常情況下,大部分電路都能夠正常工作。然而,只要你曾經遇到過復位信號不正常導致電路無法正確工作的情況,那么可以說你“幸運”地遇到了那0.01%的復位信號異常的情況。圖4給出了一個流水線復位的情況。

 091.JPG

  圖4 流水線的復位

  在流水線中,假如數據都是完全順序處理的(即不存在反饋、環路等情況),則主復位信號是何時產生的是完全無關緊要的。經過幾個周期的流水線操作,任何不正常的數據狀態都將被從系統中“沖出”流水線,這是很容易理解的。事實上,在正常的流水線操作中,我們也很少會用到復位操作的,因為這是完全沒有必要的。即使是在仿真環境中,我們也往往會在測試程序中對初始狀態進行配置,從而將所有的未知狀態從系統中清除出去,使得系統中的所有輸入都變為有效的數據。

  然而,在圖5所示的獨熱碼狀態機的情況下,復位信號的時序卻的的確確成為了系統正常工作的關鍵因素之一。

  090.JPG

  圖5 獨熱碼狀態機的復位

  圖5 的例子中演示了一個簡單的的獨熱碼狀態機的復位示意圖。圖中清晰地顯示了復位失敗的潛在可能性。如果第一個含有獨熱碼的觸發器比第二個觸發器提前釋放一個時鐘周期,則其含有的獨熱碼將丟失,整個狀態機將永遠進入無效狀態(cold)。減小這種情況發生的概率往往可以通過使用相鄰的觸發器構成狀態機來解決(使用本地復位網絡,則信號的失真度較低),但前提是時序約束中的建立時間必須滿足。此外,如果所有的觸發器無法在同一個時鐘信號的有效邊沿被釋放,則一個已經編碼的狀態機可能會調變進入未知狀態,包括非法狀態,造成電路無法正確工作。所以,在包含反饋通路的電路設計者,需要對復位信號的時序要求進行仔細考慮。

  事實上,不存在反饋通路的電路是完全不需要使用復位信號的。例如,在數字信號處理應用中,有限脈沖響應濾波器(FIR)就不存在反饋通路:只有在有效數據填滿所有節拍時,濾波器才會輸出采樣值,否則不輸出任何數據;所以對節拍寄存器進行復位是毫無意義的。然而,在有限脈沖響應濾波器(IIR)中,存在反饋通路,如果在一個不可靠的復位信號下對節拍寄存器進行復位并產生一個偽信號輸出,則濾波器輸出會受到顯著的影響。最壞的情況下,偽信號帶來的不穩定將導致整個濾波器陷入崩潰狀態。

  如何自動覆蓋99.99%的情況

089.JPG

  圖6 FPGA配置

  當一個Xilinx的FPGA芯片被重新配置時,每一個單元都將被初始化,如圖6所示。在某種意義上講,這是一個上電之后的“終極的”全局復位操作,因為它不僅僅是對所有的觸發器進行了復位操作,還初始化了所有的RAM單元。隨著Xilinx FPGA芯片內部的嵌入式RAM資源越來越多,這種“終極的”全局復位操作越來越有意義。對所有的RAM單元進行預定義,在軟件仿真和實際操作中都是非常有幫助的,因為這樣避免了在上電時采用復雜的啟動順序來清除存儲單元內容的操作。

  隨著Xilinx的FPGA芯片越來越多的嵌入處理器內核,比如MicroBlaze軟核、ARM和PowerPC硬核等,這種特性使得所有的程序和數據空間在處理器內核執行第一條指令之前都已經被預定義,則原來那種靠燒寫昂貴的可編程資源來僅僅復位觸發器的操作變得毫無意義了。開發過程中所使用的仿真工具也應當具有模擬此操作的能力(即我們通常所說的“上電復位”),這樣在后續的設計中就可以避免使用可有可無的復位操作了。

  其余0.01% 情況的設計準則

  最重要的事情是使用某些準則來處理設計中的復位操作,并且這些準則在設計審查階段就應該被完全考慮到。可以使用一個局部的高性能的復位網絡來控制僅僅需要局部復位的觸發器。圖7給出了一個這種局部復位的示意圖。這種電路的優點在于,它所提供的復位效果與外接全局復位信號的效果是一致的。

  088.JPG

  圖7 局部復位示意圖

  在器件配置或者異步復位時,鏈中的所有觸發器都被預設為1。幾乎在這同時,鏈中的最后一個觸發器驅動局部復位網絡并向其發送一個有效復位信號。隨著全局復位/置位信號或異步復位信號的釋放,整個移位寄存器鏈開始在每個時鐘周期被填充為0。

  鏈中觸發器的數目決定了局部復位網絡所需要的復位脈沖的最小寬度。最后的結果是,鏈中最后一個觸發器從高跳變到低,而局部復位信號的釋放與時鐘周期同步。被復位的觸發器可以采用同步置位(synchronous set (FDS))或者同步復位(synchronous reset (FDR)),即構成了完整的同步設計,而接下來的時序規范和分析也將容易得多。

  復位操作消耗的資源遠比你想象的要多

  在FPGA設計中,我們往往習慣在HDL文件的端口聲明中加入一個reset信號,卻忽略了它所帶來的資源消耗。仔細分析一下,竟會有如此之多的影響:

  ? 復位網絡需要占用布線資源

  導致其余信號的布線信號受到影響,降低了它們布線的自由度。

  增加的布線網絡往往需要使用更高速率的芯片。

  復位網絡占用大量布線資源,使得Place&Route的時間大大增加,如果電腦是老爺機則讓人十分痛苦。

  ? 復位信號需要占用大量的邏輯資源

  復位信號需要使用觸發器的專用復位管腳。

  可操作的復位信號往往導致D觸發器的輸入前增加額外的門操作或專用的復位信號輸入。

  增大整個設計 的尺寸。

  額外的邏輯消耗降低了系統的性能。

  ? 阻止了使用高效特征,如Xilinx FPGA特有的SRL16E 移位寄存器。

  SRL16E可以在一個LUT中實現多達16個觸發器。

  SRL16E 實現的虛擬觸發器不支持復位操作,這使得HDL設計中帶有復位操作時,綜合工具無法有效利用SRL16E 資源。有可能增加多達16倍的資源消耗。

  在Xilinx網站的白皮書 WP275 .pdf:《Get your PrioriTIes Right - Make your Design Up to 50% Smaller》中提到了復位信號是如何影響FPGA資源利用率的,有興趣的朋友可以去讀一下。

  總結一下,Xilinx FPGA設計中一般不需要插入全局復位網絡,這樣我們在寫程序的時候就不必每個模塊都加入reset端口了,既方便了程序書寫,又減小了編譯時間,還減少了資源占用。絕大多數情況下,重配置或者上電過程中,所有的觸發器和RAM等都可以被預設初始狀態,所以全局復位是完全沒有必要的,因為所有的信號都已經具有明確的初值!Xilinx FPGA都已經經過充分驗證,所以掃描邏輯和運行測試向量都不再是必須的操作,全局復位作為這些操作的一部分自然也不再需要。



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲理论在线| 欧美一区二区三区在线观看| 国产欧美 在线欧美| 欧美日韩亚洲高清| 欧美激情免费在线| 欧美成人国产一区二区| 美女视频网站黄色亚洲| 久久午夜羞羞影院免费观看| 久久精品日产第一区二区| 久久福利影视| 久久精品亚洲| 狂野欧美激情性xxxx欧美| 久久青青草原一区二区| 久久久久成人网| 久久夜色精品国产噜噜av| 久久一区视频| 免费看的黄色欧美网站| 巨胸喷奶水www久久久免费动漫| 久久久久久网| 免费成人高清在线视频| 久久人91精品久久久久久不卡 | 亚洲专区免费| 午夜激情久久久| 久久高清免费观看| 久久综合色一综合色88| 欧美国产精品一区| 欧美日韩情趣电影| 国产精品影音先锋| 黄色综合网站| 亚洲精品久久久一区二区三区| 亚洲精品欧美一区二区三区| 99在线精品视频| 亚洲无限乱码一二三四麻| 午夜精品视频一区| 亚洲第一在线综合网站| 日韩视频免费观看高清在线视频| 99视频+国产日韩欧美| 亚洲欧美日韩一区在线| 久久成人在线| 欧美国产第二页| 欧美日韩一视频区二区| 国产欧美日韩视频在线观看| 伊人狠狠色j香婷婷综合| 亚洲精品国产欧美| 亚洲欧美一级二级三级| 久久精品亚洲精品| 一本色道久久综合狠狠躁篇的优点| 亚洲欧美久久久久一区二区三区| 久久精品国产精品| 欧美国内亚洲| 国产精品一区2区| 在线 亚洲欧美在线综合一区| 亚洲精品四区| 欧美一区永久视频免费观看| 亚洲免费成人av| 欧美专区在线| 欧美日韩精品免费观看视频完整| 国产日韩欧美高清| 亚洲精品一区二区三区樱花| 亚洲综合三区| 日韩午夜在线| 久久精品亚洲热| 欧美日韩一卡| 精品51国产黑色丝袜高跟鞋| 一本色道久久综合一区| 亚洲福利小视频| 亚洲制服丝袜在线| 欧美肥婆bbw| 国产亚洲电影| 中国成人黄色视屏| 亚洲人成在线影院| 欧美一区二区视频在线| 欧美激情小视频| 国产亚洲精品久| 亚洲视频图片小说| 亚洲精品美女91| 久久99伊人| 欧美日韩一卡| 亚洲国产欧美日韩| 久久成人羞羞网站| 亚洲欧美日韩一区二区三区在线| 欧美黑人国产人伦爽爽爽| 国产视频一区二区在线观看| 一本色道久久加勒比精品| 91久久国产综合久久| 久久激情五月丁香伊人| 国产精品成人一区二区艾草| 亚洲国产黄色片| 久久精品女人天堂| 午夜在线播放视频欧美| 欧美日韩成人一区| 91久久精品一区二区别| 欧美在线一区二区| 欧美一区二区视频在线| 欧美性理论片在线观看片免费| 亚洲激情国产精品| 亚洲国产视频a| 久久久亚洲高清| 国产一区二区三区在线免费观看 | 欧美日韩国产区| 在线观看日韩精品| 久久经典综合| 久久久久久久久久久一区| 国产伦精品一区二区三区| 99热这里只有成人精品国产| 亚洲精品一区二区三区樱花| 久久综合中文| 国内激情久久| 欧美一区二区三区在| 欧美在线日韩在线| 国产精品免费看片| 亚洲婷婷综合色高清在线| 国产精品99久久久久久久vr | 欧美性理论片在线观看片免费| 亚洲伦理在线| 一区二区精品在线| 欧美日韩精品免费观看| 日韩视频一区二区三区在线播放免费观看 | 亚洲第一天堂av| 久久先锋资源| 在线欧美日韩精品| 亚洲国产婷婷香蕉久久久久久| 久久免费偷拍视频| 影音先锋日韩资源| 亚洲欧洲日本国产| 欧美激情导航| 亚洲精品视频免费| 亚洲一二三区在线观看| 国产精品地址| 亚洲无线视频| 久久国产日韩欧美| 一区二区三区无毛| 亚洲精品精选| 欧美日韩亚洲一区在线观看| 亚洲视频在线看| 欧美一区二区视频在线观看| 国产曰批免费观看久久久| 亚洲电影自拍| 欧美精品日韩综合在线| av成人手机在线| 欧美在线日韩在线| 黄网动漫久久久| 99国产精品久久| 欧美性猛交99久久久久99按摩| 亚洲一区精品在线| 久久精品二区亚洲w码| 永久域名在线精品| 亚洲图片你懂的| 国产欧美精品一区二区色综合 | 亚洲狠狠丁香婷婷综合久久久| 欧美电影专区| 中文高清一区| 久久久久高清| 亚洲精品人人| 欧美在线视频二区| 亚洲成人在线免费| 亚洲一二三区精品| 国内精品久久久久久久果冻传媒| 91久久线看在观草草青青| 欧美日韩一区二区免费视频| 香蕉久久夜色精品国产使用方法| 美女精品在线观看| 一本久久a久久精品亚洲| 久久精品99国产精品日本| 亚洲日本黄色| 久久av一区| 亚洲黄网站黄| 欧美一级成年大片在线观看| 在线国产日韩| 亚洲一区在线观看视频| 国内伊人久久久久久网站视频 | 亚洲午夜在线观看| 久热精品在线| 在线一区观看| 免费成人黄色av| 亚洲视频精选在线| 欧美91精品| 亚洲在线视频| 欧美另类人妖| 久久av在线| 国产精品va在线播放我和闺蜜| 久久精品网址| 国产精品一区毛片| 99在线精品视频在线观看| 国内成人精品2018免费看| 亚洲一区三区电影在线观看| 国际精品欧美精品| 亚洲一区国产| 亚洲国产三级在线| 久久久久在线观看| 99国产精品久久久久久久久久| 久久亚洲综合色一区二区三区| 一本到高清视频免费精品| 女女同性精品视频| 亚洲在线不卡| 欧美日韩综合视频| 亚洲欧洲一区二区在线播放| 国产亚洲一区二区三区在线观看| 亚洲无线一线二线三线区别av| 影音先锋日韩精品|