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