<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 業(yè)界動(dòng)態(tài) > 將ASIC IP核移植到FPGA上——更新概念并推動(dòng)改變以完成充滿(mǎn)挑戰的任務(wù)!

將ASIC IP核移植到FPGA上——更新概念并推動(dòng)改變以完成充滿(mǎn)挑戰的任務(wù)!

—— 數字芯片設計驗證經(jīng)驗分享
作者:Philipp Jacobsohn,SmartDV首席應用工程師;Sunil Kumar,SmartDV FPGA設計總監 時(shí)間:2024-07-31 來(lái)源:EEPW 收藏

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

本文引用地址:http://dyxdggzs.com/article/202407/461567.htm

在上篇文章中,我們介紹了將移植到原型平臺上的必要性,并對原型設計中各種考量因素進(jìn)行了總體概述,分析開(kāi)發(fā)ASIC原型驗證設計時(shí)需要考慮到的IP核相關(guān)因素,以及經(jīng)驗分享的八大主題的第一主題“明了需求、發(fā)現不同”。本篇文章是數字芯片設計經(jīng)驗分享系列文章的第二篇,將繼續分享第二到第四主題,包括FPGA原型的基本概念、常見(jiàn)挑戰和基本調整。

作為全球領(lǐng)先的驗證解決方案和設計IP提供商,的產(chǎn)品研發(fā)及工程應用團隊具有豐富的設計和驗證經(jīng)驗。在國產(chǎn)大容量FPGA芯片和IP新品不斷面市的今天,及其中國全資子公司“智權半導體”愿意與國內FPGA芯片開(kāi)發(fā)商、RISC-V IP和其他IP提供商、集成電路設計中心(ICC)合作,共同為國內數字芯片設計公司開(kāi)發(fā)基于本地FPGA的驗證與設計平臺等創(chuàng )新技術(shù)與產(chǎn)品。

主題1:一款原型和最終ASIC實(shí)現之間的要求有何不同?

主題2:當使用FPGA進(jìn)行原型設計時(shí)會(huì )立即想到哪些基本概念?

主題3:在將專(zhuān)為ASIC技術(shù)而設計的IP核移植到FPGA架構上時(shí)通常會(huì )遇到哪些困難?

主題4:為了支持基于FPGA的原型,通常需要對核進(jìn)行哪些更改?

主題5:我們如何確保在FPGA上實(shí)現所需的性能?

主題6:在時(shí)鐘方面必須加以考量的因素有哪些?

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

主題8:設計團隊還應該牢記什么?

主題2:在使用FPGA進(jìn)行原型設計時(shí)會(huì )用到哪些基本概念?

可重用性對IP核至關(guān)重要:這些內核應該盡可能使用通用RTL代碼來(lái)描述。這是確保用于A(yíng)SIC實(shí)現的電路描述,也可以在原型設計環(huán)境中使用而無(wú)需進(jìn)行重大更改的唯一方法。這是非常重要的,因為原型設計的任務(wù)之一就是檢查RTL代碼的正確性。

實(shí)現中的任何偏差都會(huì )帶來(lái)風(fēng)險,使用通過(guò)ASIC邏輯綜合的RTL代碼來(lái)替換特定用于FPGA實(shí)例的時(shí)候,都會(huì )產(chǎn)生功能性錯誤。使用盡可能完全相同的代碼庫,就可以增加在原型設計期間已經(jīng)得到驗證的功能在A(yíng)SIC實(shí)現中加以保留的可能性。關(guān)于不可能總是避免特定于FPGA組件實(shí)例化的原因,我們將在接下來(lái)的主題4中進(jìn)行更詳細的討論:為了支持基于FPGA的原型,通常需要對核進(jìn)行哪些更改呢?

使用已經(jīng)在A(yíng)SIC目標架構中經(jīng)過(guò)流片驗證的IP核,并且之前也已經(jīng)被IP提供商成功移植到FPGA組件中,就可以提供巨大的優(yōu)勢。這意味著(zhù)不僅創(chuàng )建電路所需的工作量可以大大減少,而且通過(guò)使用已經(jīng)在該領(lǐng)域被廣泛使用的預先定制電路組件,在A(yíng)SIC流片后檢測出故障的概率也大大降低。在這種情況下,重要的是不僅可以重用純RTL代碼,而且還可以減少創(chuàng )建邏輯綜合和布局布線(xiàn)(P&R)設置腳本以及其他所需約束文件的工作量,因為這些通常與IP核一起提供。所有這些都可以大大簡(jiǎn)化IP核的集成。

其他有利于原型設計的標準是:1)FPGA的選擇和2)專(zhuān)用EDA工具的使用。原則上來(lái)說(shuō),通過(guò)選擇容量盡可能大且速度快的FPGA,或使用已經(jīng)商業(yè)化的預先定制的基于FPGA的原型設計開(kāi)發(fā)板,都可以大大簡(jiǎn)化原型設計的工作。

image.png

圖2 Digilent Genesys 2 FPGA開(kāi)發(fā)板是一個(gè)普遍適用的原型設計平臺的案例(圖片?Digilent)

將IP核集成到一個(gè)復雜的ASIC設計中,通常也帶來(lái)了在FPGA上實(shí)現相同功能的期望。必須在兩種用例之間做出區分:一方面,用于原型設計場(chǎng)景;另一方面,通過(guò)利用可重構平臺來(lái)進(jìn)行物理驗證,可支持在早期階段(即在可提供ASIC芯片之前)就對相關(guān)的固件和軟件進(jìn)行測試。

由于FPGA的可編程性,在電路驗證中使用FPGA已成為既定的標準方法,即可通過(guò)迭代方法檢測和消除電路實(shí)現中的錯誤。與純模擬手段相比,FPGA支持更多的測試周期,因此它可以發(fā)現和消除在純模擬性驗證方法中可能難以發(fā)現的錯誤。其結果是,驗證覆蓋率得到了顯著(zhù)的增加。由于驗證要么是實(shí)時(shí)執行的,要么是以稍微降低的時(shí)鐘速率執行,甚至可以進(jìn)行長(cháng)期測試。

主題3:將專(zhuān)為ASIC技術(shù)設計的IP核移植到FPGA架構時(shí)通常會(huì )遇到哪些困難?

與人們的假設相反,IP核的使用通常不是一個(gè)純粹的“即插即用”過(guò)程,即并不是通過(guò)使用標準化的組件,就可確保即刻可用的電路功能。如果目標架構是FPGA,則結果更是如此。相反,IP核的使用需要對各種參數進(jìn)行精確的規劃。非常重要的是,這里應該特別考慮到許多IP核是專(zhuān)為ASIC而設計的,并且最初根本沒(méi)有打算將其移植到FPGA架構上。

此外,IP核通常是為了滿(mǎn)足各種各樣的電路實(shí)現的要求而創(chuàng )建的。一個(gè)用戶(hù)可能需要內核的某些特性,而另一個(gè)用戶(hù)可能需要不同的特性、設置或約束條件。這意味著(zhù)IP核在其本身的實(shí)現期間就必須考慮所有可能的應用場(chǎng)景,并且必須測試所有可能的配置。

需要考慮以下準則:

在A(yíng)SIC上實(shí)現的電路的運行時(shí)鐘頻率通??梢员菷PGA的時(shí)鐘頻率更高。因此,在FPGA實(shí)現中應該只使用實(shí)際需要的特性。在使用IP核時(shí),如果使用參數化來(lái)創(chuàng )建相關(guān)的RTL代碼,并且這些代碼可以很容易地適應各自的需求,這將帶來(lái)巨大的幫助。這也可以確保在沒(méi)有重大延遲的情況下提供所需的功能。

在某些情況下,仍然有必要降低FPGA的系統頻率(例如,降低到ASIC時(shí)鐘頻率的二分之一或十分之一)。特別是對于接口類(lèi)IP來(lái)說(shuō),這可能是一項復雜的工作,需要對外設以及相關(guān)的軟件和固件進(jìn)行額外的更改。在創(chuàng )建功能時(shí),采取預防措施以降低系統時(shí)鐘速率對于IP供應商來(lái)說(shuō)是很重要的。

雖然諸如PHY這樣的模擬電路可以用在A(yíng)SIC上,但將電路功能移植到FPGA上時(shí),情況并非如此。在某些情況下,模擬接口可以通過(guò)使用FPGA SerDes IO(在所有現代FPGA器件上通常都有提供)或高速收發(fā)器來(lái)實(shí)現,或者通過(guò)創(chuàng )建一個(gè)數字“仿真PHY”來(lái)模擬,以消除對外部PHY設備的需求。然而,為了提供與ASIC功能相同的模擬PHY接口,基于FPGA的原型需要使用這種外部硬件組件。重要的是要確保IP和PHY之間接口的通信,這樣各個(gè)不同的組件之間不僅可以“交談”,而且還可以相互“理解”。

主題4:為了支持基于FPGA的原型,通常必須對ASIC IP核進(jìn)行哪些更改?

如前所述,IP核應該使用通用的RTL代碼來(lái)描述。通用代碼的創(chuàng )建意味著(zhù)應該盡可能避免FPGA上諸如存儲、IO處理模塊、時(shí)鐘緩沖區等特定組件的實(shí)例化。這在某些領(lǐng)域是可能的,但由于各種不同原因并不總是能夠實(shí)現。這樣做的原因有很多,這里的一個(gè)例子是使用內存的實(shí)現:

●   存儲組件。ASIC版本的RTL代碼可能包含從ASIC的單元庫中選擇的、用于實(shí)現的實(shí)例化內存組件。這樣的實(shí)例并不能直接映射到FPGA中,因為FPGA邏輯綜合工具不能理解ASIC庫文件;因此,來(lái)自單元庫的組件是未知的,導致FPGA工具流中形成黑盒。因此,不能夠將這種存儲組件直接映射到FPGA上提供的存儲結構。專(zhuān)門(mén)為ASIC原型而設計的專(zhuān)用FPGA邏輯綜合工具可以讀取ASIC單元庫,但此類(lèi)工具成本極高,并且必須單獨購買(mǎi)。如果ASIC RTL包含來(lái)自某家供應商單元庫的實(shí)例(例如TSMC 28),有必要通過(guò)使用FPGA上提供的存儲結構來(lái)建模一個(gè)存儲單元,該單元可提供與從ASIC單元庫中選擇的存儲單元具有相同的功能。

●   參數化法。由于IP核被用于各種各樣的應用中,因此希望能夠用參數來(lái)進(jìn)行描述。例如,能夠從頂層控制整個(gè)IP核的存儲大小通常是有意義的。這使得根據用戶(hù)自己的需求來(lái)調整存儲單元的大小和限制FPGA資源的使用會(huì )變得容易。

●   寄存器陣列。ASIC版本的RTL代碼可能包含寄存器陣列,這些寄存器陣列在期望的配置中實(shí)現內存功能。這樣的陣列通常不會(huì )被FPGA邏輯綜合工具識別為內存,也不會(huì )映射到FPGA上可用的內存中,而是通過(guò)使用寄存器實(shí)現。但是,如果寄存器被用于實(shí)現而不是專(zhuān)用內存,則FPGA可實(shí)現的時(shí)鐘頻率可能會(huì )大大降低,因為存儲器實(shí)現需要大量的寄存器。在將大內存描述為寄存器陣列的情況下,甚至可能無(wú)法將它們映射到FPGA上,因為FPGA上可用的寄存器數量根本不足以實(shí)現。

●   所需的存儲單元。ASIC所需的存儲是專(zhuān)門(mén)為目標應用創(chuàng )建的。FPGA中一對一的映射將導致所用邏輯門(mén)的數量大大增加,從而導致可實(shí)現的時(shí)鐘頻率降低。因此,在FPGA中使用ASIC內存通常是不可取的。一個(gè)例子是在對功能安全有特殊要求的安全關(guān)鍵型應用中使用ASIC,這種應用需要檢查存儲內容的正確性和由于外部影響而可能發(fā)生的錯誤。

例如,為了能夠糾正α粒子的影響和由此產(chǎn)生的單粒子翻轉(SEU),就需要實(shí)現糾錯碼(ECC)電路。另一方面,在FPGA中提供的塊存儲器默認具有這樣的電路,如果有需要就可以通過(guò)特殊的邏輯綜合功能屬性激活該電路。實(shí)現帶有額外邏輯的冗余電路幾乎沒(méi)有意義,同時(shí)也有可能因為組件片芯占用過(guò)高而無(wú)法達到所需的時(shí)鐘頻率。

image.png

圖3 ASIC和FPGA的存儲結構不同,時(shí)鐘分配也有很大差異。使用鎖相環(huán)/數字鎖相環(huán)(PLL/DLL)電路可以簡(jiǎn)化這一點(diǎn),但是專(zhuān)有的PLL/DLL電路都需要從相應的庫中實(shí)例化

當前所有的FPGA都包含PLL、DLL或兩者的組合。這些電路支持多項時(shí)鐘操作,如時(shí)鐘失調、頻率合成(例如,輸入時(shí)鐘頻率的除法或乘法)和占空比編程。輸入時(shí)鐘和輸出時(shí)鐘可以相位對齊。雖然在A(yíng)SIC中有相應的電路,但在功能上存在差異。如果需要PLL/DLL,則必須從FPGA制造商的相應庫中對其實(shí)例化,并且必須確保時(shí)鐘分配方案適應目標FPGA架構。

接下來(lái):

本系列文章的目標是全面分享如何利用ASIC IP來(lái)實(shí)現完美的FPGA驗證原型的經(jīng)驗,在上篇和本篇在講述了如何了解ASIC IP與FPGA驗證原型的區別并提前做相應規劃和調整之后,還將詳細介紹與之相關(guān)的另外四大主題。下一篇文章將介紹我們如何確保在FPGA上實(shí)現所需的性能?以及在時(shí)鐘方面必須加以考量的因素有哪些?歡迎關(guān)注SmartDV全資子公司“智權半導體”微信公眾號繼續閱讀。

最后,SmartDV在相關(guān)介紹和分析之后,還提供實(shí)際案例:用基于FPGA的方法來(lái)驗證USB 3.2 Gen2x1 Device IP

USB 3.2 Gen2x1 Device IP:實(shí)現、驗證和物理驗證

USB 3.2 Gen2x1 Device IP的實(shí)現挑戰

歡迎關(guān)注SmartDV全資子公司微信公眾號

關(guān)于作者

Philipp Jacobsohn

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

Sunil Kumar

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



關(guān)鍵詞: ASIC IP FPGA SmartDV

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>