自引入以來,現場可編程門陣列(FPGA)的容量增加了10000倍以上, 性能增加了100倍. 單位功能的成本和功耗都減少了超過1000倍. 這些進步是由工藝縮放技術所推動的, 但是 FPGA 的故事比簡單縮放技術的更復雜. 摩爾定律的數量效應推動了FPGA在體系結構、應用和方法方面發生質的變化. 因此, FPGA 已經經歷了幾個不同的發展階段. 本文分別總結了發明、擴張、累積這三個階段, 并討論了它們的驅動壓力和基本特征. 本文最后展望了未來的FPGA階段.
Xilinx 在1984年引入了第一個現場可編程門陣列(FPGAs), 盡管直到Actel在1988年普及這個術語它們才被稱為FPGAs. 在接下來的30年里,我們稱之為FPGA的設備的容量增加了1萬多倍,速度增加了100倍. 單位功能的成本和能耗降低了1000倍以上(見圖1).
圖1 Xilinx FPGA屬性相對于1988年。容量指邏輯細胞計數。速度指可編程織物的同功能性能。價格指每個邏輯單元。能量指每個邏輯單元。價格和能量按一萬倍放大。數據來源: Xilinx發表的數據。
這些進步在很大程度上是由工藝技術驅動的, 隨半導體的擴展, 很容易把 FPGA 的進化看成是一個簡單的容量發展. 這種看法太簡單了。FPGA 進展的真實故事要有趣得多。
自其引入以來, FPGA 設備經過幾個不同的發展階段已取得進展. 每個階段都受到工藝技術機會和應用程序需求的驅動。這些驅動壓力引起設備特性和工具的可觀察變化。在本文中, 我們回顧了FPGA的三階段. 每個階段長達8年, 并且每一段在回顧中都很明顯。
三個階段分別是:
1)發明階段, 1984–1991;
2)擴張階段, 1992–1999;
3)累積階段, 2000–2007.
圖2. FPGA與ASIC交叉點。 圖表顯示總成本與單位數量。 FPGA線條較暗,從左下角開始。 隨著下一個工藝節點的采用(從較早節點的虛線箭頭到稍后節點的實線箭頭),由垂直虛線表示的交叉點變大。
二、前言: 關于FPGA的重大問題有哪些?
A.FPGA VS ASIC
20世紀80年代,專用集成電路(ASIC)公司為電子市場帶來了一個驚人的產品:定制集成電路。 到20世紀80年代中期,有數十家公司在銷售ASIC,在激烈的競爭中,成本低,容量大,速度快的技術更具受青睞。 當FPGA出現的時候,它在所有這幾個方面上都并不突出,但卻一枝獨秀。這是為什么?
ASIC的功能是由自定義掩模工具決定的。ASIC的客戶為這些掩模工具支付了前期的一次性工程(NRE)費用。由于沒有定制的工具,FPGA降低了預付成本和建立定制數字邏輯的風險。通過制造一種可以被成百上千的客戶使用的自定義硅設備,FPGA供應商可以有效地平攤所有客戶的NRE成本,從而不會對任何一個客戶收取任何費用,又同時增加了每個客戶的單位芯片成本。
前期的NRE成本確保了FPGA在某些數量上比ASIC更具成本效益。FPGA供應商在他們的“交叉點”上吹噓這個數字,這個數字證明了ASIC的更高的NRE開銷。 在圖2中,圖線顯示了購買數量單位的總成本。 ASIC具有NRE的初始成本,并且每個后續單元將其單位成本增加到總數。 FPGA沒有NRE電荷,但是每個單元的成本都比功能相當的ASIC要高,因此斜率更陡峭。 兩條線在交叉點相遇。 如果所需的單元數量少于此數量,則FPGA解決方案便宜; 超過該數量的單位表明ASIC具有較低的總體成本。
由于NRE成本占ASIC總體擁有成本的很大一部分,所以FPGA每單位成本超過ASIC成本的優勢隨著時間的推移而減少。 圖2中的虛線表示某個工藝節點的總成本。 實線表示下一個工藝節點的情況,NRE成本增加,但是每個芯片的成本較低。 FPGA和ASIC都利用低成本制造,而ASIC NRE收費繼續攀升,推高交叉點。 最終,交叉點變得如此之高,以至于大多數客戶,單元的數量已經不再適用于ASIC。 定制芯片只保證非常高的性能或很高的體積; 所有其他人可以使用可編程解決方案。
摩爾定律最終將推動FPGA能力覆蓋ASIC要求,這是對可編程邏輯業務的一個基本早期認識。如今,器件成本在性能,上市時間,功耗,I / O容量以及其他功能方面都不如FPGA。許多ASIC客戶使用較老的工藝技術,降低了NRE成本,但降低了單芯片成本優勢。
FPGA不僅消除了前期掩蔽費用并降低庫存成本,而且通過消除整個類別的設計問題也降低了設計成本。這些設計問題包括晶體管級設計,測試,信號完整性,串擾,I / O設計和時鐘分配。
與低前期成本和簡單設計一樣重要的是,主要的FPGA優勢是即時可用性和降低的故障可見性。盡管大量的仿真時,ASIC第一次似乎很少是正確的。隨著晶圓制造周轉時間在幾個星期或幾個月內,芯片重新調整對時間安排造成重大影響,而且隨著掩膜成本的上升,芯片重新調整對公司日益增長的水平而言是顯而易見的。錯誤的高成本要求廣泛的芯片驗證。由于FPGA可以在幾分鐘內完成重做,因此FPGA設計不會因為錯誤而延誤數周。因此,驗證不一定要徹底。 “自我模仿”,俗稱“下載試用”,可以代替大量的模擬。
最后看一下ASIC生產風險:ASIC公司只有在客戶的設計投入生產時才賺錢。 在20世紀80年代,由于開發過程中需求的變化,產品故障或完全設計錯誤,只有三分之一的設計實際投入生產。 三分之二的設計損失了錢。 這些損失不僅由ASIC客戶承擔,還由ASIC供應商承擔,這些供應商的NRE收費很少包括他們的實際成本,從未在快速貶值的制造設施中彌補失去機會的成本。 另一方面,可編程邏輯公司和客戶仍然可以小批量賺錢,并且可以快速糾正小的錯誤,而不需要昂貴的掩模。
圖3.通用PAL架構。
B. FPGA VS PAL
可編程邏輯在FPGA之前就已經建立起來了。在20世紀80年代早期,EPROM編程的可編程陣列邏輯(PAL)已經開辟了一個市場。但是,FPGA具有體系結構優勢。為了理解FPGA的優勢,我們首先看看這些早期的80年代器件的簡單可編程邏輯結構。一個PAL設備,如圖3所示,由一個兩級邏輯結構組成。顯示輸入在底部。在左邊,一個可編程和陣列產生產品條款,以及輸入和它們的反轉的任何組合。右側塊中的固定或門完成宏單元產品術語的組合邏輯功能。每個宏單元輸出是芯片的輸出。宏單元中的可選寄存器并反饋到和陣列的輸入使得實現非常靈活的狀態機成為可能。
不是每一個功能都可以通過PAL的宏單元陣列實現一次,但是幾乎所有的常用功能都可以,而那些不可能通過陣列實現的功能。無論執行的功能還是位于陣列中的位置,通過PAL陣列的延遲都是相同的。 PAL具有簡單的擬合軟件,可將邏輯快速映射到陣列中的任意位置,而不會影響性能。 PAL適配軟件可以從獨立的EDA供應商處獲得,使IC制造商可以輕松地將PAL添加到他們的產品線中。
從制造的角度來看,PAL是非常有效的。 PAL結構與EPROM存儲器陣列非常相似,其中晶體管被密集地包裝以產生有效的實現。 PAL與存儲器非常相似,許多存儲器制造商能夠用PAL來擴展他們的產品線。當周期性內存業務出現停滯時,內存廠商進入可編程邏輯業務。
當考慮縮放時,PAL的架構問題是顯而易見的。在和陣列中的可編程點的數量隨著輸入數量的平方(更確切地說,輸入乘以乘積項)的平方增長。工藝縮放以收縮因數的平方來提供更多的晶體管。然而,陣列中的二次增加限制了PAL僅通過收縮因數線性增長邏輯。 PAL輸入和產品期限也很重,所以延遲隨著尺寸的增加而迅速增長。像任何這種類型的存儲器,PAL都具有跨越整個芯片的字線和位線。隨著每一代,所編程的晶體管的驅動與負載的比例下降。更多的投入或產品條款增加了這些線路的負載。增加晶體管尺寸以降低電阻也提高了總電容。為了保持速度,耗電量急劇上升。大型PAL在區域和性能上都是不切實際的。作為回應,在20世紀80年代,Altera率先推出了復雜可編程邏輯器件(CPLD),由多個PAL型塊組成,其中較小的交叉開關連接。但FPGA具有更具可擴展性的解決方案。
圖4.通用陣列FPGA架構。 4 4陣列,每行和每列有三條接線軌跡。 開關位于交叉點的圓上。 設備輸入和輸出分布在陣列周圍。
FPGA的創新是消除了提供可編程性的數組和陣列。相反,配置存儲器單元分布在陣列周圍以控制功能和布線。這種改變放棄了PAL結構的類似存儲器陣列的效率,有利于架構的可擴展性。如圖4所示,FPGA的架構由一系列可編程邏輯塊組成,并與現場可編程開關互連。 FPGA的容量和性能不再受到陣列的二次增長和布線布局的限制。并不是每一個功能都是芯片的輸出,所以容量可以隨著摩爾定律而增長。
?FPGA架構看起來不像內存。 設計和制造與內存非常不同。
?邏輯塊較小。 不能保證一個單一的功能可以融入其中。 因此,提前確定將有多少邏輯適合FPGA是很困難的。
?FPGA的性能取決于邏輯放置在FPGA中的位置。 FPGA需要布局和布線,所以完成的設