久違的科普整理欄目回來了,去年年底結(jié)束的ICCAD上,本土的EDA企業(yè)數(shù)量又增多了。這一期,我們就來聊一聊EDA相關(guān)的FPGA原型驗(yàn)證。
如果大家有什么想了解的內(nèi)容,可以在后臺(tái)留言,我們會(huì)盡力去整理、編撰相應(yīng)的短文,與大家分享獲得的知識(shí)點(diǎn)。
什么是FPGA原型驗(yàn)證?
EDA工具的使用主要分為設(shè)計(jì)、驗(yàn)證和制造三大類。驗(yàn)證工作貫穿整個(gè)芯片設(shè)計(jì)流程,可以說芯片的驗(yàn)證階段占據(jù)了整個(gè)芯片開發(fā)的大部分時(shí)間。從芯片需求定義、功能設(shè)計(jì)開發(fā)到物理實(shí)現(xiàn)制造,每個(gè)環(huán)節(jié)都需要進(jìn)行大量的驗(yàn)證。
大規(guī)模集成電路設(shè)計(jì)復(fù)雜性的提升,使芯片驗(yàn)證面臨資金與時(shí)間的巨大挑戰(zhàn)。早期開發(fā)者想驗(yàn)證芯片的設(shè)計(jì)是否符合預(yù)設(shè),只有等待漫長的模擬結(jié)果,或是等待流片成果。時(shí)間成本和經(jīng)濟(jì)成本都較高。
現(xiàn)如今驗(yàn)證方法也越來越多,例如:邏輯仿真(功能驗(yàn)證),形式驗(yàn)證,原型驗(yàn)證。功能驗(yàn)證基于軟件,驗(yàn)證成本較低,驗(yàn)證環(huán)境方便,但性能較差;形式驗(yàn)證為靜態(tài)驗(yàn)證方式,但不可仿真DUT的一些動(dòng)態(tài)行為。
而開發(fā)者即可通過用FPGA板拼湊出有效的流程來對設(shè)計(jì)進(jìn)行驗(yàn)證,F(xiàn)PGA原型驗(yàn)證這一解決方案就此應(yīng)運(yùn)而生。
FPGA原型設(shè)計(jì)是一種成熟的技術(shù),用于通過將RTL移植到現(xiàn)場可編程門陣列(FPGA)來驗(yàn)證專門應(yīng)用的集成電路(ASIC),專用標(biāo)準(zhǔn)產(chǎn)品(ASSP)和片上系統(tǒng)(SoC)的功能和性能。
FPGA原型驗(yàn)證,是SoC基于FPGA的一種驗(yàn)證方式,一般是在前端RTL設(shè)計(jì)和RTL仿真之后。FPGA和ASIC前端代碼都是基于 Verilog HDL 開發(fā)的,所以ASIC代碼理論上是可以在FPGA平臺(tái)上跑起來的,在流片之前,盡可能的去確定芯片功能的正確性的一種驗(yàn)證方式。
FPGA的應(yīng)用范圍廣泛,且基于FPGA可以反復(fù)擦寫,使用的語言和ASIC設(shè)計(jì)都是一樣的,因而被當(dāng)作一種性價(jià)比優(yōu)越的芯片驗(yàn)證基礎(chǔ)設(shè)施。FPGA原型驗(yàn)證已是當(dāng)前原型驗(yàn)證的主流且成熟的芯片驗(yàn)證方法。
FPGA原型在數(shù)字芯片設(shè)計(jì)中非常重要,因?yàn)橄啾扔?a href="http://wenjunhu.com/tags/仿真器/" target="_blank">仿真器,或者加速器等來跑仿真,F(xiàn)PGA的運(yùn)行速度,更接近真實(shí)芯片,可以配合軟件開發(fā)者來進(jìn)行底層軟件的開發(fā)。這一流片前的軟硬件的協(xié)同開發(fā),是其最不可替代的地方。
為什么要做原型驗(yàn)證
1、在流片之前,盡可能還原芯片真實(shí)使用場景,達(dá)到充分驗(yàn)證芯片功能的目的,確保功能模塊的可靠性和穩(wěn)定性,評估其性能;
2、可以縮短芯片類產(chǎn)品上市的時(shí)間,也可以給有需求的客戶演示,開始預(yù)售;
3、原型驗(yàn)證可以降低成本,在芯片原型驗(yàn)證這個(gè)階段,改代碼相對容易很多,可以節(jié)省大量成本;也可以給軟件設(shè)計(jì)人員提供驗(yàn)證平臺(tái)。
原型驗(yàn)證的原則
1、在芯片設(shè)計(jì)中,F(xiàn)PGA所有工作都是為芯片服務(wù)的;
2、在芯片設(shè)計(jì)中,芯片的邏輯規(guī)模遠(yuǎn)大于FPGA設(shè)計(jì)邏輯。一般FPGA原型驗(yàn)證都選用資源邏輯相對多的FPGA芯片,同時(shí)一要對芯片邏輯進(jìn)行正確的分割;
3、在芯片設(shè)計(jì)中,芯片的主頻遠(yuǎn)高于FPGA平臺(tái)上的時(shí)鐘。在原型驗(yàn)證過程中,一定要做的就是降低主頻。
用FPGA對ASIC進(jìn)行原型驗(yàn)證
ASIC→FPGA原型步驟:
1.FPGA選型
需考慮:容量(純邏輯容量,存儲(chǔ)容量,DSP單元容量等)、內(nèi)置IP(時(shí)鐘,存儲(chǔ)控制,CPU等硬核)、接口(普通接口與專用高速接口)、速度(資源占用率在50%左右時(shí)的速度,一般被用來評估原型)
2.做板或者購買原型板
需考慮:信號完整性,電源問題,時(shí)鐘問題,可擴(kuò)展性等
3.將ASIC設(shè)計(jì)轉(zhuǎn)換裝入FPGA
以下內(nèi)容需要修改:
4.調(diào)試啟動(dòng)FPGA原型
5.載入軟件協(xié)同運(yùn)行
6.軟硬件系統(tǒng)驗(yàn)證
FPGA原型驗(yàn)證的優(yōu)缺點(diǎn)
FPGA原型設(shè)計(jì)的優(yōu)點(diǎn)是什么
性能?
FPGA通常建立在最新的制造流程上,以實(shí)現(xiàn)最高的密度和運(yùn)行速度。即使是采用主流工藝構(gòu)建的FPGA,也可以提供高門限等效計(jì)數(shù)(FPGA通常以可容納多少個(gè)標(biāo)準(zhǔn)查找表來衡量)。
超過最大FPGA功能的設(shè)計(jì)有時(shí)在多個(gè)FPGA上進(jìn)行原型設(shè)計(jì)。這使得將源RTL映射到FPGA原型環(huán)境變得更加困難,并且可能會(huì)降低原型的性能。?
成本?
FPGA是批量生產(chǎn)的芯片,具有競爭力的價(jià)格。許多公司將它們集成到現(xiàn)成(OTS)原型板上,盡管一些公司更喜歡建立自己的原型印刷電路板(PCB) 。?
基礎(chǔ)設(shè)施?
兩家主要FPGA供應(yīng)商(原型設(shè)計(jì)市場領(lǐng)導(dǎo)者Xilinx及其競爭對手Altera)都提供了廣泛的工具來支持他們的產(chǎn)品。他們還與主要的EDA供應(yīng)商建立了聯(lián)盟,這些供應(yīng)商為軟件套件提供了增強(qiáng)的FPGA原型設(shè)計(jì)。?
其他OTS主板供應(yīng)商也與這些和其他工具供應(yīng)商以及他們自己的軟件有合作關(guān)系。?
可移植性?
FPGA板可以在與最終SoC相同的嘈雜環(huán)境中進(jìn)行測試。這對于打算用于便攜式消費(fèi)設(shè)備以及工業(yè),通信基礎(chǔ)設(shè)施,醫(yī)療和軍事/航空航天市場的產(chǎn)品有益。?
可用性
FPGA原型的成本相對較低意味著公司通??梢詷?gòu)建其中的幾個(gè),這加速了硬件驗(yàn)證,軟件開發(fā),硬件/軟件協(xié)同驗(yàn)證和軟件驗(yàn)證。每個(gè)團(tuán)隊(duì)都可以有自己的原型。?
FPGA原型驗(yàn)證的缺陷
-編譯時(shí)間比較長
-debug方式不是特別成熟
FPGA原型驗(yàn)證面臨的技術(shù)挑戰(zhàn)?
分區(qū)
大型設(shè)計(jì)可能需要在多個(gè)FPGA之間進(jìn)行分離(分區(qū))以實(shí)現(xiàn)所需的門控容量。這項(xiàng)任務(wù)通常被認(rèn)為是FPGA原型設(shè)計(jì)的最大挑戰(zhàn)。?
分區(qū)過程本身很可能是一個(gè)棘手的迭代過程,涉及將設(shè)計(jì)映射到設(shè)備的眾多判斷調(diào)用,以及從RTL或軟件中的實(shí)際錯(cuò)誤中過濾出并糾正映射錯(cuò)誤。?
手動(dòng)干預(yù)
FPGA原型設(shè)計(jì)可能需要幾種類型的手動(dòng)干預(yù)。?
由于原始設(shè)計(jì)RTL被轉(zhuǎn)換為FPGA綜合和布局工具所需的硬件描述語言(HDL),因此即使工具已經(jīng)實(shí)現(xiàn)了大部分翻譯的自動(dòng)化,也可能需要一些手動(dòng)編碼才能使原型工作。? ?
映射的各個(gè)方面都面臨著挑戰(zhàn)。FPGA上的時(shí)鐘樹路由(特別是原始設(shè)計(jì)具有門控時(shí)鐘的地方)非常困難。如果允許關(guān)鍵路徑通過緩慢的芯片到芯片到芯片路徑運(yùn)行,原型性能將會(huì)受到影響。原創(chuàng)中的內(nèi)存和加密塊也會(huì)帶來重大困難。? ?
調(diào)試可見性
可用的可見性往往局限于單個(gè)FPGA,這使得跨多個(gè)FPGA映射的設(shè)計(jì)使調(diào)試可見性變得更加困難。? ?
編譯時(shí)間
編譯FPGA原型如果產(chǎn)生錯(cuò)誤,修復(fù)錯(cuò)誤后,需要從頭開始重新編譯。這會(huì)造成很嚴(yán)重的延誤。
容量限制和性能要求
對于大型的設(shè)計(jì)(大于2千萬等效ASIC門),一塊FPGA往往容納不下,此時(shí)必須將多塊FPGA互聯(lián)才能驗(yàn)證整個(gè)設(shè)計(jì),在這種情況下,就需要對大型的設(shè)計(jì)進(jìn)行Partition即分割。Partition引入了新的問題,而這些問題其實(shí)在芯片中并不存在,很多時(shí)候耗費(fèi)很多人力去實(shí)現(xiàn)一個(gè)可用的Partition方案,僅僅是受限于FPGA的容量而不得已的處理辦法。Partition引入的最大問題是對I/O的需求激增。另一個(gè)方面,由于在SoC原型驗(yàn)證中模塊常常會(huì)增減,導(dǎo)致需要頻繁的改動(dòng)Partition方案,如果手動(dòng)去處理,則需要花費(fèi)很多精力才能得到一個(gè)上文提到可用但折中的方案。此外,處理大量的Cross-FPGA信號非常容易出錯(cuò),所以對于大型的SoC FPGA原型驗(yàn)證,必須采用自動(dòng)化的工具去完成Partition,這對EDA工具而言亦是全新的挑戰(zhàn)。
迭代速度
由于SoC芯片的設(shè)計(jì)頻率很高,為了讓原型驗(yàn)證平臺(tái)盡可能和SoC芯片性能接近,開發(fā)者期望讓FPGA原型平臺(tái)運(yùn)行在盡可能高的頻率上,但是由于SoC的RTL代碼是為芯片實(shí)現(xiàn)設(shè)計(jì),大量深層次組合邏輯的存在,導(dǎo)致了SoC RTL代碼在FPGA上實(shí)現(xiàn)時(shí)時(shí)序收斂困難。
可觀測性
FPGA也是芯片產(chǎn)品,所以內(nèi)部的信號無法直接觀測。通常需要借助于FPGA的Debug工具在生成Bit文件前選取要觀察的信號。當(dāng)Bit文件加載運(yùn)行時(shí),必須通過配套的Debug工具觀察指定的信號波形,但是受限于Block RAM的容量以及信號優(yōu)化等原因,如此調(diào)試的效率比較低。
FPGA原型驗(yàn)證平臺(tái)的分類與選擇
FPGA原型驗(yàn)證平臺(tái)基本可以分為兩大類,自研的原型驗(yàn)證平臺(tái)和商業(yè)的原型驗(yàn)證平臺(tái)。而這種選擇則基于自身項(xiàng)目決定。
自研的原型驗(yàn)證平臺(tái)
一些公司會(huì)選擇使用自研,因?yàn)樗鼈儍?nèi)部就有硬件設(shè)計(jì)部門,所以會(huì)直接從Xilinx或者從Intel采購FPGA,自行設(shè)計(jì)研制的FPGA平臺(tái)。由于同屬一個(gè)體系,針對新的項(xiàng)目或者新的原型驗(yàn)證平臺(tái)需求,能夠快速進(jìn)行實(shí)現(xiàn)平臺(tái)更新或者重新設(shè)計(jì),并且可以定制化一些特殊的接口來滿足自己芯片的某些特殊應(yīng)用。
商業(yè)的原型驗(yàn)證平臺(tái)
國微思爾芯-S2C
S2C公司是一家國內(nèi)的 FPGA 快速原型驗(yàn)證解決方案供應(yīng)商,他提供豐富種類的FPGA原型驗(yàn)證硬件平臺(tái)。芯神瞳邏輯矩陣 Logic Matrix(LX)是國微思爾芯結(jié)合多年的原型驗(yàn)證產(chǎn)品經(jīng)驗(yàn),與當(dāng)前高端分割、互聯(lián)技術(shù)相結(jié)合所推出的高密原型驗(yàn)證平臺(tái)。芯神瞳邏輯矩陣 LX 每個(gè)平臺(tái)均配備了8顆 FPGA,LX1 選用的是賽靈思 (Xilinx) 的 Virtex UltraScale VU440,LX2 選用的是Virtex UltraScale+ VU19P,并且都能搭配使用芯神瞳自動(dòng)原型編譯軟件、深度調(diào)試套件、協(xié)同仿真套件、以及外置應(yīng)用庫來快速搭建原型驗(yàn)證環(huán)境。除了硬件平臺(tái),S2C還提供了Prodigy系列軟件。其中Player Pro能提供基于網(wǎng)表(EDIF)的自動(dòng)分割功能。
·高性能高密多核硬件
·自動(dòng)設(shè)計(jì)分割
·深度調(diào)試系統(tǒng)
·豐富的接口庫
Synopsys公司的HAPS系列
HAPS是Synopsys公司推出的FPGA原型驗(yàn)證平臺(tái),該平臺(tái)自2003年第一代HAPS-10起,到目前已經(jīng)發(fā)展到HAPS-100。HAPS原型驗(yàn)證平臺(tái)是一個(gè)集成解決方案,包含了硬件部分和軟件部分。被廣泛應(yīng)用的HAPS80系列,發(fā)布于2014年,最大規(guī)模的硬件平臺(tái)HAPS80-S104,內(nèi)含4顆Xilinx的VU440 FPGA,及支持多用戶模式和多臺(tái)級聯(lián)(最高可達(dá)64臺(tái))模式來滿足不同設(shè)計(jì)的需求。集成軟件除了提供編譯,綜合等功能,最大的亮點(diǎn)是支持多FPGA和多臺(tái)HAPS的Auto Partition(自動(dòng)分割),同時(shí)擁有強(qiáng)大的調(diào)試能力,比如DTD(深度跟蹤調(diào)試)和GSV(全局信號可見)功能。
新思的云原生Web
Cadence公司的Protium系列
Cadence公司在FPGA原型驗(yàn)證平臺(tái)上起步比較晚,2017年嘗試推出了第一代FPGA原型驗(yàn)證平臺(tái)Protium S1,于2019年發(fā)布了改進(jìn)的第二代Protium X1。Protium X1 硬件采用Blade/Rack結(jié)構(gòu),一個(gè)Blade/Rack包含了6顆Xilinx VU440 FPGA,集成軟件除了支持編譯,綜合以外,也支持跨FPGA的Auto Partition(自動(dòng)分割),同時(shí)支持DCC(Data Capture Card)調(diào)試等。2021年,發(fā)布了Protium X2系統(tǒng)。新一代系統(tǒng)基于下一代硬件仿真核心處理器和 Xilinx UltraScale+ VU19P FPGA,將為客戶帶來2倍容量提升和1.5倍性能提升,以更少的時(shí)間為大規(guī)模芯片驗(yàn)證完成更多次數(shù)的迭代。
除此之外,國內(nèi)還有一些優(yōu)秀的公司提供FPGA原型驗(yàn)證工具,例如亞科鴻禹和芯啟源。
亞科鴻禹
編輯:黃飛
?
評論
查看更多