【導讀】該技術(shù)專家10多年以來,一直堅定地支持基于FPGA的硬件仿真系統(tǒng),并在2013年一直不遺余力地宣傳其優(yōu)勢。自那以后,已成為精通各類硬件仿真專業(yè)知識的顧問,但現(xiàn)在來評論FPGA硬件仿真系統(tǒng)與定制硅硬件仿真系統(tǒng)之間的區(qū)別雖然有些姍姍來遲,但是還是很有必要的。
商用FPGA硬件仿真器與定制硅硬件仿真器之間的根本區(qū)別在于映射被測設(shè)計(DUT)的核心單元。顧名思義,定制硅硬件仿真器是基于定制器件而造,不可用于商業(yè)用途。定制硅硬件仿真器就是采用兩個不同種類當中的一個來實現(xiàn)的。
在第一類中,核心單元是專為硬件仿真應(yīng)用而設(shè)計的定制FPGA,但通用FPGA是個糟糕的選擇。Mentor Graphics提供一種稱為Crystal2的此類器件,并稱之為定制片上硬件仿真器,如圖1。在第二類中,核心單元包括大量簡單的布爾處理器,此類處理器在巨大的內(nèi)存中執(zhí)行設(shè)計數(shù)據(jù)結(jié)構(gòu)存儲。Cadence供應(yīng)商稱之為“基于處理器的硬件仿真器”。很顯然,定制FPGA硬件仿真器與商用FPGA硬件仿真器具有一些相似之處,但仍然具備獨特的功能。
圖1:Mentor Graphiscs Crystal2“定制片上硬件仿真器”。
定制FPGA硬件仿真器
定制FPGA硬件仿真器由法國初創(chuàng)公司MetaSystems(1996年被Mentor Graphics收購)最先開發(fā)并商業(yè)化,采用不同于Xilinx和Altera所提供的獨特FPGA。該硬件仿真器是基于定制硅上仿真器架構(gòu),專為涵蓋整個硬件仿真器(包括可配置單元、局部互連矩陣、嵌入式多端口內(nèi)存、I/O通道、帶探測電路的調(diào)試引擎和時鐘發(fā)生器)的仿真應(yīng)用而設(shè)計。
這種方法使用了三個創(chuàng)新點,每個創(chuàng)新點都可提供獨特的優(yōu)勢:
●可編程單元的內(nèi)部互連網(wǎng)絡(luò);
●定制FPGA的外部互連網(wǎng)絡(luò)和I/O結(jié)構(gòu);
●DUT調(diào)試引擎。
可編程單元的內(nèi)部互連網(wǎng)絡(luò)
可編程單元的互連網(wǎng)絡(luò)包括兩個不同分級層:位于查找表(LUT)及其集群(Cluster)級別的低層;以及更大塊的LUT集群,即所謂的疊塊的高層。
可以用空間類推法來描述低層。假設(shè)所有的LUT都位于球體表面上,任何兩個LUT互連都必須穿過球體中心,則無論兩個LUT位于何處,互連導線的長度始終相同。(圖2)。
圖2:描述低層空間類推法。
[page]
上述類推法延伸到更高層級,LUT集群可以分布在更大球體的表面上,并采用相同的方式互連(圖3)。這基本上是一個重復相同模式的分形圖,從外到內(nèi)或從內(nèi)到外移動。高層通過專利結(jié)構(gòu)互連疊塊,提供類似于低層固有的優(yōu)勢。
圖3:高層級空間類推法。
高層通過微小的交互開關(guān)矩陣(有些類似于片上網(wǎng)絡(luò)(NoC)架構(gòu))互連疊塊,因此使該結(jié)構(gòu)有別于傳統(tǒng)網(wǎng)格互連網(wǎng)絡(luò)。這種方法可以確保布線可預測、快速和無擁塞。
此外,時鐘樹通過導線連接到獨立于數(shù)據(jù)路徑的專用路徑,因而可以預測和重復時序,并通過構(gòu)造防止時序違規(guī)行為,因為數(shù)據(jù)路徑比時鐘路徑更長。不可預測的時序和保持時間違規(guī)行為會破壞商用FPGA的可用性。
與商用FPGA的結(jié)構(gòu)相比,定制方法可以確保時序的確定性和可重復性。該方法消除了布局約束,確保實現(xiàn)簡單的布線和快速的編譯(圖4)。
圖4:商用FPGA與定制的對比。
多層互連網(wǎng)絡(luò)對高容量進行權(quán)衡,現(xiàn)可用于最大的FPGA,并支持快速和無擁塞的FPGA布局和布線(P&R)??梢栽诩s五分鐘內(nèi)對一個定制FPGA進行布局布線。即使將最大FPGA的填充率降低至50%或以下,P&R仍可能需要幾個小時。
毫無疑問,與使用當前市場上最大的商用FPGA相比(例如Xilinx Virtex-7 XC7V2000T),映射10億ASIC等效門設(shè)計將需要更多的定制FPGA器件。實際差異可能會小于通過比較內(nèi)部資源(例如LUT)估算的結(jié)果,因為定制FPGA的利用率接近100%,而商用FPGA則為50%左右。
[page]
以下因素有助于減輕容量差距:內(nèi)置的VirtualWire邏輯(用于I/O數(shù)最大化而不是消耗LUT);內(nèi)置的調(diào)試引擎(節(jié)約留給DUT映射的寶貴的可配置資源);以及一個有效的布線器。
這兩種技術(shù)都受益于在多個PC分配P&R,但定制方法仍然具有優(yōu)勢。在一系列定制FPGA上對10億ASIC等效門設(shè)計進行布局和布線(在大型模擬場進行操作)可能需要30分鐘。在一系列較小的Xilinx Virtex-7上對相同的設(shè)計進行布局和布線將需要幾個小時。
擁有了該技術(shù),定制FPGA硬件仿真器供應(yīng)商可以管控運營,優(yōu)化和定制P&R軟件,而這是商用FPGA硬件仿真器供應(yīng)商無法做到的。因為后者受FPGA廠商支配。
片上硬件仿真器的外部互連網(wǎng)絡(luò)
片上硬件仿真器的外部互連網(wǎng)絡(luò)是基于所謂的VirtualWire技術(shù)。借助VirtualWire,F(xiàn)PGA集合會自動編譯為一個巨大的FPGA,該FPGA不會受到可破壞通過傳統(tǒng)方式互連的一系列等效FPGA的潛在時序問題的影響。該技術(shù)在開發(fā)時僅可用于采用商用FPGA的硬件仿真器?,F(xiàn)在,相同的技術(shù)已嵌入到片上硬件仿真器。
VirtualWire是基于多個再綜合流程(時序、存儲器、互連),此類流程將DUT轉(zhuǎn)換為映射到一系列定制片上硬件仿真器器件的功能等效的設(shè)計。
時序再綜合使用正確性維護轉(zhuǎn)換來重新定時用戶的設(shè)計,通過引入單個高速時鐘來保護其免受不準確的FPGA延遲。此外,還消除了傳統(tǒng)硬件仿真系統(tǒng)的保持時間問題。
存儲器再綜合實現(xiàn)低成本實施各類存儲器(包括寬多端口RAM),無需構(gòu)建定制存儲卡或使用FPGA存儲器。多路復用和存儲器共享支持使用快速且便宜的常見SRAM芯片進行存儲器硬件仿真。
互連再綜合通過在器件固定和有限數(shù)量的I/O管腳上增加傳輸中的I/O信號數(shù),來擴展器件間的通信帶寬,并以最大速度進行連接。最終結(jié)果是,器件利用率顯著提高到約100%,避免擁塞并維護DUT完整性。
在每個I/O管腳增加I/O信號類似于在FPGA原型板上實施I/O數(shù)最大化的方法。
VirtualWire實現(xiàn)更為復雜。該技術(shù):
●通過保證局部時序正確性實現(xiàn)全局時序正確性和系統(tǒng)可擴展性;
●提供為所有觸發(fā)器計時的虛擬時鐘,分配單個同步低偏移時鐘;
●信號布線和調(diào)度受編譯器控制,因為信號必須通過已知數(shù)量的FPGA。
VirtualWire實現(xiàn)還擴展了帶寬,從而可提高FPGA和導線的利用率。多路復用技術(shù)可以擴展各級封裝的互連帶寬,從FPGA間和板間到機箱間,使得分區(qū)更容易。
此外,還提供相同的多路復用技術(shù)來訪問存儲器。通過對數(shù)據(jù)總線進行多路復用,可以使用常見的SRAM芯片構(gòu)建寬存儲器??梢允褂肧RAM芯片實施多端口存儲器??梢栽诓季€和調(diào)度步驟中整合存儲器調(diào)度。
[page]
集成設(shè)計調(diào)試功能
第三個創(chuàng)新涉及定制方法的集成設(shè)計調(diào)試功能。該方法是基于在芯片內(nèi)部實施的實時智能數(shù)據(jù)捕獲和安裝在仿真板上每個芯片旁邊的跟蹤存儲器,可以確保監(jiān)控DUT的所有單元。這是通過構(gòu)造而非編譯內(nèi)部探頭實現(xiàn)的。并且還避免了硬件仿真速度下降。
通過將所有LUT和嵌入式存儲器輸出連接到硅中片上信號探測電路實現(xiàn)全面監(jiān)控,無需在編譯時進行布線。探測電路依次將探測數(shù)據(jù)定向到快速內(nèi)存芯片庫,該庫耦合到安裝在仿真板上的定制片上硬件仿真器器件。這樣就可預留布線資源來構(gòu)建設(shè)計圖片,提高可重新配置硬件的效率(圖5)。
圖5:預留布線資源來構(gòu)建設(shè)計圖片,提高可重新配置硬件的效率。
通過集成觸發(fā)機制和帶圖形路徑瀏覽器的內(nèi)置邏輯分析儀來增強設(shè)計調(diào)試功能,以加快識別難以發(fā)現(xiàn)的缺陷。默認情況下,片上硬件仿真器啟用了觸發(fā)寄存器、強制與解除(force/release)、內(nèi)存/寄存器讀寫以及斷點保存與恢復。
片上硬件仿真器的缺點
遺憾的是,與最大的商用FPGA相比,定制方法也有缺點,因為定制芯片的容量密度較低。一個缺點是,要映射任何給定的設(shè)計尺寸,硬件仿真器將需要更多的FPGA,從而導致物理尺寸更大、重量更重。
粗略地講,與具有相同設(shè)計容量的商用FPGA硬件仿真器相比,尺寸大一個數(shù)量級。重量約重5倍。功耗約高4倍以上,雖然比例較低。
商用FPGA硬件仿真器的原始時鐘速度更快。據(jù)公開數(shù)據(jù)顯示,似乎比片上硬件仿真器快兩倍。同樣,這源于兩種芯片的容量差異。事實上,具有更大容量的現(xiàn)成FPGA可以容納設(shè)計的更大部分,并支持更少的器件以適應(yīng)整個設(shè)計。最終結(jié)果是,互連導線更短,傳播延遲更快。
但是,若要利用這種功能,則耗時的手動分區(qū)始終是必要的。如果沒有優(yōu)化分區(qū)和消除跳距——即組合導線跨越多個FPGA——那么在商用FPGA硬件仿真器中,仿真速度可能會下降。原始速度是一回事。真實環(huán)境中的實際性能/帶寬則是另一回事。