FPGA 原型設(shè)計人員艱苦努力所得的明顯回報就是 ASIC 設(shè)計可以及時而毫無問題地完成產(chǎn)品定案(tape-out)。不過,原型設(shè)計還有一點(diǎn)日益重要的優(yōu)勢,即 ASIC 或 SoC 中嵌入的軟件在項(xiàng)目開發(fā)的早期階段便可與實(shí)際速度硬件進(jìn)行完美集成。 為什么軟件團(tuán)隊(duì)要關(guān)注 FPGA 原型設(shè)計問題 獨(dú)立的 EDA 分析師 Gary Smith 指出(見圖 1),SoC 采用的CMOS工藝節(jié)點(diǎn)日益小型化,而且技術(shù)越來越復(fù)雜,因此軟件組成部分已成為產(chǎn)品特色和開發(fā)焦點(diǎn)所在。進(jìn)入市場的最新消費(fèi)類器件多采用復(fù)雜的 SoC,其中包括眾多嵌入式處理器和幾十萬甚至數(shù)百萬行代碼。Apple iPhone 就是一個很好的例子,它至少包含 3 個 ARM 處理器。加速產(chǎn)品上市進(jìn)程對產(chǎn)品推出至關(guān)重要,在此情況下,怎么才能在 SoC 環(huán)境中進(jìn)行軟件驗(yàn)證呢? SoC 開發(fā)團(tuán)隊(duì)越來越多地開始采用 FPGA 原型設(shè)計作為解決方案來進(jìn)行驗(yàn)證并及時推出各種類型的產(chǎn)品。 為什么選擇原型設(shè)計技術(shù)? 集成操作系統(tǒng)、應(yīng)用和硬件非常復(fù)雜,會出現(xiàn)許多不可預(yù)見的軟件問題。實(shí)際速度運(yùn)行的 FPGA 原型設(shè)計能提供一個獨(dú)特的環(huán)境,在關(guān)鍵的集成階段節(jié)約數(shù)月之久的高強(qiáng)度軟件測試工作。如果這款原型設(shè)計還要采用其它軟件,要進(jìn)行其它實(shí)驗(yàn)室測試,那么原型設(shè)計的優(yōu)勢會進(jìn)一步體現(xiàn)出來,即便對客戶接受度測試來說都是有益的。Synplicity 推出的 HAPS (高速 ASIC 原型設(shè)計系統(tǒng))等現(xiàn)成的高質(zhì)量 FPGA原型驗(yàn)證板基本解決了投放產(chǎn)品的時間問題,剩下的就是要考慮成本問題: 增加板的用量將找出更多錯誤 軟件的潛在用戶數(shù)量巨大,他們會隨心所欲使用軟件,難免不造成操作系統(tǒng)鎖死,應(yīng)用崩潰,或者做些軟件工程師根本想象不到的事情。 何時進(jìn)行原型設(shè)計 在 SoC 設(shè)計完成之前就進(jìn)行調(diào)試顯然是非常有利的。圖 1 顯示了大型 ASIC 項(xiàng)目各階段中通常要特別注意的模擬、仿真和原型設(shè)計問題。我們可以看到,F(xiàn)PGA 原型設(shè)計最常用,因?yàn)轫?xiàng)目在集成階段需要確保高速和高容量。 我們不妨設(shè)想這樣一種情況,軟件集成問題的最佳解決方案需要修改硬件。舉例來說,需要將占用大量周期的DSP算法提取出來,并用協(xié)處理器或定制的器件邏輯來代替。如果 SoC 已基本完成了產(chǎn)品定案,甚至已完成設(shè)計推出了樣片才發(fā)現(xiàn)這一問題,那么不管修改錯誤對最終產(chǎn)品有什么好處,我們也不太可能考慮對器件進(jìn)行必要的調(diào)整了。事實(shí)上,早期進(jìn)行 FPGA 原型設(shè)計有助于及時進(jìn)行設(shè)計調(diào)整。FPGA 原型設(shè)計技術(shù)使用越來越多,其原因之一就是在項(xiàng)目早期階段可判斷軟/硬件的問題并權(quán)衡利弊(也請參見圖 1)。 原型設(shè)計面臨的挑戰(zhàn) 實(shí)施 ASIC 的 FPGA 原型需要解決多種開發(fā)難題。令人驚訝的是,設(shè)計硬件本身并不是最具挑戰(zhàn)性的問題。事實(shí)上,許多廠商都提供為滿足特定目的而設(shè)計的 ASIC 原型板(如HAPS)。真正的挑戰(zhàn)則在于如何實(shí)施 FPGA 設(shè)計方案。 分區(qū)和 I/O 處理 盡管目前最大的 FPGA 每個都能處理 200 多萬個 ASIC 門,但眾多 ASIC 設(shè)計的要求要大得多。這就要求對 SoC 的關(guān)鍵部分進(jìn)行原型設(shè)計,或者設(shè)計方案必須在多個 FPGA上進(jìn)行分區(qū)。但這會造成一些有趣的障礙,因?yàn)槲覀兊恼w目標(biāo)是進(jìn)行驗(yàn)證,因此分區(qū)時必須盡可能減少對 ASIC RTL 的變動。設(shè)計方案分區(qū)會造成人為的分界線,如果設(shè)計方案的內(nèi)部總線或數(shù)據(jù)路徑較寬,則會造成所需 I/O 引腳的數(shù)量爆炸性增長,進(jìn)而引起 FPGA 引腳不足。即便采用最新型的 FPGA,每個 FPGA支持 1000個以上的I/O 引腳,也有不夠用的時候。 我們可在同一 FPGA 引腳上先對多個信號進(jìn)行多路復(fù)用,然后再在目標(biāo) FPGA 上進(jìn)行多路分解工作,從而生成更多 I/O 資源。即便如此,我們還是不希望變動 ASIC RTL,因此要進(jìn)行自動引腳多路復(fù)用。這肯定會產(chǎn)品性能造成一定的影響;但 FPGA 的I/O足夠快,即便采用多路復(fù)用技術(shù),仍能提供足夠高的性能,確保復(fù)雜的嵌入式軟件驗(yàn)證工作能夠以實(shí)際速度進(jìn)行。 不改變 RTL 就修改拓?fù)浣Y(jié)構(gòu) 憑借設(shè)計人員的智慧,通過一定的手動干預(yù),我們可在一個以上的 FPGA 中復(fù)制子模塊,從而減少 I/O 限制,降低互連需求。通過對 RTL 做進(jìn)一步的專門化操作,如對低級門進(jìn)行位切片(bit-slicing)或壓縮(zipper)更多復(fù)雜模塊(這些都不需要變動 RTL),可進(jìn)一步降低 FPGA I/O 需求。 ASIC 時鐘和 FPGA 時鐘不一樣將 SoC 設(shè)計移植到 FPGA 上時,設(shè)計團(tuán)隊(duì)還會面臨更多問題,因?yàn)樵?RTL 的作者根本不可能考慮到 FPGA 問題。RTL 中不利于 FPGA 的因素包括 ASIC 元件例化和 RAM BIST 等,不過最重要的問題在于 IP 和時鐘復(fù)雜性。為降低功耗,F(xiàn)PGA 會盡量支持ASIC 常用的門控時鐘(gated-clock)設(shè)計風(fēng)格。時鐘門信號必須轉(zhuǎn)化為 FPGA 硬件中的時鐘啟用(clock enables)信號。手動進(jìn)行這種轉(zhuǎn)換工作量太大并帶來新的問題。一些合成工具可以自動進(jìn)行門—時鐘轉(zhuǎn)換,甚至能支持復(fù)雜的時鐘生成電路。圖 3 顯示了 Synplicity 的 Synplify Premier 中自動化時鐘轉(zhuǎn)化的實(shí)例。 處理IP ARM 處理器等大型 IP 塊可作為完整的芯片購買,直接接口于其它原型設(shè)計硬件。唯一要求就是硬件必須足夠靈活,以滿足ARM Coretile 等多種支持 IP 功能的子卡需要。但是,存儲器、FIFO、乘法器和加法器等小型常見功能太多了,難以通過這種方式一一滿足。適當(dāng)?shù)?EDA 軟件能自動將這些功能轉(zhuǎn)化為 FPGA 內(nèi)部兼容型實(shí)施方案,或者通過簡單的方式將其隔離到FPGA外部實(shí)現(xiàn)。 采用FPGA板后的工作 設(shè)計移植到 FPGA上并以實(shí)際速度運(yùn)行后,又會出現(xiàn)另一個問題,即如何高效完成調(diào)試工作。嵌入式或外置的邏輯分析器可解決此問題,但這些工具通常工作于門級層面。因此,跟蹤返回至 RTL級(即最初進(jìn)行設(shè)計的層面)的信號會花費(fèi)大量時間,畢竟這需要在合成步驟中逆向工作。最好用能無縫保持門級和 RTL 級層面之間軟鏈接(symbolic link)的工具進(jìn)行調(diào)試。 Synplicity 開發(fā)了稱作 TotalRecall Full Visibility Technology 的新技術(shù),能自動從原型設(shè)計中提取完整的測試實(shí)例,其中包括導(dǎo)致故障或斷言失敗的所有情況,可以了解軟件調(diào)試觸發(fā)器的外部輸入問題等。捕獲到的測試實(shí)例可隨時在正常 RTL 模擬器中重放并分析。該功能使 FPGA 原型設(shè)計能擴(kuò)展到更廣泛的驗(yàn)證環(huán)境中,現(xiàn)在已經(jīng)在Synplicity 的 Identify Pro 產(chǎn)品中實(shí)現(xiàn)。 FPGA 原型設(shè)計技術(shù)的發(fā)展趨勢 以實(shí)際速度運(yùn)行的 FPGA 原型為復(fù)雜的嵌入式系統(tǒng)和 SoC 的驗(yàn)證工作提供了強(qiáng)有效的解決方案。如前所述,目前,我們可以獲得解決本領(lǐng)域中一直面臨的各種挑戰(zhàn)的 EDA 工具和現(xiàn)成的原型板。即便如此,還有待全面集成原型設(shè)計硬件和工具組件。這樣我們就能縮短原型設(shè)計和重復(fù)修改的時間。隨著功能的不斷發(fā)展,Synplicity 的 Confirma平臺等以實(shí)際速度運(yùn)行的驗(yàn)證系統(tǒng)將取代其它傳統(tǒng)驗(yàn)證方法,成為所有 SoC 開發(fā)工作中不可或缺的一部分。 作者:Synplicity 公司歐洲業(yè)務(wù)開發(fā)總監(jiān) Doug Amos,2007-10 |