對于那些時鐘頻率低于100MHz、存儲器密度低于512K數據緩沖應用來說,將該設計集成到一個單FPGA中常常能夠提供最理想的解決方案。然而,隨著緩沖存儲器的需求增長和時鐘頻率的增加,設計者會發現采用分立FIFO和多端口存儲器的高性能和低成本特性將會提供獨特的優勢。 FPGA為工程師提供了一個創建硬件原型的平臺,其可重復編程和擦寫的功能使設計工程師有能力來不斷完善設計,這些特性也引起了教育機構的廣泛關注。采用FPGA,學生們能快速建立基本的系統架構和研究基本邏輯和存儲器的操作。此外,FPGA固有的可重新編程特性可以讓學生們快速學習不同的設計選項和演示“假設分析”。同時也使教授們能夠應對技術方面的持續變化,并采用適當的結構和課程保持與行業趨勢的一致。最重要的是,學生們采用FPGA可以節省大量在電路板上為芯片布線的時間,把更多的精力投入到設計方面而不是構建方面。 在這些課程中,該技術被廣泛地應用在系統和計算機架構中,許多年輕的工程師在工作中考慮潛在設計選項時首先想到可編程邏輯。然而,隨著對可編程邏輯的日益依賴也給教授電路設計帶來了經常被忽略的一些問題,這使許多年輕的工程師在創建系統時,沒有意識到現在有許多可選擇的技術能夠解決他們在設計方面的挑戰。在許多情況下,這種行業選擇的知識缺乏與實踐設置經驗的缺乏是有關系的,這種專門技術的缺乏直接影響到他們設計高性能、低成本產品的能力。 圖1:用于高性能路由器的40Gbps解決方案。 內嵌的緩沖存儲器 這種趨勢的最好例子就是內嵌的數據緩沖存儲應用。多年來,FIFO和多端口存儲器一直是資深設計工程師創建高性價比的數據緩沖子系統的事實上的標準。然而,隨著FPGA存儲器密度的增加,設計工程師們已經選擇使用片上存儲器替代分立的FIFO或多端口存儲器的功能。 對高級系統來說,把分立的FIFO或多端口存儲器功能集成到FPGA似乎很有意義。將多個數據緩沖器和數據控制功能集成一個芯片中,提供了一個更為優秀的解決方案。其吸引力在于能使設計工程師減少元件數量和最大限度地縮小電路板的空間需求。為了幫助設計工程師,FPGA供應商提供了一系列標準化的設計構建模塊來加速開發進程。 但是,優秀的解決方案需要一定的成本,高密度的FPGA并不便宜。當數據總線速度超過100MHz,同時需要更高密度的緩沖器時,那就要更加昂貴的FPGA。性能也可能成為一個問題。當工程師把FIFO或多端口存儲器功能集成到可編程邏輯單元時,一些性能局限并不是顯而易見的。在許多情況下,采用分立元件或結合小型FPGA可以提供更為理想的解決方案。 在沒有意識的情況下問題產生了。假定教育機構過分依賴可編程邏輯,那么今天的許多工程師就失去了對分立的專用存儲器最新發展的認識,例如FIFO和多端口存儲器。現在,半導體供應商可提供密度范圍高達18Mb的FIFO器件。讀寫端口能夠完全獨立地以高達250MHz的速度運行,而且DDR選項能使每個端口性能提高達20Gbps。眾多的可選擇端口特性使用戶可選擇總線的寬度、I/O電壓、數據速率和同步或異步操作。集成標記運算(flag operation)增加了器件的功能,最重要的是,整個產品線的引腳兼容性使設計工程師很容易升級到更高的密度和速度。 多端口存儲器有類似的發展過程。設計工程師可選擇每個端口不同總線寬度,支持8到72位之間的器件。這些器件在同步模式下速度高達200MHz或在異步模式訪問速率達10ns,同時密度高達36Mb。目前器件可支持的內核電壓范圍為5V、3.3V、2.5V或1.8V,I/O電壓為5V、3.3V、2.5V,可選擇3.3V/2.5V或1.8V。還有許多特殊功能可供使用,包括全邊界計數器(full-boundary counter)、獨立字節使能、沖突檢測、中斷、旗語和忙仲裁。 內嵌數據緩存的性能局限性 當一直被教育使用FPGA的工程師設計數據緩沖子系統時,他們自然地傾向于把FIFO設計成FPGA。然而許多人沒有意識到,因為他們設計中的FIFO數量的增加使他們面臨著性能局限性的問題。通常,這些工程師使用來自主要供應商的工具,自動地將多FIFO映射到單個物理存儲器模塊中,在多個特定用戶FIFO之間產生時間域復用所需的邏輯。然而,因為每個獨立的FIFO端口必須一起進行復用,所以每個FIFO端口的最高工作頻率與映射到設計中的FIFO的數量成反比。
圖2:低功耗雙端口器件是多媒體智能電話的理想之選。 當每個FIFO器件利用其時鐘獨立運行時,數據、控制輸入和狀態標記、FIFO之間總的存儲帶寬是共享的。當一個FIFO器件的讀寫操作啟動時,定序器(sequencer)電路會在快速的時分復用(TDM)時鐘域存取物理數據。之后,定序器電路快速訪問TDM時鐘域的物理存儲器。然后,定序器把信息傳回到FIFO端口的時鐘域完成存儲存取。因為時鐘域的傳輸,FIFO器件的性能受到定序器電路的速度和使用的FIFO數量固有的限制。實際上,一些領先FPGA供應商推薦需要在高性能設計中把他們器件的FIFO數量控制在10個之內。 在把一個FPGA配置成雙端口時,也會有很多與性能相關的問題。在很多這種應用中,FPGA往往和ASIC連接在一起。性能受三個主要因素控制:內在速度或從雙端口寫入和讀取信息的速度、建立時間或數據在ASIC輸入變得穩定需要的時間,以及最高速度或外部ASIC獲得雙端口信息的速度。 因為在輸入的數據穩定之前ASIC不能運行,建立時間就直接影響到速度的提升。由于設計工程師在FPGA中使用了大量的存儲器,所以某些存儲器會離I/O和邏輯門很遠。結果,內部寫脈沖的長度就會存在很大的差異性,并導致建立時間延長,最后使性能降低。在某些情況下,由于減少了建立時間,一個內部速度超過200MHz的FPGA將只能表現出最高120MHz的速度或者更低。相反,200MHz的雙端口存儲器的建立時間和最大速度則保持恒定,并明顯快于整個存儲器密度范圍的FPGA。如果設計工程師選擇使用小型FPGA和外部多端口,性能就只會受FPGA的I/O限制。 面積和成本的考慮 封裝面積是另一個有時帶有欺騙性的需要考慮的問題。如前所述,在許多情況下,把一個數據緩沖器設計集成到一個FPGA可以在低密度情況下顯著節省占板面積。然而,隨著密度的增加,空間節省并不明顯。在許多情況下,元件數量越多,卻可出乎意料占用更小的空間。 例如,隨著設計工程師將小型4萬門FPGA換成8百萬門FPGA,封裝的尺寸幾乎增加6倍,從256引腳球柵陣列封裝(BGA)增長到1,152引腳BGA封裝。相反,FIFO和多端口存儲器在不同的密度條件下,可以提供相同的256引腳的BGA封裝。在這些情況下,使用一個非常大的FPGA增加存儲器容量不會實現最小的占板面積。對于更高密度的選擇,設計工程師可以通過組合具有足夠門數的FPGA和外部多端口FIFO或者多端口存儲器,得到更為有效的結果。 在許多設計中成本是至關重要的,經常迫使設計工程師對其性能做出折衷,數據緩沖器設計也不例外。不過,對FPGA存儲器和分立存儲器仔細的成本分析可以帶來最具成本效益的選擇。 FPGA和FIFO存儲器每比特成本之間的比較說明了分立存儲器器件和FPGA之間主要的區別。像任何分立存儲器器件一樣,FIFO和多端口器件的每比特成本隨著密度增加都會按合理比例持續減少。盡管存儲器嵌入到一個FPGA里價格會比分立器件高,在256K以下隨著每比特的成本變化速度與FIFO和多端口器件相近,而密度高于256K的FPGA每比特成本增長更快,高密度下的FPGA存儲器更昂貴。 這個區別對于不得不在他們的設計中增加存儲器的設計工程師來說具有很重要的意義。當設計工程師的需求已經超過一個FPGA的存儲器容量時,他們必須轉向到下一個更高密度的器件。更高容量的FPGA不僅迫使設計工程師為額外的存儲器付出更高的成本,也迫使他們為嵌入在更高密度FPGA里的邏輯買單。此外,高密度的FPGA也要求大的封裝來滿足額外的I/O,所以也增大了電路板空間站用。使用分立的FIFO或多端口器件的設計可以利用引腳上兼容的下一代高密度器件,來增加額外的存儲器IC或替代現有的存儲器,從而簡便地擴展容量。因此,使用分立器件增加存儲器的成本實際上保持不變,使用FPGA增加存儲器的成本卻不斷增加。 引腳兼容的分立FIFO和多端口存儲器產品系列的可用性也在很大程度上影響設計的靈活性,它使設計工程師能夠升級性能或推出另一個有不同性能的終端產品。而改變FPGA里的設計實現,通常需要重新編輯、改變計時和進行其他調節。 可靠性是設計中需要考慮的另一個問題。縮小工藝尺寸和降低工作電壓有助于增加存儲器的密度。但是,降低容量和降低電壓也會增加SRAM單元里的軟錯誤(soft-error)。由于FPGA比FIFO和多端口更趨向采用更小更低電壓和尺寸,也會出現更多的軟錯誤。工作在高電壓下使用FIFO和多端口的存儲器將很少受到軟錯誤的影響,而且可以提供更高的性能。 |