FPGA讀書筆記1

xie347117464發表於2016-07-18

FPGA的通用結構

​ FPGA的通用結構如下圖所示。完整的FPGA包括可程式設計邏輯塊“島”,周圍是可程式設計互連線“海”。此外,還有全域性高速互連線可以在晶片中傳輸訊號而不必通過多路開關元件。器件的IO口可以連線到一個或者多個可程式設計邏輯塊,任何一個邏輯塊的輸出也可以驅動其他邏輯塊和器件的輸出。

enter image description here

​ FPGA在設計的時候是手動放置每個電晶體和軌道,使用的流程類似於ASIC。但是每塊的設計相當小而且重複,所以一旦建立後就沿著晶片表面複製幾千次。

基於SRAM的器件

​ 大部分FPGA是基於SRAM配置單元的,這意味著可以多次被配置。此外,FPGA可以利用其他儲存廠商的SRAM製造技術。這種方法的缺點是系統每次上電的時候都需要重新配置,以及一個外部儲存器。這也會導致一些安全隱患,

基於反熔絲的器件

​ 基於反熔絲的器件需要專門的程式設計器進行程式設計,程式設計的結果是斷電保留的。這意味著他們在系統上電時可以立即使用,也不需要額外的外部儲存晶片。反熔絲結構相對不受輻射的影響,而SRAM容易在被射線擊中時發生反轉。因此,基於反熔絲的器件更適合軍事和航天領域。

​ 它最重要的優點就是安全。很難被逆向工程。最大的缺點是無法重新配置,因此在開發階段無法使用。它們之間的對比如下圖所示。enter image description here

細粒、中粒和粗粒結構

​ 在細粒結構下,每個邏輯塊可以實現一個非常簡單的邏輯,例如與或非等基本邏輯閘、D觸發器等基本儲存元件。除了實現粘合邏輯和不規則結構(狀態機),細粒結構在執行收縮演算法是特別有效。它也適合於主要面向細粒ASIC結構的傳統邏輯綜合技術。

​ 細粒結構的主要缺點是相對粗粒結構而言,它需要跟多的塊與塊之間的互聯,而這引起的延遲佔了FPGA內部延遲的大部分。

​ 基於查詢表LUT的FPGA結構通常被分為中等粒度。而基於高複雜節點的器件被稱為粗粒結構。這些節點有的能完成FFT演算法。

MUX與基於LUT的邏輯塊

​ FPGA的中等粒度結構有兩種:MUX和LUT。Xlilinx邏輯單元的核心快為邏輯單元(logic cell,LC)。一個LC包括一個4輸入LUT,一個MUX和暫存器。時鐘的極性和使能的極性也可以被配置。Altera稱之為(logic element,LE)。每個LUT都可以當作一個16*1的RAM或者16bit的移位暫存器使用。

enter image description here

​ 一個slice包括兩個邏輯單元LC,它們的LUT、MUX和暫存器有自己的輸入輸出,但是時鐘、時鐘使能和置位/復位訊號是共用的。每個CLB包含4個或2個slice。如下圖所示。CLB中也有一些快速可程式設計互聯,用於連線相鄰的slice。

enter image description here

​ 總之,在LC,slice,CLB的結構體系中,層級越高,互聯的速度更慢一點,這樣做可以比較容易地把彼此連在一起,同時也不會增加太多的互聯延遲,達到優化平衡。

快速進位鏈

​ 現代FPGA擁有實現快速進位鏈所要求的專門邏輯和互聯。這些專用進位鏈大大提升了計數器的邏輯功能和加法器的算數功能。為FPGA在DSP上的應用提供了保證。

​ 由於儲存任務的需要,FPGA內嵌了很多RAM。這些RAM可以單獨使用,也可以實現單口或雙口RAM、FIFO功能,狀態機等。有的FPGA還內嵌了加法器、乘法器和MAC等功能塊。

相關文章