《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 解決方案 > 數字芯片設計驗證經驗分享:將ASIC IP核移植到FPGA上

數字芯片設計驗證經驗分享:將ASIC IP核移植到FPGA上

——更新概念并推動改變以完成充滿挑戰的任務!
2024-08-12
作者:Philipp Jacobsohn,SmartDV首席應用工程師   等線Sunil Kumar,SmartDV FPGA設計總監
來源:智權半導體

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

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

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

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

  主題2:當使用FPGA進行原型設計時會立即想到哪些基本概念?

  主題3:在將專為ASIC技術而設計的IP核移植到FPGA架構上時通常會遇到哪些困難?

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

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

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

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

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

  主題2:在使用FPGA進行原型設計時會用到哪些基本概念?

  可重用性對IP核至關重要:這些內核應該盡可能使用通用RTL代碼來描述。這是確保用于ASIC實現的電路描述,也可以在原型設計環境中使用而無需進行重大更改的唯一方法。這是非常重要的,因為原型設計的任務之一就是檢查RTL代碼的正確性。

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

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

  其他有利于原型設計的標準是:1)FPGA的選擇和2)專用EDA工具的使用。原則上來說,通過選擇容量盡可能大且速度快的FPGA,或使用已經商業化的預先定制的基于FPGA的原型設計開發板,都可以大大簡化原型設計的工作。

02.JPG

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

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

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

  主題3:將專為ASIC技術設計的IP核移植到FPGA架構時通常會遇到哪些困難?

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

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

  需要考慮以下準則:

  在ASIC上實現的電路的運行時鐘頻率通常可以比FPGA的時鐘頻率更高。因此,在FPGA實現中應該只使用實際需要的特性。在使用IP核時,如果使用參數化來創建相關的RTL代碼,并且這些代碼可以很容易地適應各自的需求,這將帶來巨大的幫助。這也可以確保在沒有重大延遲的情況下提供所需的功能。

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

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

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

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

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

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

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

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

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

03.JPG

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

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




更多精彩內容歡迎點擊==>>電子技術應用-AET<<

3952966954c9c6c308355d1d28d750b.jpg


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 人人澡 人人澡 人人看欧美 | 国产欧美日本在线 | 日韩欧美三级在线 | 免费看美女午夜大片 | 成人亚洲网站 | 最近的最新的中文字幕视频 | 好吊色几万部永久免费视频 | 成 人 动漫在线观看网站网站 | 日韩欧美亚洲另类 | 国产成人精彩在线视频50 | 国产日韩欧美亚洲精品95 | 久久mimi色 | 一本色道久久综合狠狠躁 | 九九精品在线视频 | 青青草在视线频久久 | 免费视频精品一区二区 | 中国xxx农村性视频 中国a毛片 | 亚洲大片 | 欧美日韩亚洲二区在线 | 男女猛烈无遮挡性视频 | xxxxxx日本护士xxxx | 一个人看的手机视频www | 国产色手机在线观看播放 | 毛片三级在线观看 | 日韩欧美亚洲一区 | 中文字幕一区二区三区在线播放 | 欧美日批视频 | 日韩久草| 一级乱理中文字幕韩国 | 国产精品欧美日韩一区二区 | 久久午夜夜伦鲁鲁片不卡 | 中文字幕亚洲一区 | 成人影院vs一区二区 | 国产亚洲精品hd网站 | 亚洲视频免费播放 | 亚洲成人一区二区 | 久久久久亚洲日日精品 | 香港三级网站 | 成人免费大片a毛片 | 在线播放影院 | 在线看片你懂的 |