在閱讀本文之前,讀者可以對FPGA芯片的基本含義及原理做基本的了解。FPGA 的全稱為Field Programmable Gate Array(現場可編程門陣列),屬于專用集成電路中的一種半定制電路,是可編程的邏輯陣列。FPGA 的基本結構包括可編程輸入輸出單元、基本可編程邏輯單元、數字時鐘管理模塊、嵌入式塊RAM、豐富的布線資源、內嵌專用硬核,以及底層內嵌功能單元。
圖1 某FPGA的基本邏輯單元
市售常見的基于FPGA的平臺產品包括FPGA開發板、FPGA原型驗證系統。既然他們同樣都是基于FPGA芯片設計的,為什么規模、功能、成本和價格上有非常大的差異?這要從它們應用場景和設計目標的區別說起:
FPGA開發板:
FPGA開發板的主要場景是“開發基于獨立FPGA芯片的IP或應用系統”,其設計目標是精簡化、高性能、低成本,并自帶合適的外設接口,對調試功能的要求限于在單顆FPGA上用原廠軟件調試。
因此其搭載的FPGA芯片通常的容量為小到中等規模,實際應用中,往往用于進行中小規模、特定協議功能芯片的開發,比如涉及以太網、MIPI、NVME/M.2 SSD控制、UART/I2C 控制、HDMI/DVI顯示控制等。也有直接把一塊FPGA開發板放在一個大型系統之中,起到控制板的作用,這樣用戶可以靈活地對控制信號做各種調整。也有一些應用場景計算算法用較大容量的FPGA實現,達到高性能和算法靈活性的應用目標。同時,由于中低端的開發板售價適中,FPGA開發板也適合初學者進行學習使用。
其次,部分FPGA開發板也被用在IP和小型芯片設計的開發驗證場景。這部分開發板配備大容量的FPGA芯片,甚至是單板配備多片FPGA芯片來適應開發驗證場景,一般由用戶自己負責手工實現從設計到FPGA功能原型的流程。
FPGA原型驗證系統:
FPGA原型驗證系統的主要應用場景是“芯片設計過程中搭建軟硬件一體的系統驗證環境”:一是芯片流片回來前為軟件團隊提供調試驅動軟件的平臺,加速芯片上市時間;二是作為芯片仿真驗證的一個補充,因為FPGA可以接真實的硬件子卡,跟仿真使用的軟件模型有一定差別,有一定機會發現隱蔽的bug ;此外FPGA相對軟件仿真以及Emulator速度快,比較適合一些耗時較多的大場景case。故在芯片設計越來越大的情況下,其設計目標是能使用多顆FPGA芯片快速實現高性能的全系統驗證原型,并支持該場景下的調試需求。
首先,它搭載的往往是較大容量和多片的FPGA芯片,如Xilinx VU440/VU19P, Intel 的Stratix 10等,那么它就非常適合進行復雜算法、CPU/GPU類型芯片的驗證和實現:比如人工智能,多核RISC-V處理器IP等開發環境;如果是SoC芯片或大型IP的開發,那么可以將FPGA系統經過互聯擴展容量后,進行驗證。
其次,FPGA原型驗證系統更重要的目標,是從硬件和軟件上支持大型芯片功能原型的各項要求。如低延遲并行IO接口、高帶寬Serdes接口、自動化設計分割到多片FPGA并優化性能、多片FPGA的信號調試、原型系統規模的任意縮放、各種軟硬件接口擴展方案,等等。這些目標決定了原型驗證系統需要更專門的設計,特別是配套的自動化工具,因為對兩三片FPGA以上的中大型設計,手工實現設計分割和優化的投入太大,設計團隊更需要自動化工具。
區分了FPGA開發板和FPGA 原型驗證系統平臺的應用場景和設計目標,我們就明白它們為什么會有如此大的差異,本質上就是基于設計目標的功能取舍。下面我們分別介紹一下這2種產品和它們的關鍵點:
FPGA開發板
我們就先從FPGA開發板說起。為了實現基于FPGA芯片的開發、測試、應用,我們需要再為它加上一系列的外圍電路及元件,這樣FPGA才能夠正常地上電、配置、加載運行程序、提供相應的外設接口及長時間保持穩定的工作狀態。以目前最簡單的實現方式來看,這就是FPGA開發板。前文提到它的主要場景是為FPGA芯片的直接應用而做開發,因此這類產品的設計重點也在于盡量接近目標應用系統。
圖2 Xilinx公司出品的Zynq系列FPGA開發板
首先,從外觀上看,單顆FPGA開發板尺寸可以做到很小,通常不會超過一張A4紙的大小,方便擺放和移動。上面布局FPGA 主芯片、電源處理芯片、外部接口部件、電容電阻等分立元件。Xilinx、Intel、Lattice等FPGA原廠都推出過各種各樣的開發板。其中不光有傳統范疇的FPGA功能開發板,也有采取ARM核 + FPGA架構的SoC解決方案,如Xilinx Zynq、Intel Arria10等等。ARM接口資源豐富、功耗低,擅長進行多媒體顯示、邏輯控制;而FPGA擅長進行多通道或高速AD采集、接口拓展,以及高速信號傳輸等。兩者相互結合,可滿足各種工業現場應用場景。 其次,從硬件架構上,因為一般自帶了很多常用外設接口,而且以單顆芯片的應用為主,所以FPGA開發板對互聯和擴展的要求不高,有時會在板上有多顆FPGA芯片互連,但通常不考慮多板之間的高速連接需求,畢竟太大規模的邏輯設計要用到多顆FPGA,運行性能和調試能力會受很大影響。 在軟件方面,用戶主要依靠FPGA廠商提供的一體化軟件(如Xilinx公司的Vivado,Intel公司的Quartus,Lattice公司的Diamond等)來實現FPGA工程的綜合及布局布線。當然,也有一些實力技術雄厚的第三方廠商提供了不錯的綜合工具(如Synplify, Precision等),先由設計源代碼得到網表,再交由原廠軟件進行布局布線。但以上這些工具都不支持多片FPGA場景,因此FPGA開發板用于超過單片FPGA容量的芯片設計或IP驗證時,都只能由用戶自己手工做設計分割,這需要解決很多時鐘、資源、性能、調試的問題,對工程師要求高,投入時間多。 從市面上的FPGA開發板銷售情況來看,目前一些國產廠商占有的份額也很高。他們提供的開發板往往配置了中低端的FPGA芯片(包括有國產及進口的),并自行設計/制造PCB板。配套豐富的學習資料,同時在板上集成了常用的接口模塊,如Flash、HDMI、DDR4,PCIe等;加之這些開發板的售價并不昂貴,一般從幾百元到幾千元人民幣不等,適合大專院校和自學的人群購買使用。
FPGA原型平臺
隨著目前集成電路的不斷發展,設計規模的大型化,單顆FPGA板在容量上就顯得捉襟見肘,已經無法滿足設計需求。首先,以目前國內頭部的CPU、GPU設計公司的設計規模,單顆IC芯片的設計體量,需要占用到幾十顆Xilinx VU440級別FPGA的情況,已屢見不鮮。 在這種背景之下,FPGA系統供應廠商開始著手研究多顆FPGA的系統解決方案。其中就包括在單塊的PCB板上裝配多顆FPGA及多個FPGA系統之間進行互聯。 經過一段時間的發展和探索,FPGA原型驗證平臺產品應運而生。之所以經常稱之為“平臺”或“系統”,首先在硬件結構上比單板形式的FPGA開發板復雜很多,其次FPGA芯片廠商提供的軟件工具無法支持這么復雜的多片FPGA實現,需要配套專業的FPGA原型實現相關軟件工具。 一套優秀的FPGA原型驗證系統,應該具有以下產品特性:
基于模塊化的設計/可伸縮的驗證平臺規模
在保證一定的高速仿真性能的前提下提供驗證完整性
提供從軟件早期開發到系統級驗證的解決方案
提供從綜合、自動模塊分割 、布局布線、FPGA bit產生、下載,以及在線/離線Debug的整套流程
提供豐富的調測手段,幫助用戶快速定位問題,易于Bring Up
提供豐富的接口子板和外部真實設備相連
提供軟件接口與外部軟件通訊
提供豐富的IO接口,以及高速Serdes接口用于partition互連以及外設子卡的互連
如本文開頭所述,復雜算法、CPU/GPU類型芯片的驗證和實現都是適合在FPGA原型驗證系統上進行的。不過,由于芯片規模的日益大型化,單顆的系統往往已經無法容納下一個大型的IP/SoC了。 這個時候我們需要把多個原型系統進行互聯,把分割后的邏輯下載到所有的系統當中,這樣來進行整個設計的驗證和調試工作。那么以目前的Partition互聯技術手段看,主要分為單端IO、差分LVDS IO和高速Serdes IO (如Xilinx的GTH )互聯的方式。 Serdes IO互聯可以達到很高的帶寬(Bandwidth),但根據收發器內部信號寬度和傳輸協議的不同,加上串并轉換和Encoder/Decoder的時間開銷,會產生幾十到幾百ns的額外延遲,可能影響分布于多顆FPGA芯片上的系統原型性能;而單端IO的延遲一般就在ns級別,故其分割后的系統性能會更高,但這對并行單端IO信號連接器的設計提出了很高的要求,目前包括Synopsys以及芯華章少數FPGA原型平臺能夠達到1.4Gbps的較高速率。 在實際原型系統的核心設計分割中,單端IO連接器用得更多一些,在連接獨立的高速外設和接口時,Serdes高速連接器用得更多一些。這類高速互聯接口及其線纜的成本都很高,但對于原型系統的設計目的來說是必須的,這也是為什么FPGA原型系統的價格要遠遠高于FPGA開發板的原因之一。 說完了硬件方面,再看軟件方面,如果用到了多顆的FPGA系統,那么對于大設計的分割問題變得十分重要。對于一個大設計,軟件可以自動或者手動的把邏輯分割到幾片FPGA當中,根據連線資源情況插入TDM(時分復用)的IP,再對分割后的邏輯進行時序優化;軟件能夠保留頂層的端口信號名稱。從調試方面考慮,需要探及設計的內部的信號。 隨著設計規模增大,除了軟件運行速度之外,綜合階段進行Timing Driven Synthesis優化的動作,以實現冗余邏輯的優化和時序上的提升,因此軟件的算法優化顯得十分重要。從性能指標上看,主要是分割的功能正確性、邏輯和時序的優化度及Timing-driven減少hop提升編譯性能。利用分布式技術,減少設計規模對CPU時間和內存造成的影響。 目前,各大原型驗證平臺供應商都在軟件上加大了投入。一款擁有出色的FPGA原型軟件工具應具備以下的特點:
綜合時進行專門的時序驅動優化
綜合階段充分利用并行化手段降低設計規模對綜合時間造成的影響,盡量優化網表的時序和面積
算法優化、能夠實現大數量的FPGA自動分割且配置簡便綜合工具與分割工具配合保留內部信號名稱,并與綜合工具配合映射信號名稱,支持RTL源代碼調試
自動產生時鐘并處理時鐘的分割,對于數片至數十片FPGA的大型設計實現很重要
最大程度保留原來代碼設計層次,提高增量編譯度和可調試性,分割前后功能保持一致
服務器軟件時內存資源控制得當
保證分割結果正確的情況下,耗時短
這樣的配套軟件,能夠一體化地完成綜合及分割步驟,將為整個原型驗證系統大大加分。隨著設計規模的日益增長,用戶對軟件的綜合/分割功能十分注重;軟件功能出色,無疑能對硬件系統的銷售產生極大的促進;反之,硬件系統做的很大,軟件的功能跟不上,甚至要依賴外部的綜合或分割工具,無疑為整套系統拖了后腿,無法實現上述的關鍵功能。
總 結
綜上所述,我們再來看一下FPGA開發板、FPGA原型驗證系統之間的對比表格:
圖3FPGA開發板、FPGA原型驗證系統之間的對比表格
下面的圖例便于讀者更容易的理解它們二者之間的關系:
圖4 FPGA開發板和原型系統應用上的交集圖示
從應用場景上看,我們看到,FPGA開發板適合小型設計的手工驗證、特定協議的開發,及在整個系統中起到控制的作用等等;而FPGA原型系統適合中大型設計和復雜算法的自動化驗證及連接真實外圍硬件的高性能系統驗證/調試,軟硬件協同調試等等。在IP驗證方面,FPGA開發板和原型系統有一定的重合度。 以上就是關于FPGA開發板和原型驗證系統這2種不同的數字設計驗證平臺的對比介紹,謝謝!
-
FPGA芯片
+關注
關注
3文章
246瀏覽量
39799 -
FPGA開發板
+關注
關注
10文章
122瀏覽量
31506
發布評論請先 登錄
相關推薦
評論