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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 業(yè)界動態(tài) > 將ASIC IP核移植到FPGA上——如何測試IP核的功能和考慮純電路以外的其他因素

          將ASIC IP核移植到FPGA上——如何測試IP核的功能和考慮純電路以外的其他因素

          作者:Philipp Jacobsohn,SmartDV首席應(yīng)用工程師;Sunil Kumar,SmartDV FPGA設(shè)計總監(jiān) 時間:2024-10-07 來源:EEPW 收藏

          本系列文章從數(shù)字芯片設(shè)計項目技術(shù)總監(jiān)的角度出發(fā),介紹了如何將芯片的產(chǎn)品定義與設(shè)計和驗證規(guī)劃進行結(jié)合,詳細講述了在FPGA上使用IP核來開發(fā)ASIC原型項目時,必須認真考慮的一些問題。文章從介紹使用預(yù)先定制功能即IP核的必要性開始,通過闡述開發(fā)ASIC原型設(shè)計時需要考慮到的IP 核相關(guān)因素,用八個重要主題詳細分享了利用ASIC IP來在FPGA上開發(fā)原型驗證系統(tǒng)設(shè)計時需要考量的因素。

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

          在上篇文章中,我們分享了第五到第六主題,介紹了我們?nèi)绾未_保在FPGA上實現(xiàn)所需的性能和在時鐘方面必須加以考量的因素有哪些。本篇文章是SmartDV數(shù)字芯片設(shè)計經(jīng)驗分享系列文章的第四篇,將繼續(xù)分享第七、第八主題,包括如果目標技術(shù)是FPGA,而不是ASIC,那么需要如何測試IP 核的功能? 設(shè)計團隊還應(yīng)該牢記什么?

          作為全球領(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)品。

          1   話題7:如果目標技術(shù)是FPGA,而不是ASIC,那么需要如何測試IP核的功能?

          復(fù)雜電路的驗證通常必須在FPGA上進行,其嚴格程度等同于ASIC開發(fā)的標準。眾所周知,在這方面是不允許有錯誤產(chǎn)生,因為后果很嚴重。ASIC 的每個分岔(例如,由于在電路開發(fā)期間產(chǎn)生的錯誤,而在驗證期間沒有發(fā)現(xiàn))不僅會導(dǎo)致產(chǎn)品交付嚴重延遲,而且還會導(dǎo)致大量的額外成本。當然,在使用FPGA 時不會出現(xiàn)這樣的問題,因為在應(yīng)用設(shè)計更改后,這些組件可以重新配置而無需浪費太多精力——但是,在使用可編程的組件時,應(yīng)該采取最大的謹慎態(tài)度。這是很好的工程精神!

          最終,F(xiàn)PGA被用于消除早期開發(fā)階段的設(shè)計錯誤,從而確保在ASIC上實現(xiàn)的電路基本上是無錯誤的。遺憾的是,正是由于在可編程的組件上執(zhí)行功能測試的簡便性和速度,往往使人們不愿意首先通過仿真驗證RTL代碼的更改,而是在實際操作中測試電路設(shè)計。這里忽略的是,這種方法可能會忽略在仿真中所使用的測試臺可以發(fā)現(xiàn)的極端情況。在某些情況下,驗證覆蓋范圍會減少——盡管FPGA允許在相同的時間范圍內(nèi)比仿真運行更多的驗證周期。如果使用FPGA 認真地進行功能測試,則這種驗證方法可提供比仿真驗證方法更多的可能性。

          通常情況下,ASIC和SoC設(shè)計包含許多復(fù)雜的行業(yè)標準接口,用于與外部設(shè)備(USB、PCIe 等)進行通信或連接標準總線(AHB、AXI 等)。在設(shè)計驗證過程中,這些接口還被用于連接測試環(huán)境(測試臺)。這種連接通過稱為驗證IP(VIP)的模塊實現(xiàn)。驗證IP是一種特殊的IP核,它將給定接口的總線功能模型(BFM)的功能與測試臺中使用的測試用例框架功能相結(jié)合。驗證IP是一個可重復(fù)使用的IP 核,可用于創(chuàng)建必要的測試,以縮短SoC 驗證時間并增加覆蓋率。雖然驗證IP通常用于驗證標準總線協(xié)議,但它也可用于系統(tǒng)性能分析,并且越來越多地用于模擬、仿真和虛擬原型設(shè)計。

          image.png

          圖7 帶有主接口、設(shè)備和集線器USB4的驗證基本工作原理圖,使用專用驗證IP(VIP)可以顯著增加驗證覆蓋范圍。

          驗證通常是電路創(chuàng)建過程中最耗時的部分。專用的驗證IP可以顯著地增加驗證覆蓋范圍,可覆蓋極端情況,并可顯著地減少設(shè)置仿真系統(tǒng)所需的總體工作量(例如,創(chuàng)建模擬刺激)。

          測試通??梢酝ㄟ^使用FPGA來實時進行。這意味著直接與ASIC相比,F(xiàn)PGA可以相同或降低的時鐘頻率來運行設(shè)計。即使在使用FPGA時需要降低時鐘頻率,因為可編程性總是需要邏輯單元的冗余,因此需要較大的芯片面積(這反過來導(dǎo)致更高的延遲);但與純仿真相比,驗證速度仍然要高得多。這種加速型驗證使得發(fā)現(xiàn)在仿真中永遠不會發(fā)現(xiàn)的錯誤成為可能。

          盡管使用FPGA進行ASIC原型設(shè)計具有諸多優(yōu)點,但將最初專為ASIC目標項目而開發(fā)的電路移植到FPGA上并不是一件容易的事情,這一點怎么說都不為過。

          最重要的一點是,在FPGA中實現(xiàn)電路通常需要對電路本身進行更改。在前面的主題部分中,我們已經(jīng)研究了可能需要實施的更改。每一次電路的改變都意味著,稍后將被映射到ASIC上的電路是已經(jīng)驗證的,但并不是完全相同的,而是經(jī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è)計)——以便在交付前輕松識別有故障的ASIC組件并相應(yīng)地對其進行篩選。這種測試結(jié)構(gòu)在FPGA中是不需要的,因為這些組件都是已經(jīng)過測試才交付給最終客戶,因此不需要插入額外的測試結(jié)構(gòu)。事實上,這些組件實際上是破壞性的,因為實現(xiàn)將導(dǎo)致組件利用率的增加,并且還需要更復(fù)雜的時鐘分布。有必要消除在FPGA邏輯綜合中為測試引入的預(yù)防措施(例如,掃描-FF),或?qū)⑺鼈儭半[藏”在邏輯綜合中。

          “干凈”的設(shè)計實現(xiàn)使用“define”和“ifdef”指令根據(jù)期望的目標架構(gòu)(ASIC或FPGA)來選擇這樣的測試結(jié)構(gòu),或者使它們對于邏輯綜合“不可見”。通過使用這些指令,也可以實現(xiàn)用于存儲器和時鐘生成或分配的特殊FPGA庫組件的集成,這使得IP 核的用戶能夠簡化電路以適應(yīng)所需的目標架構(gòu)。其目的是加快電路的創(chuàng)建,從而提高生產(chǎn)率。當然,應(yīng)該指出的是,最終的實現(xiàn)并不是完全相同的。然而,由于目標元件也不相同,因此對電路進行相應(yīng)的調(diào)整是不可避免的。

          對原始設(shè)計進行更改是不可取的。原型設(shè)計的理念是將稍后在ASIC中實現(xiàn)的功能映射到一個可編程組件中,而不需要進行重大更改;即使有改動,最好也是同步相同的更改,以檢測可能的錯誤。但是,如果電路本身發(fā)生變化,則可能由于變化而引入誤差。由于實現(xiàn)不完全相同,不能保證ASIC 電路中沒有更多的錯誤,因為它沒有事先經(jīng)過充分的測試。然而,如果在ASIC 實現(xiàn)之前根本沒有使用FPGA,則可以實現(xiàn)更高的驗證覆蓋率。畢竟,要驗證的電路只有部分區(qū)域是不同的,并且與仿真性驗證方法相比,允許更多的測試周期。

          另一個需要考慮的要點是發(fā)送和接收數(shù)據(jù)的物理通信接口,諸如MIPI、USB、PCIe 等接口IP 通過差分接口傳輸串行或并行高速數(shù)據(jù)信號。為了在發(fā)射器和接收器之間建立連接,就需要一個PHY 來傳輸差分數(shù)據(jù)流。這種PHY 可以在ASIC 上作為模擬電路來實現(xiàn),然而這在FPGA 上是不可行的,或者如果行的話,那么只能通過使用可提供的SerDes IO 或高速收發(fā)器作為輔助。

          當然,這意味著FPGA 實現(xiàn)與ASIC 電路完全不相同。在絕大多數(shù)情況下,有必要通過連接到FPGA 的附加外部PHY 組件來提供物理接口。如果電路在實際運行中進行測試,其物理接口將與最終的ASIC 實現(xiàn)之間存在差異。

          總之,可以說大多數(shù)驗證工具都可以同時用于ASIC和FPGA目標(例如,仿真器、形式驗證等)。然而,在某些方面存在顯著差異,例如RTL 代碼中存在的測試結(jié)構(gòu)或通過PHY 接口將電路連接到“外部世界”。原則上來說,使用FPGA 可在驗證覆蓋率方面提供顯著的優(yōu)勢,但是移植專為ASIC開發(fā)的電路部件總是需要相當多的額外工作。在這種情況下,使用驗證IP可以為簡化復(fù)雜的功能測試、增加驗證覆蓋率和加速驗證做出重大貢獻。

          2   主題8:設(shè)計團隊還應(yīng)該牢記什么?

          我們已經(jīng)涵蓋了很多領(lǐng)域,但是當這些IP 最初是為ASIC目標架構(gòu)創(chuàng)建的時候,在FPGA 方向上移植電路時需要考慮更多。

          正如已經(jīng)詳細解釋的那樣,可編程組件的使用適合于在實際操作中測試電路,從而確保它在很大程度上是無錯誤的。在項目的早期階段就有一個可用的功能電路具有許多價值:在其幫助下,不僅可以先進行軟件和固件的設(shè)計,而且還可以在ASIC 仍處在流片過程中就使用基于FPGA 的原型對它們進行測試。

          如果要使用FPGA,則應(yīng)該在RTL 創(chuàng)建期間就采用“專為原型而設(shè)計”的方法。這并不總是容易實現(xiàn)的。例如,如果ASIC 電路設(shè)計的要求是盡可能將功耗保持到最低,那么除了對時鐘分布進行操作(例如,通過插入門控時鐘結(jié)構(gòu))之外,還經(jīng)常使用基于鎖存器的設(shè)計方法。該想法是使用鎖存器而不是時鐘寄存器。時鐘控制元件簡化了電路實現(xiàn),因為時鐘也使“時間概念”可用。然而,寄存器邏輯的使用總是導(dǎo)致更高的功率需求,因為功耗與時鐘元件的數(shù)量及其時鐘頻率成比例地增加。

          與ASIC不同,F(xiàn)PGA不是很適合基于鎖存器的電路實現(xiàn),因為——正如前面主題6 中提到的:在時鐘方面必須考慮什么?——只定義“最壞情況下”的時序信息。在FPGA時序分析中通常不計算最小時序和延遲。如果一種時鐘方法不能通過寄存器邏輯檢測,那么時間行為就不再是可預(yù)測的,并且可能導(dǎo)致所謂的“競爭條件”和其他問題,這些都使得FPGA 不可能可靠地運行。

          最后,這意味著不同的電路實現(xiàn)對于各自的目標模塊是很有必要的。這里的目標是實現(xiàn)相同的功能,盡管在實現(xiàn)路徑上有所不同。

          前面提到的電路設(shè)計方法應(yīng)該在產(chǎn)品開發(fā)的早期階段就應(yīng)該考慮到目標架構(gòu)之中的相關(guān)因素,不僅限于鎖存器的實現(xiàn)。在FPGA 中也有必要注意同步電路的實現(xiàn),和避免使用FPGA 中不可用的電路(例如,雙邊沿時鐘FF)。目標架構(gòu)還必須考慮到可實現(xiàn)的時鐘頻率。要避免長組合路徑,因為可能會出現(xiàn)高時序違規(guī)。在基于FPGA 的原型中,驗證不僅僅指電路功能和實現(xiàn)所需的時間;通常還需要包括其他的測試,同樣重要的參數(shù)在開發(fā)活動中越快實現(xiàn)越好。例如,除了前面討論的軟件和固件的開發(fā)之外,還應(yīng)該提到ASIC 組件的節(jié)能設(shè)計。

          對于一個只實現(xiàn)純電路功能的原型來說,功率損耗實際上根本不起作用。然而,對于ASIC 的運行絕對有必要的降低功耗的方法,同樣也可以在FPGA 中使用,并將其包含在原型設(shè)計活動中,所以這是值得期待的。雖然不可能使用ASIC 中可用的各種選項,但至少可以通過使用適當?shù)墓ぞ吆湍_本來模擬它們的功能。這里的方法是至少估計通過不同方法可以實現(xiàn)功耗降低(例如,時鐘門控以降低寄存器切換率、關(guān)閉ASIC 上的整個區(qū)域、在ASIC 的一些部分使用不同的電源電壓等)。

          上述方法在FPGA 上是不可用的,除了物理上可實現(xiàn)的時鐘門控,這也會對FPGA 的可靠運行產(chǎn)生負面影響。通過讀取通用格式(UPF = 統(tǒng)一功率格式;CPF =通用功率格式)的相應(yīng)腳本,和使用可模擬支持這些格式的FPGA邏輯綜合工具,至少可以估算這些措施將如何影響ASIC的功耗。

          在這種情況下,有一件事是明確的:電路功能越早可用,相應(yīng)的測試就能越早進行。因此,使用諸如IP核這樣的預(yù)先制作的模塊具有巨大的潛力,可以加速ASIC實現(xiàn)和驗證的各個階段。

          本系列文章接下來將通過一個實際案例來回顧前面講到的八項關(guān)鍵設(shè)計考量因素:使用基于FPGA 的方法來驗證USB 3.2 Gen2x1 Device IP,大家可以通過關(guān)注“智權(quán)半導(dǎo)體”微信公眾號閱讀該案例分析。

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

          然而,將IP 核移植到FPGA 架構(gòu)中對于IP提供商來說是一個具有挑戰(zhàn)性的目標——如果不付出相當大的努力,這幾乎是不可能的。接下來我們將通過一個實際案例,即使用基于FPGA的方法來驗證USB 3.2Gen2x1 Device IP來說明其中的困難和克服之道。

          (本文來源于《EEPW》



          關(guān)鍵詞: 202409

          評論


          技術(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); })();