數(shù)字芯片設(shè)計(jì)驗(yàn)證經(jīng)驗(yàn)分享系列文章(第四部分)
本系列文章從數(shù)字芯片設(shè)計(jì)項(xiàng)目技術(shù)總監(jiān)的角度出發(fā),介紹了如何將芯片的產(chǎn)品定義與設(shè)計(jì)和驗(yàn)證規(guī)劃進(jìn)行結(jié)合,詳細(xì)講述了在FPGA上使用IP核來(lái)開(kāi)發(fā)ASIC原型項(xiàng)目時(shí),必須認(rèn)真考慮的一些問(wèn)題。文章從介紹使用預(yù)先定制功能即IP核的必要性開(kāi)始,通過(guò)闡述開(kāi)發(fā)ASIC原型設(shè)計(jì)時(shí)需要考慮到的IP核相關(guān)因素,用八個(gè)重要主題詳細(xì)分享了利用ASIC IP來(lái)在FPGA上開(kāi)發(fā)原型驗(yàn)證系統(tǒng)設(shè)計(jì)時(shí)需要考量的因素。
本文引用地址:http://m.butianyuan.cn/article/202408/462494.htm在上篇文章中,我們分享了第五到第六主題,介紹了我們?nèi)绾未_保在FPGA上實(shí)現(xiàn)所需的性能和在時(shí)鐘方面必須加以考量的因素有哪些。本篇文章是SmartDV數(shù)字芯片設(shè)計(jì)經(jīng)驗(yàn)分享系列文章的第四篇,將繼續(xù)分享第七、第八主題,包括如果目標(biāo)技術(shù)是FPGA,而不是ASIC,那么需要如何測(cè)試IP核的功能?設(shè)計(jì)團(tuán)隊(duì)還應(yīng)該牢記什么?
作為全球領(lǐng)先的驗(yàn)證解決方案和設(shè)計(jì)IP提供商,SmartDV的產(chǎn)品研發(fā)及工程應(yīng)用團(tuán)隊(duì)具有豐富的設(shè)計(jì)和驗(yàn)證經(jīng)驗(yàn)。在國(guó)產(chǎn)大容量FPGA芯片和IP新品不斷面市,國(guó)內(nèi)RISC-V CPU等IP提供商不斷發(fā)展壯大的今天,SmartDV及其中國(guó)全資子公司“智權(quán)半導(dǎo)體”愿意與國(guó)內(nèi)FPGA芯片開(kāi)發(fā)商、RISC-V IP和其他IP提供商、集成電路設(shè)計(jì)中心(ICC)合作,共同為國(guó)內(nèi)數(shù)字芯片設(shè)計(jì)公司開(kāi)發(fā)基于本地FPGA的驗(yàn)證與設(shè)計(jì)平臺(tái)等創(chuàng)新技術(shù)與產(chǎn)品。
話題7:如果目標(biāo)技術(shù)是FPGA,而不是ASIC,那么需要如何測(cè)試IP核的功能?
復(fù)雜電路的驗(yàn)證通常必須在FPGA上進(jìn)行,其嚴(yán)格程度等同于ASIC開(kāi)發(fā)的標(biāo)準(zhǔn)。眾所周知,在這方面是不允許有錯(cuò)誤產(chǎn)生,因?yàn)楹蠊車(chē)?yán)重。ASIC的每個(gè)分岔(例如,由于在電路開(kāi)發(fā)期間產(chǎn)生的錯(cuò)誤,而在驗(yàn)證期間沒(méi)有發(fā)現(xiàn))不僅會(huì)導(dǎo)致產(chǎn)品交付嚴(yán)重延遲,而且還會(huì)導(dǎo)致大量的額外成本。當(dāng)然,在使用FPGA時(shí)不會(huì)出現(xiàn)這樣的問(wèn)題,因?yàn)樵趹?yīng)用設(shè)計(jì)更改后,這些組件可以重新配置而無(wú)需浪費(fèi)太多精力——但是,在使用可編程的組件時(shí),應(yīng)該采取最大的謹(jǐn)慎態(tài)度。這是很好的工程精神!
最終,F(xiàn)PGA被用于消除早期開(kāi)發(fā)階段的設(shè)計(jì)錯(cuò)誤,從而確保在ASIC上實(shí)現(xiàn)的電路基本上是無(wú)錯(cuò)誤的。遺憾的是,正是由于在可編程的組件上執(zhí)行功能測(cè)試的簡(jiǎn)便性和速度,往往使人們不愿意首先通過(guò)仿真驗(yàn)證RTL代碼的更改,而是在實(shí)際操作中測(cè)試電路設(shè)計(jì)。這里忽略的是,這種方法可能會(huì)忽略在仿真中所使用的測(cè)試臺(tái)可以發(fā)現(xiàn)的極端情況。在某些情況下,驗(yàn)證覆蓋范圍會(huì)減少——盡管FPGA允許在相同的時(shí)間范圍內(nèi)比仿真運(yùn)行更多的驗(yàn)證周期。如果使用FPGA認(rèn)真地進(jìn)行功能測(cè)試,則這種驗(yàn)證方法可提供比仿真驗(yàn)證方法更多的可能性。
通常情況下,ASIC和SoC設(shè)計(jì)包含許多復(fù)雜的行業(yè)標(biāo)準(zhǔn)接口,用于與外部設(shè)備(USB、PCIe等)進(jìn)行通信或連接標(biāo)準(zhǔn)總線(AHB、AXI等)。在設(shè)計(jì)驗(yàn)證過(guò)程中,這些接口還被用于連接測(cè)試環(huán)境(測(cè)試臺(tái))。這種連接通過(guò)稱(chēng)為驗(yàn)證IP(VIP)的模塊實(shí)現(xiàn)。驗(yàn)證IP是一種特殊的IP核,它將給定接口的總線功能模型(BFM)的功能與測(cè)試臺(tái)中使用的測(cè)試用例框架功能相結(jié)合。驗(yàn)證IP是一個(gè)可重復(fù)使用的IP核,可用于創(chuàng)建必要的測(cè)試,以縮短SoC驗(yàn)證時(shí)間并增加覆蓋率。雖然驗(yàn)證IP通常用于驗(yàn)證標(biāo)準(zhǔn)總線協(xié)議,但它也可用于系統(tǒng)性能分析,并且越來(lái)越多地用于模擬、仿真和虛擬原型設(shè)計(jì)。
圖7 帶有主接口、設(shè)備和集線器USB4的驗(yàn)證基本工作原理圖,使用專(zhuān)用驗(yàn)證IP(VIP)可以顯著增加驗(yàn)證覆蓋范圍
驗(yàn)證通常是電路創(chuàng)建過(guò)程中最耗時(shí)的部分。專(zhuān)用的驗(yàn)證IP可以顯著地增加驗(yàn)證覆蓋范圍,可覆蓋極端情況,并可顯著地減少設(shè)置仿真系統(tǒng)所需的總體工作量(例如,創(chuàng)建模擬刺激)。
測(cè)試通??梢酝ㄟ^(guò)使用FPGA來(lái)實(shí)時(shí)進(jìn)行。這意味著直接與ASIC相比,F(xiàn)PGA可以相同或降低的時(shí)鐘頻率來(lái)運(yùn)行設(shè)計(jì)。即使在使用FPGA時(shí)需要降低時(shí)鐘頻率,因?yàn)榭删幊绦钥偸切枰壿媶卧娜哂?,因此需要較大的芯片面積(這反過(guò)來(lái)導(dǎo)致更高的延遲);但與純仿真相比,驗(yàn)證速度仍然要高得多。這種加速型驗(yàn)證使得發(fā)現(xiàn)在仿真中永遠(yuǎn)不會(huì)發(fā)現(xiàn)的錯(cuò)誤成為可能。
盡管使用FPGA進(jìn)行ASIC原型設(shè)計(jì)具有諸多優(yōu)點(diǎn),但將最初專(zhuān)為ASIC目標(biāo)項(xiàng)目而開(kāi)發(fā)的電路移植到FPGA上并不是一件容易的事情,這一點(diǎn)怎么說(shuō)都不為過(guò)。
最重要的一點(diǎn)是,在FPGA中實(shí)現(xiàn)電路通常需要對(duì)電路本身進(jìn)行更改。在前面的主題部分中,我們已經(jīng)研究了可能需要實(shí)施的更改。每一次電路的改變都意味著,稍后將被映射到ASIC上的電路是已經(jīng)驗(yàn)證的,但并不是完全相同的,而是經(jīng)過(guò)修改的版本。當(dāng)然,有必要相應(yīng)地調(diào)整仿真設(shè)置,例如ASIC電路開(kāi)發(fā)的測(cè)試臺(tái)。
關(guān)于測(cè)試結(jié)構(gòu),還有一些事情需要考慮。例如,掃描結(jié)構(gòu)經(jīng)常出現(xiàn)在ASIC RTL代碼中——關(guān)鍵字:DFT(面向測(cè)試的設(shè)計(jì))——以便在交付前輕松識(shí)別有故障的ASIC組件并相應(yīng)地對(duì)其進(jìn)行篩選。這種測(cè)試結(jié)構(gòu)在FPGA中是不需要的,因?yàn)檫@些組件都是已經(jīng)過(guò)測(cè)試才交付給最終客戶,因此不需要插入額外的測(cè)試結(jié)構(gòu)。事實(shí)上,這些組件實(shí)際上是破壞性的,因?yàn)閷?shí)現(xiàn)將導(dǎo)致組件利用率的增加,并且還需要更復(fù)雜的時(shí)鐘分布。有必要消除在FPGA邏輯綜合中為測(cè)試引入的預(yù)防措施(例如,掃描-FF),或?qū)⑺鼈儭半[藏”在邏輯綜合中。
“干凈”的設(shè)計(jì)實(shí)現(xiàn)使用“define”和“ifdef”指令根據(jù)期望的目標(biāo)架構(gòu)(ASIC或FPGA)來(lái)選擇這樣的測(cè)試結(jié)構(gòu),或者使它們對(duì)于邏輯綜合“不可見(jiàn)”。通過(guò)使用這些指令,也可以實(shí)現(xiàn)用于存儲(chǔ)器和時(shí)鐘生成或分配的特殊FPGA庫(kù)組件的集成,這使得IP核的用戶能夠簡(jiǎn)化電路以適應(yīng)所需的目標(biāo)架構(gòu)。其目的是加快電路的創(chuàng)建,從而提高生產(chǎn)率。當(dāng)然,應(yīng)該指出的是,最終的實(shí)現(xiàn)并不是完全相同的。然而,由于目標(biāo)元件也不相同,因此對(duì)電路進(jìn)行相應(yīng)的調(diào)整是不可避免的。
對(duì)原始設(shè)計(jì)進(jìn)行更改是不可取的。原型設(shè)計(jì)的理念是將稍后在ASIC中實(shí)現(xiàn)的功能映射到一個(gè)可編程組件中,而不需要進(jìn)行重大更改;即使有改動(dòng),最好也是同步相同的更改,以檢測(cè)可能的錯(cuò)誤。但是,如果電路本身發(fā)生變化,則可能由于變化而引入誤差。由于實(shí)現(xiàn)不完全相同,不能保證ASIC電路中沒(méi)有更多的錯(cuò)誤,因?yàn)樗鼪](méi)有事先經(jīng)過(guò)充分的測(cè)試。然而,如果在ASIC實(shí)現(xiàn)之前根本沒(méi)有使用FPGA,則可以實(shí)現(xiàn)更高的驗(yàn)證覆蓋率。畢竟,要驗(yàn)證的電路只有部分區(qū)域是不同的,并且與仿真性驗(yàn)證方法相比,允許更多的測(cè)試周期。
另一個(gè)需要考慮的要點(diǎn)是發(fā)送和接收數(shù)據(jù)的物理通信接口,諸如MIPI、USB、PCIe等接口IP通過(guò)差分接口傳輸串行或并行高速數(shù)據(jù)信號(hào)。為了在發(fā)射器和接收器之間建立連接,就需要一個(gè)PHY來(lái)傳輸差分?jǐn)?shù)據(jù)流。這種PHY可以在ASIC上作為模擬電路來(lái)實(shí)現(xiàn),然而這在FPGA上是不可行的,或者如果行的話,那么只能通過(guò)使用可提供的SerDes IO或高速收發(fā)器作為輔助。當(dāng)然,這意味著FPGA實(shí)現(xiàn)與ASIC電路完全不相同。在絕大多數(shù)情況下,有必要通過(guò)連接到FPGA的附加外部PHY組件來(lái)提供物理接口。如果電路在實(shí)際運(yùn)行中進(jìn)行測(cè)試,其物理接口將與最終的ASIC實(shí)現(xiàn)之間存在差異。
總之,可以說(shuō)大多數(shù)驗(yàn)證工具都可以同時(shí)用于ASIC和FPGA目標(biāo)(例如,仿真器、形式驗(yàn)證等)。然而,在某些方面存在顯著差異,例如RTL代碼中存在的測(cè)試結(jié)構(gòu)或通過(guò)PHY接口將電路連接到“外部世界”。原則上來(lái)說(shuō),使用FPGA可在驗(yàn)證覆蓋率方面提供顯著的優(yōu)勢(shì),但是移植專(zhuān)為ASIC開(kāi)發(fā)的電路部件總是需要相當(dāng)多的額外工作。在這種情況下,使用驗(yàn)證IP可以為簡(jiǎn)化復(fù)雜的功能測(cè)試、增加驗(yàn)證覆蓋率和加速驗(yàn)證做出重大貢獻(xiàn)。
主題8:設(shè)計(jì)團(tuán)隊(duì)還應(yīng)該牢記什么?
我們已經(jīng)涵蓋了很多領(lǐng)域,但是當(dāng)這些IP最初是為ASIC目標(biāo)架構(gòu)創(chuàng)建的時(shí)候,在FPGA方向上移植電路時(shí)需要考慮更多。
正如已經(jīng)詳細(xì)解釋的那樣,可編程組件的使用適合于在實(shí)際操作中測(cè)試電路,從而確保它在很大程度上是無(wú)錯(cuò)誤的。在項(xiàng)目的早期階段就有一個(gè)可用的功能電路具有許多價(jià)值:在其幫助下,不僅可以先進(jìn)行軟件和固件的設(shè)計(jì),而且還可以在ASIC仍處在流片過(guò)程中就使用基于FPGA的原型對(duì)它們進(jìn)行測(cè)試。
如果要使用FPGA,則應(yīng)該在RTL創(chuàng)建期間就采用“專(zhuān)為原型而設(shè)計(jì)”的方法。這并不總是容易實(shí)現(xiàn)的。例如,如果ASIC電路設(shè)計(jì)的要求是盡可能將功耗保持到最低,那么除了對(duì)時(shí)鐘分布進(jìn)行操作(例如,通過(guò)插入門(mén)控時(shí)鐘結(jié)構(gòu))之外,還經(jīng)常使用基于鎖存器的設(shè)計(jì)方法。該想法是使用鎖存器而不是時(shí)鐘寄存器。時(shí)鐘控制元件簡(jiǎn)化了電路實(shí)現(xiàn),因?yàn)闀r(shí)鐘也使“時(shí)間概念”可用。然而,寄存器邏輯的使用總是導(dǎo)致更高的功率需求,因?yàn)楣呐c時(shí)鐘元件的數(shù)量及其時(shí)鐘頻率成比例地增加。
與ASIC不同,F(xiàn)PGA不是很適合基于鎖存器的電路實(shí)現(xiàn),因?yàn)椤缜懊嬷黝}6中提到的:在時(shí)鐘方面必須考慮什么?——只定義“最壞情況下”的時(shí)序信息。在FPGA時(shí)序分析中通常不計(jì)算最小時(shí)序和延遲。如果一種時(shí)鐘方法不能通過(guò)寄存器邏輯檢測(cè),那么時(shí)間行為就不再是可預(yù)測(cè)的,并且可能導(dǎo)致所謂的“競(jìng)爭(zhēng)條件”和其他問(wèn)題,這些都使得FPGA不可能可靠地運(yùn)行。最后,這意味著不同的電路實(shí)現(xiàn)對(duì)于各自的目標(biāo)模塊是很有必要的。這里的目標(biāo)是實(shí)現(xiàn)相同的功能,盡管在實(shí)現(xiàn)路徑上有所不同。
前面提到的電路設(shè)計(jì)方法應(yīng)該在產(chǎn)品開(kāi)發(fā)的早期階段就應(yīng)該考慮到目標(biāo)架構(gòu)之中的相關(guān)因素,不僅限于鎖存器的實(shí)現(xiàn)。在FPGA中也有必要注意同步電路的實(shí)現(xiàn),和避免使用FPGA中不可用的電路(例如,雙邊沿時(shí)鐘FF)。目標(biāo)架構(gòu)還必須考慮到可實(shí)現(xiàn)的時(shí)鐘頻率。要避免長(zhǎng)組合路徑,因?yàn)榭赡軙?huì)出現(xiàn)高時(shí)序違規(guī)。
在基于FPGA的原型中,驗(yàn)證不僅僅指電路功能和實(shí)現(xiàn)所需的時(shí)間;通常還需要包括其他的測(cè)試,同樣重要的參數(shù)在開(kāi)發(fā)活動(dòng)中越快實(shí)現(xiàn)越好。例如,除了前面討論的軟件和固件的開(kāi)發(fā)之外,還應(yīng)該提到ASIC組件的節(jié)能設(shè)計(jì)。
對(duì)于一個(gè)只實(shí)現(xiàn)純電路功能的原型來(lái)說(shuō),功率損耗實(shí)際上根本不起作用。然而,對(duì)于ASIC的運(yùn)行絕對(duì)有必要的降低功耗的方法,同樣也可以在FPGA中使用,并將其包含在原型設(shè)計(jì)活動(dòng)中,所以這是值得期待的。雖然不可能使用ASIC中可用的各種選項(xiàng),但至少可以通過(guò)使用適當(dāng)?shù)墓ぞ吆湍_本來(lái)模擬它們的功能。這里的方法是至少估計(jì)通過(guò)不同方法可以實(shí)現(xiàn)功耗降低(例如,時(shí)鐘門(mén)控以降低寄存器切換率、關(guān)閉ASIC上的整個(gè)區(qū)域、在ASIC的一些部分使用不同的電源電壓等)。
上述方法在FPGA上是不可用的,除了物理上可實(shí)現(xiàn)的時(shí)鐘門(mén)控,這也會(huì)對(duì)FPGA的可靠運(yùn)行產(chǎn)生負(fù)面影響。通過(guò)讀取通用格式(UPF =統(tǒng)一功率格式;CPF =通用功率格式)的相應(yīng)腳本,和使用可模擬支持這些格式的FPGA邏輯綜合工具,至少可以估算這些措施將如何影響ASIC的功耗。
在這種情況下,有一件事是明確的:電路功能越早可用,相應(yīng)的測(cè)試就能越早進(jìn)行。因此,使用諸如IP核這樣的預(yù)先制作的模塊具有巨大的潛力,可以加速ASIC實(shí)現(xiàn)和驗(yàn)證的各個(gè)階段。
本系列文章接下來(lái)將通過(guò)一個(gè)實(shí)際案例來(lái)回顧前面講到的八項(xiàng)關(guān)鍵設(shè)計(jì)考量因素:使用基于FPGA的方法來(lái)驗(yàn)證USB 3.2 Gen2x1 Device IP,大家可以通過(guò)關(guān)注“智權(quán)半導(dǎo)體”微信公眾號(hào)閱讀該案例分析。
實(shí)現(xiàn)一個(gè)可工作的FPGA原型并不是一件容易的事。通常,我們的想法是使用適當(dāng)?shù)腇PGA邏輯綜合和布局布線工具,將已經(jīng)可用于ASIC技術(shù)的IP核映射到足夠大且快速的FPGA上就足夠了,以實(shí)現(xiàn)一個(gè)具有相關(guān)功能性FPGA。這里的要求是所需的功能應(yīng)該即刻可用,并且無(wú)需進(jìn)行任何更改。IP核的制造商必須達(dá)到這一期望。畢竟,IP核應(yīng)該能夠集成到現(xiàn)有設(shè)計(jì)中,且不會(huì)有任何重大的時(shí)間延遲。大家都假設(shè)IP核供應(yīng)商已經(jīng)提前進(jìn)行了所有必要的測(cè)試,以致于將功能集成到現(xiàn)有電路中時(shí)間應(yīng)該毫無(wú)困難。
然而,將IP核移植到FPGA架構(gòu)中對(duì)于IP提供商來(lái)說(shuō)是一個(gè)具有挑戰(zhàn)性的目標(biāo)——如果不付出相當(dāng)大的努力,這幾乎是不可能的。接下來(lái)我們將通過(guò)一個(gè)實(shí)際案例,即使用基于FPGA的方法來(lái)驗(yàn)證USB 3.2 Gen2x1 Device IP來(lái)說(shuō)明其中的困難和克服之道。
本系列文章的目標(biāo)是全面分享經(jīng)驗(yàn),幫助讀者利用ASIC IP來(lái)實(shí)現(xiàn)完美的FPGA驗(yàn)證原型。歡迎關(guān)注SmartDV全資子公司“智權(quán)半導(dǎo)體”微信公眾號(hào)繼續(xù)閱讀:
關(guān)于作者:Philipp Jacobsohn
Philipp Jacobsohn是SmartDV的首席應(yīng)用工程師,他為北美、歐洲和日本地區(qū)的客戶提供設(shè)計(jì)IP和驗(yàn)證IP方面的支持。除了使SmartDV的客戶實(shí)現(xiàn)芯片設(shè)計(jì)成功這項(xiàng)工作,Philipp還是一個(gè)狂熱的技術(shù)作家,樂(lè)于分享他在半導(dǎo)體行業(yè)積累的豐富知識(shí)。在2023年加入SmartDV團(tuán)隊(duì)之前,Philipp在J. Haugg、Synopsys、Synplicity、Epson Europe Electronics、Lattice Semiconductors、EBV Elektronik和SEI-Elbatex等擔(dān)任過(guò)多個(gè)管理和現(xiàn)場(chǎng)應(yīng)用職位。Philipp在瑞士工作。
關(guān)于作者:Sunil Kumar
Sunil Kumar是SmartDV的FPGA設(shè)計(jì)總監(jiān)。作為一名經(jīng)驗(yàn)豐富的超大規(guī)模集成電路(VLSI)設(shè)計(jì)專(zhuān)業(yè)人士,Sunil在基于FPGA的ASIC原型設(shè)計(jì)(包括FPGA設(shè)計(jì)、邏輯綜合、靜態(tài)時(shí)序分析和時(shí)序收斂)和高速電路板設(shè)計(jì)(包括PCB布局和布線、信號(hào)完整性分析、電路板啟動(dòng)和測(cè)試)等方面擁有豐富的專(zhuān)業(yè)知識(shí)。在2022年加入SmartDV團(tuán)隊(duì)之前,Sunil在L&T Technology Services Limited擔(dān)任過(guò)項(xiàng)目經(jīng)理和項(xiàng)目負(fù)責(zé)人職位。Sunil在印度工作。
評(píng)論