<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è) > 嵌入式系統 > 設計應用 > 將ASIC IP核移植到FPGA上——如何確保性能與時(shí)序以完成充滿(mǎn)挑戰的任務(wù)!

將ASIC IP核移植到FPGA上——如何確保性能與時(shí)序以完成充滿(mǎn)挑戰的任務(wù)!

—— 數字芯片設計驗證經(jīng)驗分享(第三部分)
作者:Philipp Jacobsohn,SmartDV首席應用工程師;Sunil Kumar,SmartDV FPGA設計總監 時(shí)間:2024-08-26 來(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è)重要主題詳細分享了利用來(lái)在上開(kāi)發(fā)原型驗證系統設計時(shí)需要考量的因素。

本文引用地址:http://dyxdggzs.com/article/202408/462329.htm

在上篇文章中,我們分享了第二到第四主題,介紹了使用進(jìn)行原型設計時(shí)需要立即想到哪些基本概念、在將專(zhuān)為ASIC技術(shù)而設計的IP核移植到FPGA架構上時(shí)通常會(huì )遇到的困難,以及為了支持基于FPGA的原型,通常會(huì )對核進(jìn)行的一些更改。本篇文章是數字芯片設計經(jīng)驗分享系列文章的第三篇,將繼續分享第五、第六主題,包括確保在FPGA上實(shí)現所需的性能和時(shí)鐘兩個(gè)方面的考量因素。

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

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

當已經(jīng)在A(yíng)SIC上實(shí)現的IP核被移植到FPGA中時(shí),解決性能問(wèn)題至關(guān)重要。在具有高時(shí)鐘頻率的ASIC上運行的電路,在原型上可能必須進(jìn)行調整,以達到運行所需的時(shí)鐘頻率。甚至可能需要以較低的時(shí)鐘頻率或降低復雜性來(lái)運行電路。這里以PCIe接口為例,這樣的接口在物理上是用ASIC中的幾個(gè)通道(lane)來(lái)實(shí)現的,但在FPGA中可能必須限制為單個(gè)通道。

另一種解決方案是使用被稱(chēng)為“降速橋(speed bridge)”的電路。這種電路能夠降低以高時(shí)鐘速度輸入數據流的頻率,然后饋送至FPGA中以較低時(shí)鐘速度運行的IP核進(jìn)行讀取。這時(shí)在IP核的輸出端需要另一個(gè)電路,因為輸出數據流必須重新相應地提高時(shí)鐘。否則,輸入和輸出的數據將不會(huì )與電路設計的其余部分同步。

這樣的解決方案在技術(shù)上非常復雜,并且通常只在硬件模擬器或專(zhuān)用ASIC原型設計平臺中提供。兩者的成本都是極高的,因此遵循前面描述的電路改變路徑通常更有意義:實(shí)現適合FPGA的IP核,例如使用單通道PCI接口而不是在A(yíng)SIC中通常使用的四通道。當然,這意味著(zhù)IP核制造商在將ASIC的功能移植到FPGA的目標架構上時(shí)需要付出額外的努力;但結果是,FPGA的復雜性和資源占用程度都降低了,并且可以期望實(shí)現更高的時(shí)鐘頻率。

通常還需要使RTL代碼適應FPGA特定的結構。相關(guān)的例子有乘法器、移位寄存器和存儲器。FPGA具有所謂的“硬宏(hard macro)”,可以有效地實(shí)現復雜的電路。如果去構造一個(gè)由邏輯單元和寄存器組合而成的功能等效電路,而不是提供硬連線(xiàn)乘法器,這將導致一種帶有許多“邏輯級別”上的實(shí)現,并且只能在FPGA上低效地映射。這反過(guò)來(lái)又導致可實(shí)現的時(shí)鐘頻率大大降低。ASIC是不會(huì )提供這種預先定義結構,因此必須調整RTL代碼以使FPGA邏輯綜合工具有機會(huì )去識別將要實(shí)現的功能。否則,有關(guān)該函數標識的信息(例如,乘法器、移位寄存器或存儲器)可能會(huì )丟失。

同樣,重要的是要確保主IP輸入和輸出的時(shí)鐘是干凈的。這是確保通過(guò)使用FPGA上提供的寄存器對物理輸入和輸出進(jìn)行尋址的唯一方法。如果做不到這一點(diǎn),它就不太可能滿(mǎn)足時(shí)鐘到輸出規則的時(shí)序(tCO約束)要求。使用寄存的輸入和輸出通常是一種良好的設計實(shí)踐,但必須注意要確保引入了良好電路設計這一要求。

image.png

圖4 對于可靠的器件運行,諸如遵循時(shí)鐘域交叉規則等良好的設計實(shí)踐至關(guān)重要

良好的設計實(shí)踐是至關(guān)重要的。遵循時(shí)鐘域交叉規則(CDC)可以支持可靠的器件運行,并避免發(fā)生時(shí)序違規。作為IP核的制造商,您有義務(wù)根據電路實(shí)現的通用規則開(kāi)發(fā)您的產(chǎn)品。在具有一個(gè)以上時(shí)鐘域的電路中,應特別注意避免亞穩態(tài)(metastable state)。從一個(gè)時(shí)鐘域干干凈凈地過(guò)渡到另一個(gè)時(shí)鐘域至關(guān)重要。為了實(shí)現這一點(diǎn),必須在每種情況下選擇最合適的變量。這可以是上面展示的通過(guò)寄存器級的簡(jiǎn)單同步,也可以根據需要通過(guò)更復雜的電路實(shí)現。一種可靠方法的案例是使用FIFO存儲器。

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

將IP核從ASIC移植到FPGA上時(shí)的另一個(gè)要點(diǎn)是時(shí)鐘分布。這是指IP核中包含的時(shí)鐘結構,如果電路有多個(gè)內部使用的時(shí)鐘域,并且在IP核中生成所需的時(shí)鐘,則該時(shí)鐘結構的實(shí)現必須兼容FPGA。為了能夠在FPGA上無(wú)故障地運行電路,同步時(shí)鐘分布是必不可少的。事實(shí)上,這是避免過(guò)多的時(shí)鐘偏移(clock skew)和不可預測的時(shí)鐘延遲的唯一方法。這意味著(zhù)內部生成的時(shí)鐘既不是波紋時(shí)鐘(從FF時(shí)鐘分頻器產(chǎn)生的時(shí)鐘信號),也不是門(mén)控時(shí)鐘(從組合邏輯門(mén)中派生的時(shí)鐘,如多路復用器)。這種結構并不可靠,因為在時(shí)鐘分布中會(huì )出現不可預測的延遲。

FPGA具有專(zhuān)門(mén)的時(shí)鐘網(wǎng)絡(luò )來(lái)分配時(shí)鐘信號,以確保在整個(gè)芯粒(die)上沒(méi)有明顯的偏移。如果因為使用派生時(shí)鐘而不使用這些時(shí)鐘網(wǎng)絡(luò ),這不僅會(huì )導致時(shí)序問(wèn)題,還會(huì )導致故障。一方面,不能保證在寄存器邏輯上可以保持已設置時(shí)間,這是因為時(shí)鐘信號在分配到所有寄存器中后難以計算的延遲。另一方面,不能保證時(shí)鐘信號到達寄存器時(shí)鐘輸入端時(shí)的速度,會(huì )比數據信號到達用于電路實(shí)現的順序單元的“D輸入”端更快,這反過(guò)來(lái)又會(huì )導致在保持時(shí)間方面出現違規行為。

與ASIC設計相反,FPGA存在一個(gè)根本問(wèn)題。在A(yíng)SIC庫中,為所有組件都定義了最短和最長(cháng)時(shí)長(cháng)。另一方面在FPGA中,時(shí)序分析只計算“情況最壞時(shí)的時(shí)間”——即最大延遲。正因為如此,數據信號也可以用比時(shí)序分析中的估計值更短的時(shí)間分配:因此,數據信號可以比時(shí)鐘信號更早出現在寄存器中。為了解決這個(gè)問(wèn)題,在可編程邏輯模塊中經(jīng)常使用一種兼容FPGA的時(shí)鐘分布。不是使用許多不同的、彼此之間有明確聯(lián)系的時(shí)鐘信號,而是使用一個(gè)單一的時(shí)鐘信號,并從其派生出使能信號(而不是分頻時(shí)鐘)。然后使用這些使能信號來(lái)實(shí)現所需的時(shí)鐘域,結果是時(shí)鐘域之間都是物理同步。

IP核內時(shí)鐘分配的另一種可能性是使用鎖相環(huán)/延遲鎖相環(huán)(PLL/DLL),FPGA都有相應單元供開(kāi)發(fā)者使用,他們也可被用于時(shí)鐘生成。有必要使電路去適應目標架構,從而確保一個(gè)兼容的(同步)時(shí)鐘分布。FPGA中的時(shí)鐘分配要求與ASIC中的時(shí)鐘分配要求不同。為了可靠地運行電路,可能需要更改IP核的RTL代碼。理解這一點(diǎn)是重要的,即使完全相同的功能已經(jīng)在A(yíng)SIC上成功實(shí)現,情況亦是如此。此外,還需要提供特別用于FPGA的邏輯綜合和P&R約束。

例如:如果使能信號被用于提供不同的時(shí)鐘域,則所有的時(shí)鐘控制單元(如FF、存儲器)都要連接到一個(gè)主時(shí)鐘上。這個(gè)時(shí)鐘通常具有系統中最高的時(shí)鐘頻率。對于運行速度稍微比主時(shí)鐘慢的時(shí)鐘域來(lái)說(shuō),必須定義所謂的多周期約束。否則可能導致整個(gè)系統無(wú)法達到所需的時(shí)鐘頻率。在沒(méi)有提供適當約束的情況下,時(shí)序估計假設所有時(shí)鐘域都必須達到主時(shí)鐘定義的系統時(shí)鐘頻率。當然,現實(shí)中并非如此;一大部分電路根本不需要達到這個(gè)頻率,因為它們是通過(guò)使能邏輯控制的。反過(guò)來(lái),缺少約束將導致時(shí)序違規。因此,在創(chuàng )建打算映射到FPGA中的電路時(shí),就應該特別注意提供合適的邏輯綜合和布局布線(xiàn)(P&R)約束。

即使在IP核具有多個(gè)時(shí)鐘域的情況下,必須注意確保時(shí)鐘比率是被明確地進(jìn)行定義;在FPGA的啟動(dòng)階段中,其設計是確保電路功能在定義的時(shí)間點(diǎn)覆蓋所有的時(shí)鐘域,并且通過(guò)使用一個(gè)合適的時(shí)鐘生成器和適當的時(shí)序約束來(lái)避免時(shí)鐘之間的偏移。

image.png

圖5 PLL/DLL可用于在多時(shí)鐘設計中創(chuàng )建一個(gè)已定義的啟動(dòng)序列(圖片來(lái)源:SmartDV)

PLL/DLL的用途并不局限于調偏、頻率合成和時(shí)鐘操作。另一個(gè)應用是以這種方式去設計FPGA的啟動(dòng)序列,電路功能在所有時(shí)鐘域的規定時(shí)間內都能得到保證。PLL上電后自動(dòng)鎖定;無(wú)需額外重置。只有當時(shí)鐘穩定時(shí),復位才會(huì )解除。這在具有多個(gè)時(shí)鐘域的電路中是必不可少的。

當然,這種預防措施只有在時(shí)鐘彼此同步的情況下才有必要。在這種情況下,就需要通過(guò)相應的邏輯綜合約束來(lái)定義相關(guān)時(shí)鐘域的確切比例。這不僅需要提供帶有相應設置腳本的RTL代碼,還需要提供將IP核集成到電路中的所有必要的時(shí)鐘約束和時(shí)序特例,如多周期路徑和假路徑約束。

需要注意的是,如果一個(gè)電路包含多個(gè)時(shí)鐘,不僅要特別注意時(shí)鐘結構,還要特別注意復位分布。如果沒(méi)有特別注意到同步復位域,就不會(huì )以違反時(shí)序要求而終止運行,但可能導致電路故障。

image.png

圖6 如果一個(gè)電路包含多個(gè)時(shí)鐘,必須同時(shí)特別注意到時(shí)鐘和復位分配

為了無(wú)故障地使用IP核,時(shí)鐘域的同步是必不可少的。在分配復位信號時(shí),需要對復位域交叉采取適當的預防措施。

接下來(lái):

本系列文章的目標是全面分享經(jīng)驗,幫助讀者利用來(lái)實(shí)現完美的FPGA驗證原型,在前兩篇文章中講述了了解ASIC IP與FPGA驗證原型的區別并提前做相應規劃和調整之后,本篇文章介紹了我們如何確保在FPGA上實(shí)現所需的性能,以及在時(shí)鐘方面必須加以考量的因素。接下來(lái)將介紹剩下的兩大主題:如果目標技術(shù)是FPGA而不是ASIC,那么需要如何測試IP核的功能?設計團隊還應該牢記什么?歡迎關(guān)注SmartDV全資子公司“智權半導體”微信公眾號繼續閱讀。

最后,SmartDV在利用8個(gè)主題進(jìn)行相關(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)于作者: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在瑞士工作。

關(guān)于作者: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>