<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 實際案例說明用基于FPGA的原型來測試、驗證和確認IP——如何做到魚與熊掌兼得?

          實際案例說明用基于FPGA的原型來測試、驗證和確認IP——如何做到魚與熊掌兼得?

          —— 數(shù)字芯片設(shè)計驗證經(jīng)驗分享文章
          作者:Philipp Jacobsohn,SmartDV首席應(yīng)用工程師;Sunil Kumar,SmartDV FPGA設(shè)計總監(jiān) 時間:2024-10-28 來源:EEPW 收藏

          本系列文章從數(shù)字芯片設(shè)計項目技術(shù)總監(jiān)的角度出發(fā),介紹了如何將芯片的產(chǎn)品定義與設(shè)計和驗證規(guī)劃進行結(jié)合,詳細講述了在FPGA上使用硅知識產(chǎn)權(quán)(IP)內(nèi)核來開發(fā)ASIC原型項目時,必須認真考慮的一些問題。

          本文引用地址:http://www.ex-cimer.com/article/202410/464061.htm

          全文從介紹使用IP核這種預(yù)先定制功能電路的必要性開始,通過闡述開發(fā)ASIC原型設(shè)計時需要考慮到的IP核相關(guān)因素,用八個重要主題詳細分享了利用ASIC IP來在FPGA上開發(fā)原型驗證系統(tǒng)設(shè)計時需要考量的因素。同時還提供了實際案例來對這些話題進行詳細分析。

          這八個主題包括:一款原型和最終ASIC實現(xiàn)之間的要求有何不同?當使用FPGA進行原型驗證時會立即想到哪些基本概念?在將專為ASIC而設(shè)計的IP核移植到FPGA架構(gòu)上時通常會遇到哪些困難?為了支持基于FPGA的原型,通常需要對ASIC IP核進行哪些更改?我們?nèi)绾未_保在FPGA上實現(xiàn)所需的性能?在時鐘方面必須加以考量的因素有哪些?如果目標技術(shù)是FPGA,而不是ASIC,那么需要如何測試IP核的功能?設(shè)計團隊最后還應(yīng)該牢記什么?

          在以往的文章分析了這八個主題之后,最后將通過一個實際案例來回顧前面講到的八項關(guān)鍵設(shè)計考量因素,并揭示合規(guī)性測試、互操作性測和實現(xiàn)方法,以及從不同的方法可能帶來不同的結(jié)果與目前非常流行的“視點前移(shift left)”模式相結(jié)合來對全文進行總結(jié)等精彩內(nèi)容。

          作為全球領(lǐng)先的驗證解決方案和設(shè)計IP提供商,SmartDV的產(chǎn)品研發(fā)及工程應(yīng)用團隊具有豐富的設(shè)計和驗證經(jīng)驗。在國產(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è)計中心(ICC)合作,共同為國內(nèi)數(shù)字芯片設(shè)計公司開發(fā)基于本地FPGA的驗證與設(shè)計平臺等創(chuàng)新技術(shù)與產(chǎn)品。

          實際案例:使用基于FPGA的方法來確認USB 3.2 Gen2x1 Device IP

          要實現(xiàn)一個可工作的FPGA原型并不是一件容易的事。通常,工程師的想法是使用合適的FPGA邏輯綜合和布局布線(P&R)工具,將已經(jīng)可用于ASIC技術(shù)的IP核映射到足夠大且快速的FPGA上就足夠了,以達到一個功能性FPGA實現(xiàn)。這里的要求是所需的功能應(yīng)該即刻可用,并且無需進行任何更改。IP核的制造商必須達到這一期望。畢竟,IP核應(yīng)該能夠集成到現(xiàn)有設(shè)計中,且不會有任何重大的時間延遲。假設(shè)IP供應(yīng)商已經(jīng)提前進行了所有必要的測試,以致于將功能集成到現(xiàn)有電路中毫無困難。

          然而對于IP提供商來說,將IP核移植到FPGA架構(gòu)中是一個具有挑戰(zhàn)性的目標——如果不付出相當大的努力,這幾乎是不可能的。事實是,在沒有適當?shù)幕A(chǔ)架構(gòu)和外圍設(shè)備的情況下,測試一個孤立的IP核只有有限的價值。例如,“獨立”實現(xiàn)并不能保證在符合所有規(guī)范的情況下實現(xiàn)所需的功能,特別是在FPGA不僅僅包含孤立IP核的情況下。如果要在FPGA中實現(xiàn)具有高時鐘頻率要求的其他電路部件,這一點尤為重要。

          IP制造商面臨的一個特別挑戰(zhàn)是缺乏在后期實現(xiàn)中添加的電路組件的相關(guān)信息,如它們的復(fù)雜性,它們對時鐘速度的要求等。事實上,一個內(nèi)核可能已經(jīng)成功地在與該問題無關(guān)的ASIC流片中使用了很多次。畢竟,IP核不僅要滿足標準和規(guī)范所定義的所有參數(shù)(例如,USB 3.2總線協(xié)議規(guī)范),而且即使將其集成到一個復(fù)雜的整體系統(tǒng)中,該系統(tǒng)被映射到一個可編程器件(即FPGA)上,也仍然要能夠工作。

          這樣一個完整系統(tǒng)的復(fù)雜性,加上它的所有組件,如微處理器、信號處理電路和接口,對所需的時鐘頻率是否能夠?qū)崿F(xiàn)以及FPGA提供的資源是否足夠都有重大影響。必須有足夠數(shù)量的等效邏輯門,但其他硬件參數(shù)也有限制,如存儲器資源、時鐘分布組件、高速IO和/或收發(fā)器等。

          為了實現(xiàn)可用于在FPGA電路環(huán)境中測試IP核的功能性系統(tǒng),IP核供應(yīng)商必須考慮的不僅僅是要提供的功能。IP供應(yīng)商可以接觸到自己創(chuàng)建的功能,但不能接觸到IP核用戶使用的開發(fā)和測試環(huán)境,也不能訪問連接最終產(chǎn)品的外設(shè),并通過這些外設(shè)提供物理輸入信號。同樣,也不能訪問客戶使用的模擬刺激和測試模式生成器。

          驗證覆蓋范圍也被視為是至關(guān)重要的;在任何可能的情況下,都應(yīng)該涵蓋極端情況,以避免在使用IP的后續(xù)階段出現(xiàn)令人不快的意外情況。值得注意的是測試用的電路板,通常情況下市場可提供的印刷電路板,與IP核客戶隨后將用于所有測試的電路板都有不同。

          在輸出端,可以預(yù)見到的復(fù)雜性并不比輸入信號的供應(yīng)端更低。以USB接口為例,如果實現(xiàn)接口IP,就需要使用外部PHY作為物理接口。因為這是一個模擬接口,在FPGA上不可用,因此必須使用外部組件。這種PHY由各種各樣的制造商提供,盡管希望將USB控制器連接到由最終客戶選擇的外部PHY組件上,不需要對物理接口進行任何與電氣特性相關(guān)的更改,如電壓值、擺幅、輸出引腳的驅(qū)動器強度或接口的引腳分配,所有參數(shù)都必須在功能測試中進行詳細驗證。

          這是確保物理接口符合所有規(guī)范的唯一方法,并且數(shù)據(jù)傳輸?shù)馁|(zhì)量也要符合預(yù)期。所有這些功能測試都必須提前進行,以保證在交付前的階段就可提供功能。由于IP核必須是通用的,即不同的客戶在不同的應(yīng)用中選擇PHY來配套都可用,測試設(shè)置必須在測試中包括來自不同制造商的許多不同的PHY。

          創(chuàng)建數(shù)據(jù)庫也需要一些工作量。當然,僅僅提供RTL代碼和相應(yīng)的約束條件是不夠的。為了簡化將IP核集成到現(xiàn)有電路中的工作,通常提供以下數(shù)據(jù)庫:

          ●    Verilog中的RTL設(shè)計

          ●   RTL能夠在客戶選擇的FPGA邏輯綜合工具上可以進行綜合

          ●   具有豁免文件的Lint、CDC和邏輯綜合腳本

          ●   Lint、CDC和邏輯綜合報告

          ●   如果適用,提供C語音驅(qū)動包(裸機驅(qū)動)

          ●   更詳細的技術(shù)文檔

          ●   易于使用的、帶有Verilog測試用例的Verilog測試環(huán)境

          ●   IP測試套件

          ●   為最終用戶集成的IP測試臺

          ●   用于RTL地址映射的IP-XACT文件

          ●   帶有豁免的代碼覆蓋率報告

          ●   如果適用,提供IC設(shè)計文檔/數(shù)據(jù)表

          USB 3.2 Gen2x1 Device IP:實現(xiàn)、驗證和確認(Validation)

          為了確認USB 3.2 IP核,需要對現(xiàn)有IP核進行大量的更改。包括對RTL代碼本身的更改,以及對物理輸入和輸出的微調(diào)。對RTL代碼的更改是很有必要的,以使時鐘分布和時鐘生成適應(yīng)目標FPGA架構(gòu)。為此,額外的、專用于FPGA的庫組件就被實例化,如所謂的數(shù)字鎖相環(huán)(MMCM)。

          這時也很有必要將數(shù)據(jù)路徑的總線寬度從32位調(diào)整到64位,否則就不可能控制PIPE接口中的時間沖突。由于對PIPE接口的更改,有可能將FPGA中的時鐘頻率從312.5MHz(32位實現(xiàn))降低到156.25MHz(64位實現(xiàn)),從而使設(shè)計適用于目標FPGA目標。最后,F(xiàn)PGA上的布局布線就可以在不存在時間沖突的情況下完成。

          除了上述的設(shè)計變更之外,Xilinx / AMD的專有微控制器,即專為該制造商的FPGA開發(fā)的Microblaze處理器也被集成到電路中,以執(zhí)行實驗設(shè)置所需的固件代碼。由于USB 3.2 IP核被配置用于大容量存儲應(yīng)用,因此板載DDR3存儲器被用于外部存儲,該存儲在FPGA本身上不可用,但在選定的原型平臺上可用。USB控制器通過主AXI接口訪問該DDR3存儲器,而USB控制器的核心寄存器由處理器通過AHB從接口訪問。

          硬件平臺選擇如下配置:

          1730094092787391.png

          SmartDV USB 3.2 Gen2x1 Device Controller是為USB大容量存儲應(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)正確性而采用的標準化驗證方法之外,還進行了廣泛的測試以確認電路的實現(xiàn)。最后,對IP核進行了認證。為了實現(xiàn)這一目標,USB3.2 Gen2大容量存儲設(shè)備進行了USB Implementers Forum, Inc.推薦的多項合規(guī)性和互操作性測試,諸如電氣、PHY、鏈路層和強度測試。認證測試是在臺灣的Allion實驗室進行的,這是一家獲得USB-IF認證的機構(gòu)。SmartDV的器件已與多個第三方主機進行互操作以便進行認證。

          具體采用以下方法進行確認:

          USB 3.2 Device IP合規(guī)性測試

          ●   USBCV第9章合規(guī)性測試(SSP/SS/HS/FS模式)

          ●   鏈路層合規(guī)性測試(SSP/SS模式)

          所有合規(guī)性測試都已成功通過。

          USB 3.2 Device IP互操作性測試

          ●   與USB.org推薦的ASMedia USB 3.2 Gen2 Host進行互操作驗證

          ●   器件列舉測試(采用SSP/SS/HS/FS模式)

          ●   連接/分離測試

          ●   使用CrystalDiskMark性能基準測試工具,來進行數(shù)據(jù)傳輸測試(采用SSP/SS/HS/FS模式)

          ●   MSC合規(guī)性測試

          ●   低功耗測試(睡眠/休眠/冷啟動/熱啟動)

          ●   金樹(gold tree)互操作性測試(拓撲更改)

          所有互操作性測試都已成功通過。

          image.png

          圖1 USB 3.2 Gen2x1 Device IP確認平臺框圖

          為了確認USB 3.2 Gen2x1器件的控制器,使用了來自制造商AMD / Xilinx的現(xiàn)成商用的FPGA平臺。物理接口是通過使用來自M31公司的外部PHY卡來實現(xiàn)。

          USB 3.2 Gen2x1 Device IP實現(xiàn)挑戰(zhàn)

          在FPGA中實現(xiàn)USB 3.2控制器絕非易事。由于一些時鐘頻率相當高,時序收斂并不是一件容易的事;它需要對PIPE接口進行設(shè)計更改,并需要在FPGA的邏輯綜合(Synopsys Synplify Premier)和Xilinx/AMD Vivado工具布局和布線功能中進行多次迭代。值得注意的是,所選FPGA中的邏輯資源利用率相對較低。

          可以假設(shè),在資源利用率較高的情況下,時序收斂會更加困難。基于這一假設(shè),我們注意到市場上在過去一段時間里已經(jīng)出現(xiàn)了一些功能更強大的FPGA器件,如Xilinx/AMD Virtex Ultrascale+/Kintex Ultrascale+、英特爾Stratix-10或Lattice CertusPro-NX,它們都基于比Xilinx/AMD Virtex-7 FPGA更先進的工藝技術(shù),雖然后者在設(shè)計和設(shè)置這些測試的時候仍然是被廣泛使用的器件??梢苑判牡丶僭O(shè),使用這些新一代FPGA器件可以更容易地確保實現(xiàn)所需的時序。

          Virtex-7 FPGA(xc7vx485tffg1761-2)的資源利用率如下:

          1730094140741404.png

          通過調(diào)整這兩種工具(Synopsys Synplify Premier和Xilinx/AMD Vivado)的約束和設(shè)置,在不違反時間約束的情況下就可能實現(xiàn)。系統(tǒng)中所使用的時鐘域和對應(yīng)的時鐘頻率如下圖所示:

          1730094165606906.png

          然而,即使在時序收斂之后,設(shè)計也不會立即出現(xiàn)在板卡上。從PHY接收的數(shù)據(jù)沒有在USB 3.2控制器中正確采樣。因此,有必要部署額外的組件來調(diào)整IO延遲值,以便正確地對數(shù)據(jù)進行采樣。

          總的來說,使USB 3.2控制器能夠與外部PHY互操作是一項極具挑戰(zhàn)性的任務(wù)。除了解決某些互操作性問題外,還需要開發(fā)在Microblaze微控制器上運行所需的固件代碼,以便在大容量存儲應(yīng)用模式下確認設(shè)計。

          image.png

          圖2 在SmartDV實驗室中的確認和性能測量設(shè)置

          電路功能的確認,以及所有互操作性和合規(guī)性測試,都是在AMD/Xilinx的標準FPGA板上進行的。此外,測試設(shè)置允許我們?nèi)ゴ_定可實現(xiàn)的數(shù)據(jù)吞吐量。所有的測試和測量都使用了合適的設(shè)備。為了確定可實現(xiàn)的數(shù)據(jù)吞吐量,我們使用了CrystalDiskMark的性能基準測試工具。

          結(jié)論:魚與熊掌兼得?

          部署可同樣用于ASIC和FPGA架構(gòu)的IP核是一項極具挑戰(zhàn)性的任務(wù)。因此,必須謹慎選擇IP核供應(yīng)商,并全面詢問其在FPGA實現(xiàn)方面的專業(yè)知識。

          事實上,即使一款I(lǐng)P核已經(jīng)經(jīng)歷了許多次成功的ASIC流片,并在許多芯片產(chǎn)品中得到了使用,但這并不意味著它可以很容易地用于FPGA。相反,盡管FPGA的復(fù)雜度通常比硬連線器件低很多,它們至少也需要與ASIC同樣的重視程度。其將花費的努力經(jīng)常被低估和忽視,特別是在ASIC開發(fā)在實現(xiàn)和驗證方面捆綁了所有工程資源的時候。這在很大程度上是因為在有時間壓力的情況下,再加上不斷要求產(chǎn)品能夠盡快進入市場,所以開發(fā)ASIC時難以對FPGA等可編程器件給予必要的關(guān)注。

          事實仍然是,在ASIC驗證中被忽視的錯誤幾乎不可避免地會導(dǎo)致至少需要一次額外的流片,其結(jié)果是導(dǎo)致成本大幅增加和項目嚴重延遲,這與流行術(shù)語“加快產(chǎn)品上市時間”所描述的完全相反。通過認真地使用FPGA原型,實現(xiàn)“一次流片成功”的概率顯著增加,這會帶來許多優(yōu)勢,包括產(chǎn)品更早進入市場、研發(fā)團隊可以即刻轉(zhuǎn)向新的項目、項目整體成本得以優(yōu)化等。

          FPGA原型設(shè)計增加了驗證覆蓋范圍,并增加了在產(chǎn)品開發(fā)的早期階段發(fā)現(xiàn)錯誤的可能性,從而減少了在后期必須處理的錯誤。當然,使用預(yù)定義的和經(jīng)過測試的IP核也提供相當大的優(yōu)勢,因為在這里可以預(yù)期更少的意外。通過擴展,最佳的IC設(shè)計解決方案則是結(jié)合了作為原型設(shè)計載體的FPGA和經(jīng)硅驗證的IP內(nèi)核,來作為無錯誤實現(xiàn)的保證。使用經(jīng)過試驗和測試的驗證工具及其所有功能,就可以完成其他工作,從而實現(xiàn)早期目標并成功完成項目。

          現(xiàn)在有一個很流行的術(shù)語可以形容這種方法:視點前移(shift left)。

          最后但同樣重要的一點是,我們必須提到快速完成項目最重要的因素:人。經(jīng)驗豐富的專家團隊對于電路功能的實現(xiàn)、驗證和確認的價值是不言而喻的——這是最主要的成功因素。對于所有的工具、輔助工具和預(yù)定義的電路功能而言,如果你不知道如何高效地組合和使用它們,則它們都是毫無用處的。無論目標是ASIC還是FPGA,擁有強大且可靠的合作伙伴、具有必要專業(yè)知識和適當經(jīng)驗的專家團隊,都是您成功的關(guān)鍵。

          雖然電路設(shè)計從來都不是一件容易的事,但選擇合適的合作伙伴肯定會讓您更輕松。

          本系列文章的目標是全面分享經(jīng)驗,幫助讀者利用ASIC IP來實現(xiàn)完美的FPGA驗證原型。歡迎關(guān)注SmartDV全資子公司“智權(quán)半導(dǎo)體”微信公眾號閱讀:

          1730094201429667.png

          關(guān)于作者:Philipp Jacobsohn

          Philipp Jacobsohn是SmartDV的首席應(yīng)用工程師,他為北美、歐洲和日本地區(qū)的客戶提供設(shè)計IP和驗證IP方面的支持。除了使SmartDV的客戶實現(xiàn)芯片設(shè)計成功這項工作,Philipp還是一個狂熱的技術(shù)作家,樂于分享他在半導(dǎo)體行業(yè)積累的豐富知識。在2023年加入SmartDV團隊之前,Philipp在J. Haugg、Synopsys、Synplicity、Epson Europe Electronics、Lattice Semiconductors、EBV Elektronik和SEI-Elbatex等擔任過多個管理和現(xiàn)場應(yīng)用職位。Philipp在瑞士工作。

          關(guān)于作者:Sunil Kumar

          Sunil Kumar是SmartDV的FPGA設(shè)計總監(jiān)。作為一名經(jīng)驗豐富的超大規(guī)模集成電路(VLSI)設(shè)計專業(yè)人士,Sunil在基于FPGA的ASIC原型設(shè)計(包括FPGA設(shè)計、邏輯綜合、靜態(tài)時序分析和時序收斂)和高速電路板設(shè)計(包括PCB布局和布線、信號完整性分析、電路板啟動和測試)等方面擁有豐富的專業(yè)知識。在2022年加入SmartDV團隊之前,Sunil在L&T Technology Services Limited擔任過項目經(jīng)理和項目負責人職位。Sunil在印度工作。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();