當一個SoC芯片項目將要切入到FPGA原型驗證階段時,F(xiàn)PGA原型驗證團隊如何評估是否可以進入原型驗證階段進行新一個階段的驗證工作呢?
1. SoC代碼是否成熟?
我們當然希望在項目中盡快準備好基于FPGA原型驗證的代碼,以便最大限度地為軟件團隊和RTL驗證人員帶來更客觀的收益。然而,假如過早地開始FPGA原型驗證工作,由于RTL代碼在Simulation階段驗證不成熟或不充分,那么將會浪費大量的時間(因為FPGA原型驗證過程中debug的難度數(shù)倍與Simulation)而只發(fā)現(xiàn)簡單的RTL的bug,如果使用Simulation仿真,其實容易發(fā)現(xiàn)這些簡單bug,這樣原型驗證的時間、技能和設備都沒有得到有效利用。
所有SoC芯片項目組將在項目的各個階段制定一份SoC驗證設計。該計劃的目標始終是100%驗證SoC并自我確認已實現(xiàn)。一般包含Simulation驗證計劃,F(xiàn)PGA原型驗證計劃,Emulation驗證計劃等。一些驗證團隊采用高效且通用的Simulation驗證方法,如UVM,主要用于System Verilog中編寫的復雜測試環(huán)境,此驗證計劃記錄了驗證工程師對于相關功能測試點進行的驗證,以及每個測試的當前設計狀態(tài),相關的工程師會采用收集覆蓋率的方法保證基本的bug在Simulation階段都已經(jīng)驗證完備了。此時整個RTL的成熟度可以認為是90%了,剩下的10%要通過FPGA原型驗證或者Emulation才能保證驗證完備。此時,恭喜你,可以進行ASIC代碼到FPGA代碼的移植工作了!
2. SoC的功能有多少可以通過FPGA原型驗證平臺來驗證?
在早期規(guī)劃階段,我們需要確認進行FPGA原型驗證的范圍。當然,通常而言,團隊決策者是貪心的,一般都想將整個SoC的功能都進行驗證,所以有團隊甚至一上來就規(guī)劃幾十片F(xiàn)PGA甚至上百片F(xiàn)PGA原型驗證的計劃,其實都不算很合理。我們需要從SoC的架構以及能實現(xiàn)FPGA原型驗證的規(guī)模通篇考慮,因為成功搭建幾十上百片F(xiàn)PGA的原型驗證系統(tǒng)實屬不易。
在考慮分多片F(xiàn)PGA原型驗證系統(tǒng)之前,我們需要權衡哪些一定功能點相關設計一定要放在FPGA原型驗證系統(tǒng)中,哪些功能點可以放在其他片外或者Emulation階段去保證,也就是在項目中通常所說的“閹割”版本的FPGA原型驗證系統(tǒng),不管是規(guī)模還是功能,都建議從小到大,由簡到難的順序去做相關的移植工作,當然這樣的版本不宜太多。簡單來講:哪些可以進入FPGA原型驗證來做,哪些不能進入FPGA原型驗證來做。
對于給定的平臺,較小的設計通常以更快的時鐘速率運行,并且比較大的設計花費更少的時間來處理。因此,我們應該謹慎地將更多的SoC設計納入到原型中。我們可以通過哪些方式減少原型的規(guī)模,而不會過度降低其有用性或準確性?
為了減小設計尺寸并緩解容量限制,可以考慮以下選項:
永久性邏輯移除:當SoC設計中的塊具有可添加到FPGA平臺的硬件等效物(物理SoC、評估平臺等)時,它是從將映射到FPGA的邏輯中移除的好候選。除了節(jié)省空間外,這些塊可以以比FPGA平臺中可達到的速度更快的速度運行。此類塊的典型示例是第三方IP,例如處理器或專用控制器。
臨時邏輯“閹割”:當邏輯量超過FPGA平臺中的可行空間時,可以考慮臨時移除一些塊。當SoC的一部分可以被原型化時,這可以起作用。例如,如果一個SoC有多個可能的內(nèi)存接口,但實際應用中只使用一個,那么一次一個地對它們進行原型化,而其他的則被移除,這將單獨驗證每一個。
整體功能縮放:當SoC中的塊大小將超過整個FPGA平臺中的可用可行空間時,可以考慮縮小它們。例如,SoC存儲器塊可按比例縮小以在任何給定時間運行代碼的子集,或者可替代地,多通道設計的一個通道可能足以代表用于原型化通道驅動器軟件的足夠功能。
3. 評估配合FPGA完成相關功能的外接設備卡
雖然FPGA原型驗證平臺中,主要起作用的一定是這個系統(tǒng)中最主要的FPGA,但是,現(xiàn)代SoC中的功能非常豐富,單純的FPGA資源一般不能完全滿足SoC的驗證需求,所以要考慮外接設備卡進行整系統(tǒng)的驗證。
一般情況下,出于評估目的,SoC芯片的IP供應商通常提供在在FPGA上可實現(xiàn)的IP,以供客戶進行FPGA原型驗證。在其他情況下,項目組的FPGA原型團隊可以設計或者構建功能上等同于未映射到FPGA的IP塊的電路板,當然現(xiàn)今的FPGA原型驗證供應商會提供各種類型的功能子卡。為了適應這些外部硬件選項,我們需要驗證/執(zhí)行以下操作:
a. 在RTL中提供與FPGA外部模塊的連接。
b. 確保FPGA和外部硬件模塊之間的IO的信號級別彼此兼容。
c. 確保外部硬件的信號完整性可被FPGA和硬件模塊接受。典型的FPGA 的IO有許多選項,如信號電平、速度以及驅動強度。我們應該熟悉這些選項,以及如何在特定的原型環(huán)境中最佳地使用它們。
d. 提供所需的時鐘,考慮時鐘延遲,能夠計算FPGA系統(tǒng)和外部硬件之間的互連定時。
e. 固定硬件的啟動時間可能比FPGA系統(tǒng)啟動時間短得多,因為FPGA需要在開始工作之前加載。早期啟動可能導致硬件模塊和FPGA系統(tǒng)之間的同步問題。
f. 外部硬件模塊如何物理連接到FPGA系統(tǒng),以及如何供電。必須注意布線和與FPGA系統(tǒng)的重復連接,以保護FPGA和硬件模塊。當需要將原型運送到遠程實驗室或客戶時,一個好的機械計劃將使其更容易。
審核編輯:劉清
-
FPGA
+關注
關注
1630文章
21802瀏覽量
606390 -
asic
+關注
關注
34文章
1206瀏覽量
120821 -
soc
+關注
關注
38文章
4212瀏覽量
219193 -
RTL
+關注
關注
1文章
385瀏覽量
59984
原文標題:從SoC仿真驗證到FPGA原型驗證的時機
文章出處:【微信號:于博士Jacky,微信公眾號:于博士Jacky】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
驗證中的FPGA原型驗證 FPGA原型設計面臨的挑戰(zhàn)是什么?
高頻RFID芯片的FPGA原型驗證平臺設計及驗證
關于無源高頻電子標簽芯片功能驗證的FPGA原型驗證平臺設計
![關于無源高頻電子標簽芯片<b class='flag-5'>功能</b><b class='flag-5'>驗證</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>驗證</b><b class='flag-5'>平臺</b>設計](https://file1.elecfans.com//web2/M00/A6/EB/wKgZomUMQUWAfbpVAAAkrb4DjNw724.gif)
如何建立適合團隊的FPGA原型驗證系統(tǒng)平臺與技術?
什么是FPGA原型驗證?如何用FPGA對ASIC進行原型驗證
SoC設計的IO PAD怎么移植到FPGA原型驗證
SoC設計的IO PAD怎么移植到FPGA原型驗證
![<b class='flag-5'>SoC</b>設計的IO PAD怎么移植到<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>驗證</b>](https://file1.elecfans.com/web2/M00/88/96/wKgZomRsfjCAX22xAAWa3ejLVko121.jpg)
評論