什么是FPGA原型??
FPGA原型設計是一種成熟的技術,用于通過將RTL移植到現場可編程門陣列(FPGA)來驗證專門應用的集成電路(ASIC),專用標準產品(ASSP)和片上系統(SoC)的功能和性能。?
由于硬件復雜性不斷增加,需要驗證的相關軟件數量不斷增加,因此它今天的使用范圍更加廣泛。?
為什么公司使用FPGA原型??
FPGA已經被用于驗證相對成熟的RTL,因為它們可以代表一個近乎精確的以高速運行的設計的復制品。這些復制品通常也足夠便攜,可用于現場測試。在純硬件方面,由于FPGA供應商盡快轉向最先進的制造工藝節點,FPGA原型設計變得更加簡單和強大。??
由于該軟件通常占設計工作量的一半以上,所以SoC RTL的FPGA實現也可以用作軟件開發,硬件/軟件協同驗證和軟件驗證的基礎 - 所有這些都在最終硅芯片可用之前完成。??
所有這些因素都有助于降低設計成本并縮短上市時間,降低重新調整的風險。例如,已經在FPGA原型上得到廣泛驗證的軟件應該更容易與來自晶圓廠的第一塊硅相結合。FPGA原型也可用于設置任何可能的硅后調試路徑。??
一個可用的FPGA原型也可以用于產品演示和現場試驗。? ?
還有哪些其他原型方法可用嗎??
FPGA原型不是SoC或ASIC開發人員唯一的原型設計選項。??
虛擬原型可在電子系統級(ESL)上使用。它可用于定義和驗證設計的某些部分,如處理器架構,電源管理方案和一些軟件代碼。? ?
RTL仿真可以提供設計代碼工作方式的大量可視性,盡管速度遠遠低于真實設備的運行速度。? ?
硬件模擬器是預封裝的原型FPGA陣列,可提供比仿真器更高的調試可視性和運行速度。? ?
硬件加速器介于仿真和模擬之間,提供了每種仿真的一些優點。?
這些方法不直接與FPGA原型競爭,因為今天的設計通常非常復雜,工程團隊會在設計流程的不同階段使用部分或全部。? ?
鑒于在等待第一顆硅片期間越來越多地使用FPGA作為開發平臺,隨著設計的RTL映射到FPGA原型時,它通常會達到高級階段。?
FPGA原型設計的好處是什么??
性能?
FPGA通常建立在最新的制造流程上,以實現最高的密度和運行速度。即使是采用主流工藝構建的FPGA,也可以提供高門限等效計數(FPGA通常以可容納多少個標準查找表來衡量)。根據現成的主板廠商Polaris的說法,兩款Xilinx的Virtex-7器件可以提供相當于48M的門電路 - 足以承載目前近85%的SoC設計。?
??
超過最大FPGA功能的設計有時在多個FPGA上進行原型設計。這使得將源RTL映射到FPGA原型環境變得更加困難,并且可能會降低原型的性能。?
成本?
FPGA是批量生產的芯片,具有競爭力的價格。許多公司 - 特別是The Dini Group, S2C, Polaris Design Systems和Synopsys(HAPS) - 將它們集成到現成(OTS)原型板上,盡管一些公司更喜歡建立自己的原型印刷電路板(PCB) 。這個所謂的“構建vs購買”辯論將在下面進一步討論。?
基礎設施?
兩家主要FPGA供應商(原型設計市場領導者Xilinx及其競爭對手Altera)都提供了廣泛的工具來支持他們的產品。他們還與主要的EDA供應商建立了聯盟,這些供應商為軟件套件提供了增強的FPGA原型設計。?
Cadence Design Systems提供Allegro FPGA系統規劃器。Mentor Graphics將其Precision Precision工具與Veridae Systems提供的Certus和Corus驗證和調試工具聯系起來。Synopsys提供OTS板卡以及Synplify Pro和Premier綜合工具(在2012年4月發布的版本中增加了重要功能)。??
其他OTS主板供應商也與這些和其他工具供應商以及他們自己的軟件有合作關系。?
??
?2011年,Synopsys和Xilinx發布了基于FPGA的原型方法手冊。這本由Synopsys出版社出版的書籍不可避免地通過兩家公司自己的產品解決了具體的案例研究項目,但是更一般地說,它旨在描述一種用可編程邏輯來構建原型項目的供應商中立方法。您可以閱讀本指南中討論的許多高層次問題的示例章節,或者閱讀本手冊的更多詳細信息,并在此處下載電子書版本。?
??
可移植性?
FPGA板可以在與最終SoC相同的嘈雜環境中進行測試。這對于打算用于便攜式消費設備以及工業,通信基礎設施,醫療和軍事/航空航天市場的產品有益。?
??
可用性?
FPGA原型的成本相對較低意味著公司通常可以構建其中的幾個,這加速了硬件驗證,軟件開發,硬件/軟件協同驗證和軟件驗證。每個團隊都可以有自己的原型,可能有幾個。?
??
FPGA原型設計面臨的挑戰是什么??
FPGA原型設計面臨技術和商業挑戰。?
技術挑戰?
分區?
大型設計可能需要在多個FPGA之間進行分離(分區)以實現所需的門控容量。這項任務通常被認為是FPGA原型設計的最大挑戰。?
分區包括估計持有該設計所需的FPGA數量,以及購買OTS板卡(可提供各種配置)或者構建一個用于容納大量FPGA的OTS板卡。通過將設計中的每個主要功能塊分配給一個器件,或者根據結果預先綜合設計和工作,您可以估算要使用多少個FPGA。您還可以利用由硅和OTS主板供應商提供的標準第三方IP模塊,為您的設計中使用的每個模塊分配一個FPGA。同樣,您需要決定哪些配件,如子板,您將需要:這些配件的“經過驗證”版本。?
分區過程本身很可能是一個棘手的迭代過程,涉及將設計映射到設備的眾多判斷調用,以及從RTL或軟件中的實際錯誤中過濾出并糾正映射錯誤。每個FPGA的利用率是最優的?內存要求如何?那么I / O和互連呢??
手動干預?
FPGA原型設計可能需要幾種類型的手動干預。?
由于原始設計RTL被轉換為FPGA綜合和布局工具所需的硬件描述語言(HDL),因此即使工具已經實現了大部分翻譯的自動化,也可能需要一些手動編碼才能使原型工作。很可能起源于設計的工程師不熟悉FPGA的HDL編碼風格。因此這可能是一個漫長而容易出錯的過程。? ?
映射的各個方面都面臨著挑戰。FPGA上的時鐘樹路由(特別是原始設計具有門控時鐘的地方)非常困難。如果允許關鍵路徑通過緩慢的芯片到芯片到芯片路徑運行,原型性能將會受到影響。原創中的內存和加密塊也會帶來重大困難。? ?
對于設計的許多方面,一對一映射是不可能的。確保您有足夠的資源和專業知識來處理過渡中較為困難的部分 - 也可能是您設計中最敏感的部分,因為它們具有差異性。? ?
調試可見性?
上述兩個挑戰所代表的工作量說明了為什么FPGA原型設計最好采用成熟的RTL代碼來提供,而這種代碼幾乎沒有什么意外。確保調試ram的可見性成為難題。? ?
從第一個單FPGA原型開始就有足夠的設計可視性來進行有效的調試存在一個問題。可用的可見性往往局限于單個FPGA,這使得跨多個FPGA映射的設計使調試可見性變得更加困難。? ?
編譯時間?
從歷史上看,工程師們編譯了一個FPGA原型,直到錯誤停止了這個過程。他們會修復這個錯誤,然后從頭開始重新編譯。這里的潛在延誤很明顯。在Synplify Premier的最新版本中,Synopsys已經加入了“繼續出錯”功能,旨在緩解這個問題。編譯將不會停止,并會在最后生成一個整理錯誤列表。(這不像RTL仿真,在這種仿真中,您可能會遇到錯誤,請修復并從此處繼續。)???
商業挑戰?
時間對原型?
一些FPGA原型在他們原本應該進行原型設計的第一塊硅片抵達時未完成。這是生活中的事實。?
設計經理擔心將重要的工程資源投入到一個有失敗風險的原型項目中。現實情況是,大多數失敗是在原型開始工作之前沒有進行徹底的風險評估的結果。什么是適當的資源,它們是可用的(內部還是外部)?正在采用哪種方法(有幾種可用并在下面討論)?? ?
FPGA原型設計過程變得更加自動化,但假設設計團隊不需要進行任何手動干預,除了涉及修復令人滿意的原型所發現的錯誤之外的其他手動干預。相反,在可用時間內對所需內容進行研究和保守估計。?
建設vs購買?
關于FPGA原型設計最激烈的辯論之一是您是否應該自己購買FPGA并構建PCB,或購買OTS板并根據您的要求量身定制。答案是,“這取決于項目。”? ?
爭論的“構建”方面表示OTS板卡太不靈活,無法應對日益復雜的項目日新月異的需求。它繼續說,盡管開發自己的PCB確實花費了大量的時間和精力,但與支付可能無法滿足您的要求的OTS等效品相比,有一些工具可以以更具成本效益的方式來協助此過程。論證的“構建”一面也指出了OTS板卡的總線寬度和工作頻率有限。? ?
爭論的“購買”方面表明,關于不靈活的說法被夸大了,構建先進FPGA原型所需的PCBs會進一步增加設計過程的復雜性。它還表示,構建自己的板卡可能會影響到時間原型,甚至可能會縮短上市時間。此外,OTS板在其上的芯片和互連,其他本地特征和附件的可用性(如子板)連接到與最終硅芯片可能連接的外部系統方面“已證實”。'購買'支持者也指出,電路板也被設計為與當今FPGA的性能相匹配。?
那么,它值得嗎??
FPGA原型設計是一個有價值的策略,特別是對于嵌入式軟件內容高的項目,可以滿足對時間敏感或要求很高的市場的需求。??
最近的一項調查發現,一半的嵌入式軟件項目錯過了最后期限,其中44%未達到最初設想的功能。如果沒有其他,FPGA原型使軟件團隊能夠在最終的系統集成中盡早開始工作。? ?
FPGA原型提供了執行全面的硬件 - 軟件協同驗證的最有效方法,特別是在降低堆棧的關鍵階段,以及在與最終芯片結合的軟件代碼之前的最終驗證。?
是否采用FPGA原型的問題很大程度上取決于您的團隊是否可以平衡執行復雜且通常非常困難的任務所需的風險和資源。?
評論
查看更多