天天看點

高性能SoC FPGA原型驗證系列——綜述

FPGA算是晶片産業的一顆明珠,廣泛用于通信、計算、控制等領域。由于其内部電路可重構的特點,幾乎可以完全映射晶片的邏輯設計,被當作一種成本效益優越的晶片驗證基礎設施,不管是晶片設計、硬體設計還是驅動開發的同學多多少少都參與過FPGA原型驗證工作,對FPGA應該都不陌生。 本系列博文将結合自己在FPGA原型驗證方面的工作經驗,先從總體上探讨FPGA原型驗證的優勢和挑戰,然後介紹市面常見的FPGA原型平台并分析各自的優缺點,随後重點介紹平頭哥高性能SoC使用的FPGA原型平台,後續還會就FPGA原型中的關鍵技術進一步展開讨論,并給出自己的一些經驗和技巧總結,希望通過系列博文能帶給讀者關于FPGA原型驗證一個系統的認識。當然,我更希望參與FPGA原型平台工作的同學能夠一起切磋技藝,為平台建設出謀劃策,快速疊代我們的平台,讓我們一起打造更加Smart的FPGA原型平台!

什麼是FPGA原型?

FPGA原型驗證是一種成熟晶片驗證技術,通過将RTL移植到現場可程式設計門陣列(FPGA)來驗證ASIC的功能,并在晶片的基本功能驗證通過後就可以開始驅動的開發,一直到晶片Tape Out并回片後都可以進行驅動和應用的開發,當晶片回片後,可以直接基于FPGA版本的驅動驅動和應用程式,進行簡單的适配,就可以應用到SoC晶片上,将SoC晶片Time-to-Market的時間控制的很完美。 除了可以提前進行軟體開發外,從成本上來說,FPGA原型驗證是一個成本效益很高的驗證手段。相對于動辄幾百萬甚至上千萬RMB的Emulator(硬體仿真加速器,例如Mentor的Veloce,Synopsy的ZeBu,Candance的Palladium),FPGA在價格上可以說非常的親民。 更重要的FPGA原型在運作速度上也有絕對的優勢,相對于EDA驗證,在速度上當然是高了好幾個數量級,即使是和Emulator相對,性能上也是碾壓,是以FPGA原型驗證被幾乎所有的晶片設計公司使用,是使用最為廣泛的驗證技術之一。而對于軟體的開發,隻有FPGA是最能接近ASIC的驗證平台,提早基于FPGA原型驗證平台進行軟體驅動開發和應用開發,對于縮短最終晶片Time-to-Market周期意義重大。在軟硬體深度定制化,要求晶片到應用的一站式傳遞的今天,FPGA原型平台的重要性進一步提升。甚至一些硬體産品早期就是以FPGA的形态面世,經過幾輪的疊代,在有出貨量保證的前提下,基于成本功耗考慮,才會推出SoC晶片。 針對FPGA原型驗證的旺盛需求,很多公司都推出了自己的FPGA原型驗證平台,并且跟随着Xilinx和Altera(現在是Intel)推出新節點的FPGA晶片而不斷更新自己的FPGA原型驗證平台。市面上典型的産品有Synopsys的HAPS系列,Cadence公司的ProTIum,S2C公司的Prodigy系列,國内的公司如亞科宏宇的VeriTiger系列等。目前市面上在售的原型平台使用的最大容量FPGA是Xilinx的VU440(Virtex UltraScal 440,20nm工藝),單顆FPGA晶片可以容納的晶片門數是26~30Million,一般為了容納更大的SoC晶片設計,會采用多顆晶片級聯。

FPGA原型的優勢

性能

相比Emulator,FPGA在速度上有50-100倍的優勢。這就決定了在FPGA原型上可以進行實際的應用開發。FPGA原型驗證平台典型的運作速度是50MHz左右,而Emulator典型的運作頻率是1MHz左右,兩者之間巨大的性能差異決定了FPGA可以運作更加複雜接近真實場景的應用程式,而Emulator更适合于運作針對速度進行優化的程式,兩者的側重點有所不同。

成本

相比硬體仿真加速器 (比如Veloce),FPGA在成本上具有5-10倍的優勢。對于中小型的晶片公司,FPGA如果比作日常快餐,而Emulator就是米其林星級大餐。兩者之間巨大的成本差讓許多公司青睐于FPGA原型。

移植性

軟體工程師可以直接在FPGA原型平台上進driver/app的開發,當晶片回來後,隻需要數周的時間就可以bring up軟硬體,進而加速産品的釋出,這一點對于目前DSSoC(Domain Specific SoC)意義重大。定制化晶片意味着定制化的軟體應用,如何提前進行軟體開發,等晶片回來後應用已經ready可能是每個晶片公司的期望。從現有的技術上來說,唯有FPGA原型平台具備承載軟體驅動和應用開發的能力,是以單從這個點上來講,FPGA原型平台不可替代。

FPGA原型的挑戰

可觀測性

FPGA也是晶片産品,是以内部的信号無法直接觀測。通常需要借助于FPGA的debug工具在生成bit檔案前選取要觀察的信号,當bit檔案加載運作時,通過配套的debug工具觀察指定的信号波形,受限于Block RAM的容量以及信号優化等原因,調試效率比較低。

疊代速度

由于SoC晶片的設計頻率很高,為了讓原型驗證平台盡可能和SoC晶片性能接近,使用者期望讓FPGA原型平台運作在盡可能高的頻率上,但是由于SoC的RTL代碼是為晶片實作設計,大量深層次組合邏輯的存在(這樣可以節省晶片面積),導緻了SoC RTL代碼在FPGA上實作時時序收斂困難,往往隻能達到幾MHz。對于大型的SoC,内部的CPU/GPU/CODEC/NPU等計算和編解碼子產品邏輯複雜,往往成為整個設計的timing wall,導緻時序優化過程會占據FPGA Implementation過程30-40%的時間。根據個人的經驗,在timing critical的情況下,1千萬門規模的ASIC設計,在FPGA上實作需要10小時以上,導緻每個工作日隻能進行一次疊代。

高速接口

外部子闆和FPGA IO之間的高速同步接口是FPGA的痛點和難點:一方面,相比于ASIC,FPGA在IO時序方面可以調整的空間有限,它不能像ASIC一樣可以通過時序限制來靈活調整FPGA IO信号之間的skew,導緻并行信号接口之間的path skew很難控制在一個比較理想的範圍内,最終會導緻資料采樣失敗,降低頻率往往時一種有效的辦法,但是有些控制器和PHY之間的接口是需要滿足标準規範的,不能無限制的降低,對于這種情況有時隻能想盡辦法嘗試修複時序,甚至需要修改代碼。 另一方面,原型驗證使用的子闆用量小,市場上往往沒有銷售,很多時候需要自行設計,進一步給調試帶來了不确定性,也延長了調試周期。 高速接口的調試往往消耗了大量的人力資源,很多時候都是靠調試的經驗和靈感解決問題,總結起來就是費時費力,而且效果不佳。

平台相容性

市面上的FPGA原型驗證平台有很多,但是缺乏統一的接口标準,引腳的排布也不統一,導緻子闆不相容,工程師在setup硬體平台和調試子闆的時候常常舉步維艱,不得不重新設計子闆,或者通過跳線等方式臨時滿足要求,效率和穩定性上都得不到保證。如果想切換到其他平台,也會消耗很多人力資源,并且維護多套平台的成本也是不容小觑的。

容量限制

對于大型的設計(大于2千萬等效ASIC門),一塊FPGA往往容納不下,此時必須将多塊FPGA互聯才能容納整個設計。在這種情況下,就需要對大型的設計進行Partition即分區。Partition引入了新的問題,而這些問題其實在晶片中并不存在,很多時候耗費很多人力去實作一個可用的Partition方案,僅僅是受限于FPGA的容量而不得已為之,不是服務于SoC晶片原型驗證的本身。 Partition引入的最大問題是對IO的需求激增,雖然FPGA有超過1000個IO可用,但是一個完整的SoC如果被拆分成規模相當的兩部分時,兩部分之間的互聯信号數量往往會遠超1000個,是以通常情況下受限于IO的數量,必須采用TDM(Time Division Multiplex),即FPGA内部的多個并行信号轉為高速串行信号,通過FPGA IO傳輸到另一塊FPGA,然後再解複用,轉換成并行信号,實作信号從一個FPGA到另一塊FPGA的傳遞。引入了TDM雖然解決了IO瓶頸,但是Mux和De-Mux引入了額外的延時,導緻cross-FPGA的path成為critical path,進一步降低了FPGA的可運作頻率,可以說Partition是不得已而為之的方案,最終的結果就是得到一個可用的方案而不是一個理想的方案,是不得不妥協的結果。 另一個方面,由于在SoC原型驗證中子產品常常會增減,導緻需要頻繁的改動Partition的方案,如果手動去處理,往往需要花費很多精力才能得到一個上文提到還算可用的方案。此外,處理大量的cross FPGA信号非常容易出錯,是以對于大型的SoC FPGA原型驗證,更為可行的方案是采用自動化的工具去完成Partition,這對EDA工具都提出了全新的挑戰。

市面常見的平台

我們在前期FPGA平台選型中評估了市面常見的幾種FPGA原型平台,本章節将對這幾個平台進行介紹,并分析各家平台的優劣勢。  亞科鴻宇 VeriTiger-H4000T  S2C Single VU440  Synopsys HAPS-80

亞科鴻宇VeriTiger-H4000T

高性能SoC FPGA原型驗證系列——綜述

優勢

1.成本效益上有一定優勢;

不足

1.調試手段比較單一,不支援RTL Debug; 2.無自動化Partition工具,需要手動Partition,手動插入TDM(Time Domain Multiplexing)子產品,可靠性和效率難保證;

S2C Single VU440

高性能SoC FPGA原型驗證系列——綜述

使用1顆Virtex UltraScale VU440晶片,平台的結構跟我們用實驗室使用的V7 Single-E平台(用V7 2000T晶片)類似。

1.平台結構和我們正在使用的V7 Single-E類似,有一定的相容性和繼承性,上手比較快; 2.子闆豐富并且價格便宜。

1.有進階的調試工具和Partition工具,但是這些EDA工具的性能和易用性待檢驗; 2.可擴充性待檢驗。

Synopsy HAPS-80

高性能SoC FPGA原型驗證系列——綜述

圖中展示的是HAPS-80 S26平台,使用1顆Virtex UltraScale VU440。

1.Synopsys的工具(Synplify、Identity和Protocompiler)對HAPS-80平台原生支援,EDA易用,生态好; 2.Synopsys IP的FPGA驗證環境一般都是針對HAPS平台設計,有配套的IP開發套件(IPK,IP Prototyping Package),能有效縮短接口類IP的調試周期; 3.調試手段多樣,抓取波形也很友善; 4.有自動化的Partition工具,多闆級聯方案成熟。

子闆和主機闆價格相對較高。

綜合評估下來,我們選用了Synopsys平台,最關鍵的一點是HAPS平台的Partition工具和多闆的級聯方案很成熟,這一點對于我們高性能的SoC FPGA原型驗證最為關鍵。 由于時間有限,部落客今天就介紹到這裡,關于HAPS平台更詳細的介紹将在下一篇博文中呈現,希望能抽出更多時間與大家分享,讀者有關于FPGA的任何問題都歡迎留言探讨,讓我為平頭哥的基礎平台建設建言獻策,打造如絲般順滑的使用者體驗!

文章來源:晶片開放社群

文章連結:

https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180fKD1nhm&id=641027119421325312

繼續閱讀