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