作者
Philipp Jacobsohn,SmartDV首席應(yīng)用工程師
Sunil Kumar,SmartDV FPGA設(shè)計(jì)總監(jiā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)開發(fā)ASIC原型項(xiàng)目時(shí),必須認(rèn)真考慮的一些問題。文章從介紹使用預(yù)先定制功能即IP核的必要性開始,通過闡述開發(fā)ASIC原型設(shè)計(jì)時(shí)需要考慮到的IP核相關(guān)因素,用八個(gè)重要主題詳細(xì)分享了利用ASIC IP來(lái)在FPGA上開發(fā)原型驗(yàn)證系統(tǒng)設(shè)計(jì)時(shí)需要考量的因素。
在上篇文章中,我們分享了第七到第八主題,介紹了如果目標(biāo)技術(shù)是FPGA,而不是ASIC,那么需要如何測(cè)試IP核的功能?和設(shè)計(jì)團(tuán)隊(duì)還應(yīng)該牢記什么?本篇文章是SmartDV數(shù)字芯片設(shè)計(jì)經(jīng)驗(yàn)分享系列文章的第五篇,將通過一個(gè)實(shí)際案例來(lái)回顧前面講到的八項(xiàng)關(guān)鍵設(shè)計(jì)考量因素。
作為全球領(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芯片開發(fā)商、RISC-V IP和其他IP提供商、集成電路設(shè)計(jì)中心(ICC)合作,共同為國(guó)內(nèi)數(shù)字芯片設(shè)計(jì)公司開發(fā)基于本地FPGA的驗(yàn)證與設(shè)計(jì)平臺(tái)等創(chuàng)新技術(shù)與產(chǎn)品。
實(shí)際案例:使用基于FPGA的方法來(lái)確認(rèn)USB 3.2 Gen2x1 Device IP
要實(shí)現(xiàn)一個(gè)可工作的FPGA原型并不是一件容易的事。通常,工程師的想法是使用合適的FPGA邏輯綜合和布局布線(P&R)工具,將已經(jīng)可用于ASIC技術(shù)的IP核映射到足夠大且快速的FPGA上就足夠了,以達(dá)到一個(gè)功能性FPGA實(shí)現(xiàn)。這里的要求是所需的功能應(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)有電路中毫無(wú)困難。
然而對(duì)于IP提供商來(lái)說(shuō),將IP核移植到FPGA架構(gòu)中是一個(gè)具有挑戰(zhàn)性的目標(biāo)——如果不付出相當(dāng)大的努力,這幾乎是不可能的。事實(shí)是,在沒有適當(dāng)?shù)幕A(chǔ)架構(gòu)和外圍設(shè)備的情況下,測(cè)試一個(gè)孤立的IP核只有有限的價(jià)值。例如,“獨(dú)立”實(shí)現(xiàn)并不能保證在符合所有規(guī)范的情況下實(shí)現(xiàn)所需的功能,特別是在FPGA不僅僅包含孤立IP核的情況下。如果要在FPGA中實(shí)現(xiàn)具有高時(shí)鐘頻率要求的其他電路部件,這一點(diǎn)尤為重要。
IP制造商面臨的一個(gè)特別挑戰(zhàn)是缺乏關(guān)于在后期實(shí)現(xiàn)中添加的電路組件的信息,如它們的復(fù)雜性,它們對(duì)時(shí)鐘速度的要求等。事實(shí)上,一個(gè)內(nèi)核可能已經(jīng)成功地在與該問題無(wú)關(guān)的ASIC流片中使用了很多次。畢竟,IP核不僅要滿足標(biāo)準(zhǔn)和規(guī)范所定義的所有參數(shù)(例如,USB 3.2總線協(xié)議規(guī)范),而且即使將其集成到一個(gè)復(fù)雜的整體系統(tǒng)中,該系統(tǒng)被映射到一個(gè)可編程器件(即FPGA)上,也仍然要能夠工作。這樣一個(gè)整體系統(tǒng)的復(fù)雜性,加上它的所有組件,如微處理器、信號(hào)處理電路和接口,對(duì)所需的時(shí)鐘頻率是否能夠?qū)崿F(xiàn)以及FPGA提供的資源是否足夠都有重大影響。必須有足夠數(shù)量的等效邏輯門,但其他硬件參數(shù)也有限制,如存儲(chǔ)器資源、時(shí)鐘分布組件、高速IO和/或收發(fā)器等。
為了實(shí)現(xiàn)可用于在FPGA電路環(huán)境中測(cè)試IP核的功能性系統(tǒng),IP核供應(yīng)商必須考慮的不僅僅是要提供的功能。IP供應(yīng)商可以接觸到自己創(chuàng)建的功能,但不能接觸到IP核用戶使用的開發(fā)和測(cè)試環(huán)境,也不能訪問連接最終產(chǎn)品的外設(shè),并通過這些外設(shè)提供物理輸入信號(hào)。同樣,也不能訪問客戶使用的模擬刺激和測(cè)試模式生成器。驗(yàn)證覆蓋范圍也被視為是至關(guān)重要的;在任何可能的情況下,都應(yīng)該涵蓋極端情況,以避免在使用IP的后續(xù)階段出現(xiàn)令人不快的意外情況。值得注意的是測(cè)試電路板,通常情況下市場(chǎng)可提供的印刷電路板,與IP核客戶隨后將用于所有測(cè)試的電路板都有不同。
在輸出端,可以預(yù)見到的復(fù)雜性并不比輸入信號(hào)的供應(yīng)端更低。以USB接口為例,如果實(shí)現(xiàn)接口IP,就需要使用外部PHY作為物理接口。因?yàn)檫@是一個(gè)模擬接口,在FPGA上不可用,因此必須使用外部組件。這種PHY由各種各樣的制造商提供,盡管希望將USB控制器連接到由最終客戶選擇的外部PHY組件上,不需要對(duì)物理接口進(jìn)行任何與電氣特性相關(guān)的更改,如電壓值、擺幅、輸出引腳的驅(qū)動(dòng)器強(qiáng)度或接口的引腳分配,所有參數(shù)都必須在功能測(cè)試中進(jìn)行詳細(xì)驗(yàn)證。這是確保物理接口符合所有規(guī)范的唯一方法,并且數(shù)據(jù)傳輸?shù)馁|(zhì)量也要符合預(yù)期。所有這些功能測(cè)試都必須提前進(jìn)行,以保證在交付前的階段就可提供功能。由于IP核必須是通用的,即不同的客戶在不同的應(yīng)用中選擇PHY來(lái)配套都可用,測(cè)試設(shè)置必須在測(cè)試中包括來(lái)自不同制造商的許多不同的PHY。
創(chuàng)建數(shù)據(jù)庫(kù)也需要一些工作量。當(dāng)然,僅僅提供RTL代碼和相應(yīng)的約束條件是不夠的。為了簡(jiǎn)化將IP核集成到現(xiàn)有電路中的工作,通常提供以下數(shù)據(jù)庫(kù):
·Verilog中的RTL設(shè)計(jì)
? ? -RTL能夠在客戶選擇的FPGA邏輯綜合工具上可以進(jìn)行綜合
·具有豁免文件的Lint、CDC和邏輯綜合腳本
·Lint、CDC和邏輯綜合報(bào)告
·如果適用,提供C語(yǔ)音驅(qū)動(dòng)包(裸機(jī)驅(qū)動(dòng))
·更詳細(xì)的技術(shù)文檔
·易于使用的、帶有Verilog測(cè)試用例的Verilog測(cè)試環(huán)境
·IP測(cè)試套件
·為最終用戶集成的IP測(cè)試臺(tái)
·用于RTL地址映射的IP-XACT文件
·帶有豁免的代碼覆蓋率報(bào)告
·如果適用,提供IC設(shè)計(jì)文檔/數(shù)據(jù)表
為了確認(rèn)USB 3.2 IP核,需要對(duì)現(xiàn)有IP核進(jìn)行大量的更改。包括對(duì)RTL代碼本身的更改,以及對(duì)物理輸入和輸出的微調(diào)。對(duì)RTL代碼的更改是很有必要的,以使時(shí)鐘分布和時(shí)鐘生成適應(yīng)目標(biāo)FPGA架構(gòu)。為此,額外的、專用于FPGA的庫(kù)組件就被實(shí)例化,如所謂的MMCM(數(shù)字鎖相環(huán))。
這時(shí)也很有必要將數(shù)據(jù)路徑的總線寬度從32位調(diào)整到64位,否則就不可能控制PIPE接口中的時(shí)間沖突。由于對(duì)PIPE接口的更改,有可能將FPGA中的時(shí)鐘頻率從312.5MHz(32位實(shí)現(xiàn))降低到156.25MHz(64位實(shí)現(xiàn)),從而使設(shè)計(jì)適用于目標(biāo)FPGA目標(biāo)。最后,F(xiàn)PGA上的布局布線就可以在不存在時(shí)間沖突的情況下完成。
除了上述的設(shè)計(jì)變更之外,Xilinx/ AMD的專有微控制器,即專為該制造商的FPGA開發(fā)的Microblaze處理器也被集成到電路中,以執(zhí)行實(shí)驗(yàn)設(shè)置所需的固件代碼。由于USB 3.2 IP核被配置用于大容量存儲(chǔ)應(yīng)用,因此板載DDR3存儲(chǔ)器被用于外部存儲(chǔ),該存儲(chǔ)在FPGA本身上不可用,但在選定的原型平臺(tái)上可用。USB控制器通過主機(jī)AXI接口訪問該DDR3存儲(chǔ)器,而USB控制器的核心寄存器由處理器通過AHB從接口訪問。
硬件平臺(tái)選擇如下配置:

SmartDV USB 3.2 Gen2x1 Device Controller是為USB大容量存儲(chǔ)應(yīng)用而配置的。它完全符合USB 3.2規(guī)范(rev. 1.0)和USB 2.0規(guī)范(rev. 1.0)。IP內(nèi)核有以下接口:
? USB 3.2 Gen2物理層接口
?-64位PIPE數(shù)據(jù)路徑
? USB 2.0物理層接口
?-16位UTMI兼容接口
? 系統(tǒng)主數(shù)據(jù)路徑接口
?-64位AXI主接口
? 系統(tǒng)從屬寄存器訪問接口
?-32位AHB從從屬接口
? EPO處理器接口
除了可用于證明電路功能(包括仿真、CDC檢查、linting)正確性而采用的標(biāo)準(zhǔn)化驗(yàn)證方法之外,還進(jìn)行了廣泛的測(cè)試以確認(rèn)電路的實(shí)現(xiàn)。最后,對(duì)IP核進(jìn)行了認(rèn)證。為了實(shí)現(xiàn)這一目標(biāo),USB3.2 Gen2大容量存儲(chǔ)設(shè)備進(jìn)行了USB Implementers Forum, Inc.推薦的多項(xiàng)合規(guī)性和互操作性測(cè)試,諸如電氣、PHY、鏈路層和強(qiáng)度測(cè)試。認(rèn)證測(cè)試是在臺(tái)灣的Allion實(shí)驗(yàn)室進(jìn)行的,這是一家獲得USB-IF認(rèn)證的機(jī)構(gòu)。SmartDV的器件已與多個(gè)第三方主機(jī)進(jìn)行互操作以便進(jìn)行認(rèn)證。
未完待續(xù)
由于篇幅限制,本案例分析的合規(guī)性測(cè)試、互操作性測(cè)、實(shí)現(xiàn)方法以及全文總結(jié)等精彩內(nèi)容,將放在本系列文章的最后一篇發(fā)表。我們將介紹設(shè)計(jì)師可以采用哪些方法來(lái)進(jìn)行確認(rèn),以及在充滿挑戰(zhàn)的數(shù)字芯片驗(yàn)證過程中,如何做到魚與熊掌兼得的結(jié)論。

【直播預(yù)約】
