你的位置:首頁(yè) > 互連技術(shù) > 正文

特約技術(shù)專家:FPGA仿真器與定制硅仿真器的差異化

發(fā)布時(shí)間:2015-01-21 來(lái)源:LauroRizzatti 責(zé)任編輯:sherryyu

【導(dǎo)讀】該技術(shù)專家10多年以來(lái),一直堅(jiān)定地支持基于FPGA的硬件仿真系統(tǒng),并在2013年一直不遺余力地宣傳其優(yōu)勢(shì)。自那以后,已成為精通各類硬件仿真專業(yè)知識(shí)的顧問(wèn),但現(xiàn)在來(lái)評(píng)論FPGA硬件仿真系統(tǒng)與定制硅硬件仿真系統(tǒng)之間的區(qū)別雖然有些姍姍來(lái)遲,但是還是很有必要的。
 
商用FPGA硬件仿真器與定制硅硬件仿真器之間的根本區(qū)別在于映射被測(cè)設(shè)計(jì)(DUT)的核心單元。顧名思義,定制硅硬件仿真器是基于定制器件而造,不可用于商業(yè)用途。定制硅硬件仿真器就是采用兩個(gè)不同種類當(dāng)中的一個(gè)來(lái)實(shí)現(xiàn)的。
 
在第一類中,核心單元是專為硬件仿真應(yīng)用而設(shè)計(jì)的定制FPGA,但通用FPGA是個(gè)糟糕的選擇。Mentor Graphics提供一種稱為Crystal2的此類器件,并稱之為定制片上硬件仿真器,如圖1。在第二類中,核心單元包括大量簡(jiǎn)單的布爾處理器,此類處理器在巨大的內(nèi)存中執(zhí)行設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)。Cadence供應(yīng)商稱之為“基于處理器的硬件仿真器”。很顯然,定制FPGA硬件仿真器與商用FPGA硬件仿真器具有一些相似之處,但仍然具備獨(dú)特的功能。
Mentor Graphiscs Crystal2“定制片上硬件仿真器”。
圖1:Mentor Graphiscs Crystal2“定制片上硬件仿真器”。
 
定制FPGA硬件仿真器
 
定制FPGA硬件仿真器由法國(guó)初創(chuàng)公司MetaSystems(1996年被Mentor Graphics收購(gòu))最先開(kāi)發(fā)并商業(yè)化,采用不同于Xilinx和Altera所提供的獨(dú)特FPGA。該硬件仿真器是基于定制硅上仿真器架構(gòu),專為涵蓋整個(gè)硬件仿真器(包括可配置單元、局部互連矩陣、嵌入式多端口內(nèi)存、I/O通道、帶探測(cè)電路的調(diào)試引擎和時(shí)鐘發(fā)生器)的仿真應(yīng)用而設(shè)計(jì)。
 
這種方法使用了三個(gè)創(chuàng)新點(diǎn),每個(gè)創(chuàng)新點(diǎn)都可提供獨(dú)特的優(yōu)勢(shì):
 
●可編程單元的內(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ò)包括兩個(gè)不同分級(jí)層:位于查找表(LUT)及其集群(Cluster)級(jí)別的低層;以及更大塊的LUT集群,即所謂的疊塊的高層。
 
可以用空間類推法來(lái)描述低層。假設(shè)所有的LUT都位于球體表面上,任何兩個(gè)LUT互連都必須穿過(guò)球體中心,則無(wú)論兩個(gè)LUT位于何處,互連導(dǎo)線的長(zhǎng)度始終相同。(圖2)。
描述低層空間類推法
圖2:描述低層空間類推法。
[page]

上述類推法延伸到更高層級(jí),LUT集群可以分布在更大球體的表面上,并采用相同的方式互連(圖3)。這基本上是一個(gè)重復(fù)相同模式的分形圖,從外到內(nèi)或從內(nèi)到外移動(dòng)。高層通過(guò)專利結(jié)構(gòu)互連疊塊,提供類似于低層固有的優(yōu)勢(shì)。
高層級(jí)空間類推法
圖3:高層級(jí)空間類推法。
 
高層通過(guò)微小的交互開(kāi)關(guān)矩陣(有些類似于片上網(wǎng)絡(luò)(NoC)架構(gòu))互連疊塊,因此使該結(jié)構(gòu)有別于傳統(tǒng)網(wǎng)格互連網(wǎng)絡(luò)。這種方法可以確保布線可預(yù)測(cè)、快速和無(wú)擁塞。
 
此外,時(shí)鐘樹(shù)通過(guò)導(dǎo)線連接到獨(dú)立于數(shù)據(jù)路徑的專用路徑,因而可以預(yù)測(cè)和重復(fù)時(shí)序,并通過(guò)構(gòu)造防止時(shí)序違規(guī)行為,因?yàn)閿?shù)據(jù)路徑比時(shí)鐘路徑更長(zhǎng)。不可預(yù)測(cè)的時(shí)序和保持時(shí)間違規(guī)行為會(huì)破壞商用FPGA的可用性。
 
與商用FPGA的結(jié)構(gòu)相比,定制方法可以確保時(shí)序的確定性和可重復(fù)性。該方法消除了布局約束,確保實(shí)現(xiàn)簡(jiǎn)單的布線和快速的編譯(圖4)。
商用FPGA與定制的對(duì)比
圖4:商用FPGA與定制的對(duì)比。
 
多層互連網(wǎng)絡(luò)對(duì)高容量進(jìn)行權(quán)衡,現(xiàn)可用于最大的FPGA,并支持快速和無(wú)擁塞的FPGA布局和布線(P&R)。可以在約五分鐘內(nèi)對(duì)一個(gè)定制FPGA進(jìn)行布局布線。即使將最大FPGA的填充率降低至50%或以下,P&R仍可能需要幾個(gè)小時(shí)。
 
毫無(wú)疑問(wèn),與使用當(dāng)前市場(chǎng)上最大的商用FPGA相比(例如Xilinx Virtex-7 XC7V2000T),映射10億ASIC等效門(mén)設(shè)計(jì)將需要更多的定制FPGA器件。實(shí)際差異可能會(huì)小于通過(guò)比較內(nèi)部資源(例如LUT)估算的結(jié)果,因?yàn)槎ㄖ艶PGA的利用率接近100%,而商用FPGA則為50%左右。
[page]

以下因素有助于減輕容量差距:內(nèi)置的VirtualWire邏輯(用于I/O數(shù)最大化而不是消耗LUT);內(nèi)置的調(diào)試引擎(節(jié)約留給DUT映射的寶貴的可配置資源);以及一個(gè)有效的布線器。
 
這兩種技術(shù)都受益于在多個(gè)PC分配P&R,但定制方法仍然具有優(yōu)勢(shì)。在一系列定制FPGA上對(duì)10億ASIC等效門(mén)設(shè)計(jì)進(jìn)行布局和布線(在大型模擬場(chǎng)進(jìn)行操作)可能需要30分鐘。在一系列較小的Xilinx Virtex-7上對(duì)相同的設(shè)計(jì)進(jìn)行布局和布線將需要幾個(gè)小時(shí)。
 
擁有了該技術(shù),定制FPGA硬件仿真器供應(yīng)商可以管控運(yùn)營(yíng),優(yōu)化和定制P&R軟件,而這是商用FPGA硬件仿真器供應(yīng)商無(wú)法做到的。因?yàn)楹笳呤蹻PGA廠商支配。
 
片上硬件仿真器的外部互連網(wǎng)絡(luò)
 
片上硬件仿真器的外部互連網(wǎng)絡(luò)是基于所謂的VirtualWire技術(shù)。借助VirtualWire,F(xiàn)PGA集合會(huì)自動(dòng)編譯為一個(gè)巨大的FPGA,該FPGA不會(huì)受到可破壞通過(guò)傳統(tǒng)方式互連的一系列等效FPGA的潛在時(shí)序問(wèn)題的影響。該技術(shù)在開(kāi)發(fā)時(shí)僅可用于采用商用FPGA的硬件仿真器?,F(xiàn)在,相同的技術(shù)已嵌入到片上硬件仿真器。
 
VirtualWire是基于多個(gè)再綜合流程(時(shí)序、存儲(chǔ)器、互連),此類流程將DUT轉(zhuǎn)換為映射到一系列定制片上硬件仿真器器件的功能等效的設(shè)計(jì)。
 
時(shí)序再綜合使用正確性維護(hù)轉(zhuǎn)換來(lái)重新定時(shí)用戶的設(shè)計(jì),通過(guò)引入單個(gè)高速時(shí)鐘來(lái)保護(hù)其免受不準(zhǔn)確的FPGA延遲。此外,還消除了傳統(tǒng)硬件仿真系統(tǒng)的保持時(shí)間問(wèn)題。
 
存儲(chǔ)器再綜合實(shí)現(xiàn)低成本實(shí)施各類存儲(chǔ)器(包括寬多端口RAM),無(wú)需構(gòu)建定制存儲(chǔ)卡或使用FPGA存儲(chǔ)器。多路復(fù)用和存儲(chǔ)器共享支持使用快速且便宜的常見(jiàn)SRAM芯片進(jìn)行存儲(chǔ)器硬件仿真。
 
互連再綜合通過(guò)在器件固定和有限數(shù)量的I/O管腳上增加傳輸中的I/O信號(hào)數(shù),來(lái)擴(kuò)展器件間的通信帶寬,并以最大速度進(jìn)行連接。最終結(jié)果是,器件利用率顯著提高到約100%,避免擁塞并維護(hù)DUT完整性。
 
在每個(gè)I/O管腳增加I/O信號(hào)類似于在FPGA原型板上實(shí)施I/O數(shù)最大化的方法。
 
VirtualWire實(shí)現(xiàn)更為復(fù)雜。該技術(shù):
 
●通過(guò)保證局部時(shí)序正確性實(shí)現(xiàn)全局時(shí)序正確性和系統(tǒng)可擴(kuò)展性;
 
●提供為所有觸發(fā)器計(jì)時(shí)的虛擬時(shí)鐘,分配單個(gè)同步低偏移時(shí)鐘;
 
●信號(hào)布線和調(diào)度受編譯器控制,因?yàn)樾盘?hào)必須通過(guò)已知數(shù)量的FPGA。
 
VirtualWire實(shí)現(xiàn)還擴(kuò)展了帶寬,從而可提高FPGA和導(dǎo)線的利用率。多路復(fù)用技術(shù)可以擴(kuò)展各級(jí)封裝的互連帶寬,從FPGA間和板間到機(jī)箱間,使得分區(qū)更容易。
 
此外,還提供相同的多路復(fù)用技術(shù)來(lái)訪問(wèn)存儲(chǔ)器。通過(guò)對(duì)數(shù)據(jù)總線進(jìn)行多路復(fù)用,可以使用常見(jiàn)的SRAM芯片構(gòu)建寬存儲(chǔ)器??梢允褂肧RAM芯片實(shí)施多端口存儲(chǔ)器??梢栽诓季€和調(diào)度步驟中整合存儲(chǔ)器調(diào)度。
 
[page]
集成設(shè)計(jì)調(diào)試功能
 
第三個(gè)創(chuàng)新涉及定制方法的集成設(shè)計(jì)調(diào)試功能。該方法是基于在芯片內(nèi)部實(shí)施的實(shí)時(shí)智能數(shù)據(jù)捕獲和安裝在仿真板上每個(gè)芯片旁邊的跟蹤存儲(chǔ)器,可以確保監(jiān)控DUT的所有單元。這是通過(guò)構(gòu)造而非編譯內(nèi)部探頭實(shí)現(xiàn)的。并且還避免了硬件仿真速度下降。
 
通過(guò)將所有LUT和嵌入式存儲(chǔ)器輸出連接到硅中片上信號(hào)探測(cè)電路實(shí)現(xiàn)全面監(jiān)控,無(wú)需在編譯時(shí)進(jìn)行布線。探測(cè)電路依次將探測(cè)數(shù)據(jù)定向到快速內(nèi)存芯片庫(kù),該庫(kù)耦合到安裝在仿真板上的定制片上硬件仿真器器件。這樣就可預(yù)留布線資源來(lái)構(gòu)建設(shè)計(jì)圖片,提高可重新配置硬件的效率(圖5)。
預(yù)留布線資源來(lái)構(gòu)建設(shè)計(jì)圖片,提高可重新配置硬件的效率
圖5:預(yù)留布線資源來(lái)構(gòu)建設(shè)計(jì)圖片,提高可重新配置硬件的效率。
 
通過(guò)集成觸發(fā)機(jī)制和帶圖形路徑瀏覽器的內(nèi)置邏輯分析儀來(lái)增強(qiáng)設(shè)計(jì)調(diào)試功能,以加快識(shí)別難以發(fā)現(xiàn)的缺陷。默認(rèn)情況下,片上硬件仿真器啟用了觸發(fā)寄存器、強(qiáng)制與解除(force/release)、內(nèi)存/寄存器讀寫(xiě)以及斷點(diǎn)保存與恢復(fù)。

片上硬件仿真器的缺點(diǎn)
 
遺憾的是,與最大的商用FPGA相比,定制方法也有缺點(diǎn),因?yàn)槎ㄖ菩酒娜萘棵芏容^低。一個(gè)缺點(diǎn)是,要映射任何給定的設(shè)計(jì)尺寸,硬件仿真器將需要更多的FPGA,從而導(dǎo)致物理尺寸更大、重量更重。
 
粗略地講,與具有相同設(shè)計(jì)容量的商用FPGA硬件仿真器相比,尺寸大一個(gè)數(shù)量級(jí)。重量約重5倍。功耗約高4倍以上,雖然比例較低。
 
商用FPGA硬件仿真器的原始時(shí)鐘速度更快。據(jù)公開(kāi)數(shù)據(jù)顯示,似乎比片上硬件仿真器快兩倍。同樣,這源于兩種芯片的容量差異。事實(shí)上,具有更大容量的現(xiàn)成FPGA可以容納設(shè)計(jì)的更大部分,并支持更少的器件以適應(yīng)整個(gè)設(shè)計(jì)。最終結(jié)果是,互連導(dǎo)線更短,傳播延遲更快。
 
但是,若要利用這種功能,則耗時(shí)的手動(dòng)分區(qū)始終是必要的。如果沒(méi)有優(yōu)化分區(qū)和消除跳距——即組合導(dǎo)線跨越多個(gè)FPGA——那么在商用FPGA硬件仿真器中,仿真速度可能會(huì)下降。原始速度是一回事。真實(shí)環(huán)境中的實(shí)際性能/帶寬則是另一回事。
 
要采購(gòu)仿真器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉