《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 想要入門eFPGA,,看這一篇就夠了

想要入門eFPGA,,看這一篇就夠了

2018-06-06
關鍵詞: eFPGA LUT GPIO

  嵌入式FPGA(eFPGA)是指將一個或多個FPGA以IP的形式嵌入ASIC,,ASSP或SoC等芯片中。

  換句話說,,eFPGA是一種數(shù)字可重構(gòu)結(jié)構(gòu),由可編程互連中的可編程邏輯組成,,通常表現(xiàn)為矩形陣列,,數(shù)據(jù)輸入和輸出位于邊緣周圍。 eFPGA通常具有數(shù)百或數(shù)千個輸入和輸出,,可連接到總線,、數(shù)據(jù)路徑、控制路徑,、GPIO,、PHY或任何需要的器件。

  所有eFPGA都將查找表(LUT)作為基本構(gòu)建模塊,。 LUT有N個輸入選擇一個小表,,其輸出表示N個輸入的任何需要的布爾函數(shù)。 有些eFPGA LUT有四個輸入,,有的有六個,。有些LUT有兩個輸出。 LUT通常在輸出端具有觸發(fā)器; 這些可以用來存儲結(jié)果,。這些LUT寄存器組合通常以四進制形式出現(xiàn),,還有進位算術和移位器,以便有效地實現(xiàn)加法器,。

  LUT接收來自可編程互聯(lián)網(wǎng)絡的所有輸入,,并將其所有輸出反饋到可編程互連網(wǎng)絡。

  除了LUT之外,,eFPGA還可能包含MAC(乘法器/累加器模塊),。 它們也連接到可編程互連網(wǎng)絡,用于提供更高效的數(shù)字信號處理(DSP)和人工智能(AI)功能,。 對于內(nèi)存來說,,有大量的RAM,通常是雙端口的封裝,。至于LUT和MAC,,通過RAM連接到可編程互連網(wǎng)絡。

  eFPGA具有輸入和輸出引腳的外環(huán),,將eFPGA連接到SoC的其它部分,,這些引腳也連接到可編程的互連網(wǎng)絡。

  軟件工具用于合成Verilog或VHDL代碼,以編程eFPGA邏輯和互連來實現(xiàn)任何所需的功能,。

  eFPGA是方便的新邏輯塊,,可在許多方面提高SoC的價值,其中包括:

  使用數(shù)百個LUT的廣泛,,快速的控制邏輯,;

  可重新配置的網(wǎng)絡協(xié)議;

  用于視覺或人工智能的可重構(gòu)算法,;

  用于航空航天應用的可重配置DSP,;

  用于MCU和SoC的可重配置加速器。

  除了以上這些,,還有更多,,這里就不一一介紹了。

  當今,,已經(jīng)有了一些eFPGA供應商,,主要包括Achronix,F(xiàn)lex Logix,,Menta和QuickLogic,,此外,還有一些較小的供應商,。有了這些選擇,,客戶需要決定哪一個最能滿足他們的需求。那么,,要如何選擇呢,? 雖然需要考慮商業(yè)因素,但本文重點討論技術因素,。

  第1步:制程的兼容性

  通常情況下,,即使在IP評估的早期階段,公司也會選擇foundry廠和工藝節(jié)點,。而臺積電,、GlobalFoundries和SMIC現(xiàn)在或正在開發(fā)針對包括65nm,40nm,,28nm,,22nm,16nm,,14nm和7nm工藝節(jié)點的eFPGA,。

  但是,并非所有供應商對所有代工廠/工藝節(jié)點都有eFPGA,,至少目前還沒有。 通過他們的網(wǎng)站檢查哪些與您的制程兼容非常重要。 您還應該看看所討論的eFPGA是否已經(jīng)在芯片中進行了驗證,,并在NDA下提供了報告,。

  不要忘記檢查金屬堆棧的兼容性。您選擇的關鍵IP,,如SerDes或您的應用可能需要您使用特定的金屬堆棧,,但并非所有eFPGA IP都與所有金屬堆棧兼容。

  第2步:陣列大小和功能

  并非所有的eFPGA供應商都可以做非常小規(guī)模的eFPGA,,同時,,并不是所有廠商都可以做出規(guī)模非常大的eFPGA。另外,,它們支持的MAC和RAM的性質(zhì)可能會有所不同,。

  對于您是否需要數(shù)百個LUT或數(shù)十萬個LUT,以及您對MAC和RAM的需求,,這可能會篩選出一些供應商,。

  步驟3:使用RTL進行基準測試

  eFPGA供應商會為您提供用于評估的軟件,以便您可以確定(RTL)每個eFPGA可以實現(xiàn)的硅面積和性能,。您需要eFPGA能夠在與SoC其余部分相同的溫度和電壓范圍內(nèi)運行,,因此請確保您需要的是支持的。

  在進行基準測試時,,將蘋果與蘋果進行比較(compare apples to apples)非常重要,。例如,您應該在相同的工藝(slow/slow or typ/typ or fast/fast)以及相同電壓和相同溫度下比較每個eFPGA,。您應該期望來自eFPGA供應商的軟件工具將允許您檢查不同工藝轉(zhuǎn)角和電壓組合下的性能,。

  請注意,您的RTL適用于eFPGA,。如果從硬連線ASIC設計中采用RTL,,則觸發(fā)器之間往往會有20~30個邏輯層。如果你把它放在沒有優(yōu)化的eFPGA中,,它會運行得非常慢,。在eFPGA中,LUT輸出總是有觸發(fā)器,,您可以使用它們向RTL添加更多的流水線,,以在eFPGA中獲得更高的性能。

  談到RTL,,確保你正在測試什么對你很重要,。

  一個16位加法器。你關心的是它的運行速度有多快,,但是如果你不小心,,看到的結(jié)果可能會讓你感到驚訝?,F(xiàn)在想象一個大的eFPGA。如果加法器放置在陣列的一個角落,,輸入和輸出接近,,則性能將遠高于在陣列中間找到加法器的情況。這是因為如果您觀察從陣列輸入到陣列輸出的性能,,當加法器位于陣列中間時,,到數(shù)據(jù)輸入和加法器輸出的加法器的距離會更長。實際上,,加法器是相同的,,并且在兩個位置運行速度都很快。問題在于你的測試沒有隔離加法器的性能,,但它也加入了達到加法器所需的信號,。

  下圖是一個例子,它使用一個LUT來布線,,LUT速度不會改變,,但通過互連進入和離開LUT的延遲會發(fā)生。

  

1.jpg

  為了應對這種效應,,尤其是因為您可能會比較兩種不同尺寸的eFPGA,,您需要做的是在輸入和輸出上設置寄存器,這可確保您關心的性能均可測量,,不受陣列的大小和位置的限制,。

2.jpg

  如果您需要MAC的DSP或AI功能,請了解每個eFPGA的乘法器大小和流水線的不同,。 如果RTL指定了一個MxN乘法器,,那么綜合軟件將確保eFPGA實現(xiàn)它,但它可能會跨越兩個或更多乘法器以達到所需的效果,。 如果你需要MxN,,那么這很重要。 但是,,如果試圖比較apples-to-apples的倍增性能,,您會希望讓RTL使用適合您所評估的所有eFPGA的倍增器大小。

  

3.jpg

  一些eFPGA直接將MAC匯集到一起,,這比可編程互聯(lián)網(wǎng)絡快得多,。 實施N-Tap FIR濾波器將顯示具有MAC-to-MAC流水線的eFPGA與不具有流水線的eFPGA之間的差異。 上圖為使用流水線DSP MAC實現(xiàn)的N-Tap FIR濾波器的示例,。

  步驟4:使用您需要的RTL基準測試區(qū)域

  與性能一樣,,在嘗試針對不同eFPGA的RTL的相對面積進行基準測試時,要非常小心,。一些eFPGA供應商使您能夠輕松生成數(shù)十種不同的陣列尺寸,,但其他人可能只會為您的基準測試提供兩種尺寸,。

  第一步是查看LUT計數(shù)(或MAC計數(shù))。但是,,不同的eFPGA供應商可能有不同的LUT尺寸,。在查找表中可能不會填滿它,,所以如果你有兩個觸發(fā)器進入一個與非門,,再進入另一個觸發(fā)器,那么任何大小的查找表都將實現(xiàn)一個與非門,。

  某些eFPGA在輸出端具有兩個觸發(fā)器,,這使得N輸入LUT可以分解為兩個共享N輸入LUT和一些輸入子集的更小的LUT。此功能可提高面積利用率,。

  即使您正在對來自兩家供應商的N-LUT eFPGA進行基準測試 - 并且您的設計使用了兩個LUT中的一半并且兩者的面積相同 - 但您不能斷定它們同樣好,。 你需要確定的是eFPGA LUT的利用率是否可以實現(xiàn)。一般eFPGA的利用率為60-70%,,但有些eFPGA的利用率可達到90%,。 唯一能找到的方法是使RTL幾乎填滿eFPGA的LUT。

  另一種獲得使用感的方法是查看展示位置的可視化,。 在下面的例子中,,LUT顯然是非常緊密地組合在一起的(陰影塊是設計中使用的LUT),這是高利用率的良好視覺指示,。

4.jpg

  但是,,即使在這里你也必須小心。 如果在上面的設計中,,輸入和輸出均勻分布在eFPGA陣列的邊上,,那么隨著位置/路徑軟件將關鍵路徑最小化,將具有更均勻地分散LUT的效果,。

  因此,,當使用這種可視檢查時,嘗試將輸入和輸出分組到eFPGA的一個角落,,這樣,,位置/路線軟件就可以將LUT放在一起,以最小化關鍵路徑,。

  步驟5:對輸入和輸出容量進行基準測試

  一些基于eFPGA的應用程序需要大量的輸入和輸出,。例如,網(wǎng)絡芯片的總線可以是512位寬(有時甚至數(shù)千位寬),。 您需要查看每個K-LUT可用的輸入和輸出計數(shù),,看看它是否在滿足您需求的范圍內(nèi)。

  結(jié)論

  eFPGA是令人興奮的新工具,,它使SoC架構(gòu)師可以使他們的芯片更加靈活和可重新配置,。

  使用上面的指導原則,,您將能夠更快地找到最適合您獨特應用程序、特定需求的eFPGA,。如果您選擇正確的解決方案,,您將能夠充分發(fā)揮eFPGA的潛力。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。