前言
本系列文章將建立一些定義,并概述試圖通過基于FPGA原型設計來克服的挑戰。
我們將探討基于soc的系統的復雜性及其在驗證過程中所面臨的挑戰,還將比較和對比基于FPGA的原型與其他原型方法,包括系統級虛擬建模。在這后續,將和大家一起深入研究基于FPGA的原型技術如何有利于一些實際項目,并為基于FPGA的原型技術提供一些指導。那么開始吧!
摩爾是對滴
自從Gordon E. Moore描述了在集成電路上可以廉價放置多少晶體管的趨勢以來,由半導體設計來實現的電子設計已經以一種難以想象的速度發展起來。
晶體管每兩年翻一番的趨勢已經持續了半個多世紀,盡管人們一再預測它將很快結束,但預計它暫時不會停止。
本章后面對驅動芯片設計的主要趨勢的詳細回顧將闡明為什么原型設計在采用中不斷增長,甚至在許多公司中被認為是強制性的。為了進一步理解這一趨勢,需要了解典型的項目動態及其工作分布。
1 SOC一個定義…至少對于這本書
為了本書的目的,我們將芯片系統(SoC)定義為為特定目的設計和制造,供特定所有者獨家使用的設備。
有些人可能會認為SoC是ASIC(特定于應用的集成電路)的一種特殊形式,它們是正確的,但為了本書的目的,我們將只參考SoC。我們將堅持SoC始終包含至少一個CPU并運行嵌入式軟件的定義。相比之下,ASIC并不一定包含CPU,在此程度上,SoC可以被認為是ASIC的超集。
我們并不是說那些正在創建ASIC、ASSP(特定于應用程序的硅產品)或由COT(客戶自己的工具)或第三方鑄造廠生產的硅的人應該讀另一本書。
對于基于FPGA的原型設計目的來說,技術并不是相互獨特的,事實上,許多基于FPGA的原型設計項目都是ASSP,甚至只是IP的一部分,可以用于許多不同的SoC設計中。
就基于FPGA的原型設計而言,如果它適用于SoC,那么它將適用于上述任何一種設備類型。這本書關注SoC的原因是,基于FPGA的原型設計的最大價值在于其獨特的能力,能夠提供一個快速和準確的SoC模型,以允許對軟件進行驗證。
2 SoC設計的經濟學
SoC的設計就在我們身邊。我們可以在所有引人矚目的引人注目的消費電子產品中,以及不起眼的純研究項目的角落,以及星際探測器的引導系統中找到它們。
特別是對于消費品,人們對智能手機、攝像頭或便攜式媒體播放器等設備的最大智能和功能的需求似乎有著永不滿足的渴望。
為了滿足這些需求一個典型的SoC設計將包括幾個微處理器,一個或多個數字信號處理器和一些不同的接口,如藍牙或WLAN,高分辨率圖形等等。
這一切加起來就是很多軟件。考慮到集成電路的開發和制造,在圖1中是一個倒三角形。所顯示的數據是2009年的,我們看到芯片開發是一個約854億美元的市場,是由EDA工具、設計服務、IP和嵌入式軟件工具的86億美元市場實現的。
在這種半導體設計和制造的支持下,是一個價值11.16億美元的巨大電子系統市場,其中包括我們作為終端消費者所渴望的所有消費電子產品、無線設備和電子產品。
圖2:消費設備的硬件-軟件拆分
EDA工具,包括設計中不同階段的各種類型的原型,最近專注于從IP提供商、半導體提供商、集成商和oem的設計鏈。
原型在這些交互中起著關鍵作用,因為早期原型允許客戶與供應商進行需求溝通,并從供應商為客戶進行早期軟件開發和驗證。
為了理解多種形式的原型設計可以實現的影響,讓我們考慮一個典型的復雜SoC設計。圖2顯示了一個典型的智能手機的拆卸情況。最終用戶體驗在很大程度上受到它們所呈現的應用程序的影響。
好的舊硬件,模擬設備和天線的設計顯然仍然很重要,但用戶只有在它們出錯時才會真正注意到它們!
用戶應用程序由中間件、操作系統和驅動程序組成的軟件堆棧來實現;所有這些都是專門設計的,使軟件盡可能獨立于硬件。
例如,應用程序開發人員不能直接訪問設備的硬件內存、定時或其他低級硬件方面。軟件堆棧由硬件元素堆棧進行匹配。終端設備使用幾個板,由幾個外圍設備和芯片組成,其中包含不同的塊,要么作為IP重用,要么由芯片供應商專門開發來區分他們的硬件。
硬件和軟件的依賴性導致了不同公司類型之間的復雜關系。
知識產權提供商向半導體供應商銷售, 半導體供應商向集成商 集成商又是oem銷售商 所有這些供應商都為軟件開發人員提供支持。這些交互的啟用可以說已經成為當今工具供應商要解決的最大問題。
這種實現的主要挑戰已經成為今天:
?(a)盡早實現軟件開發。?(b)在目標系統環境中的硬件/軟件的驗證。?(c)設計和重用芯片處理器加速器外周互連結構(如ARM互連AMBA互連)從基本構建塊組裝的芯片的?(d)架構設計。
2.1.案例研究:一個典型的SoC開發項目
考慮到圖2中硬件堆棧的底部三層,讓我們來分析一個特定的芯片開發項目和原型設計的潛在影響。
選擇的例子是一家大型半導體公司設計的無線耳機,在主流65納米技術。芯片的目標是高容量,快速移動市場和預計生產運行27個月,平均每月150萬臺和平均銷售價格55.50美元。
在開發過程中情況進展順利,只需要一個金屬掩模旋轉,允許在第一個硅可用后進行6個月的客戶和現場評估。根據國際業務系統研究中描述的開發成本模型,該項目的開發成本總計估計為31,650,000美元。
現在讓我們考慮圖3,它說明了芯片開發成本如何在典型的12個月的硬件設計周期中分布,從完整的規范到最終驗證的RTL,準備布局。
(這顏色真的是看出個pi-圖3:一個65nm無線耳機設計的項目付出)
實際上,RTL驗證消耗了大部分的工作,并且是決定12個月的項目長度的關鍵因素。
設計中具有重大影響的另一部分是伴隨代碼實際開發的整體設計管理。
物理設計完成于項目開始后約15個月(即RTL驗證后3個月),然后在第17個月準備封測。
硅驗證后在19個月增加工程樣品,需要幾個月的時間
如圖3進一步說明,當RTL得到大量驗證和穩定時,該項目的軟件開發會增加。
它被分為操作系統支持和移植、低級軟件開發和高級應用軟件開發。
這里所有的軟件開發工作仍然是芯片供應商的責任,而不是第三方供應商。
總的來說,軟件開發消耗了該設計總成本的40%,并將項目計劃擴展到總共27個月。
當將開發和生產成本攤銷為預期銷售時,該項目在約34個月后,即在產品發布7個月后,但在產品開發開始近3年后,達到盈虧平衡。這個例子中的挑戰是,我們必須提前近三年預測高銷量,以確定我們的芯片。怎么能使這種幾乎無法忍受的情況變得更容易呢?
答案是“更早地啟動軟件”。
使用計算器的投資回報率(ROI)由全球半導體協會(GSA),它可以計算,如果軟件開發和驗證開始七個月前在我們的例子項目,生產可以開始三個月前,隨后的時間平衡減少了五個月。此外,由于該芯片額外的首次市場設計勝利,預計將獲得5000萬美元的收入增長。
這正是其許多形式的原型設計所能實現的目標。通過原型設計提供的軟件開發和驗證的早期開始意味著它對投資回報率的影響可能非常顯著。
為了更深入地理解原型設計的需求和好處,讓我們來看看現在從虛擬到基于FPGA的不同類型的原型設計。
3 虛擬平臺:沒有硬件的原型設計
我們可以在我們的項目中使用各種各樣的原型設計。在一個項目中,最早出現的是虛擬原型。它們代表了soc、板、虛擬化io和用戶界面的功能完整但時間松散的軟件模型,所有這些都運行在基于主機的模擬上。
虛擬原型可以在處理器指令集模擬器上執行未經修改的生產軟件代碼,并且它們可以接近實時運行。作為完全基于主機的虛擬原型,它們還可以提供良好的系統可見性和控制,這對于在多核cpu上的調試特別有用。虛擬原型也可以有虛擬的用戶界面,允許與我們這些慢速的人類進行實時交互。圖4中所示的屏幕截圖摘錄來自于一個運行在同步系統創新者工具上的OMAP設計的虛擬原型。
在這里,我們不僅看到了可識別的模擬窗口,還看到了板上鍵控制的表示和來自虛擬攝像頭的輸入,在這種情況下,連接到運行模擬的主機電腦上的網絡攝像頭,所有這些都沒有硬件完成。我們將在第13章中討論基于FPGA的原型與simulation的鏈接。
雖然虛擬原型在使用時間松散的模型時,提供了非常高的速度(多個MIPS),但它們不能提供硬件設計團隊首選的計時精度。更精確的軟件模型可以添加到虛擬原型中,但它們的模擬速度將下降到個位數的MIPS范圍,甚至更低,這取決于周期精確與松散時間的模型的混合。
然而,虛擬原型在流程中最早是可用的,假設模型可用,所以它們是早期軟件調試的完美選擇。虛擬原型提供了對系統行為的幾乎完整的洞察力,而且它們也很容易為多個用戶進行復制。
最后,因為它們是在RTL之前創建的,所以虛擬原型允許硬件架構和早期軟件的協同開發。例如,如果虛擬原型顯示產品的并發應用程序沒有足夠的處理帶寬,則可能會添加額外的或不同的cpu。
3.1.SDK:一個非常常見的原型設計環境
與虛擬原型相關的是所謂的軟件開發工具包,或稱SDK,其中一個非常常見的例子是用于為蘋果iPhone開發應用程序的SDK。
這個SDK在可用的頭幾天就被下載了超過10萬次,所以我們可以認為這是一個非常廣泛可用的原型平臺。雖然相比之下很簡單,但sdk提供了完整虛擬原型的許多優點,但是它們的精度往往更有限,因為它們可能不能像虛擬原型那樣準確地表示實際的寄存器。
他們的目標是擁有“足夠的準確性”,以欺騙應用程序,讓它以為它是在最終的平臺上運行的。sdk允許通過更高層次的應用程序編程接口(API)接口到平臺。所開發的軟件通常是為主機上編譯的SDK執行它,然后在程序員驗證了SDK上的功能后,需要重新編譯到實際的目標處理器。
圖5顯示了一個安卓SDK的屏幕截圖。應用程序的編程是使用高級操作系統api完成的。編程是完全獨立于實際的目標硬件,所以當實際針對最終設備時,重新編譯是必要的。
目標設備的用戶界面——如圖5所示,可以進行建模,以便可以虛擬地體驗最終用戶環境。
在這里插入圖片描述
3.2.FPGA:在半導體的原型…前硅
在設計流程的后期,但仍然是在真正的硅片之前,一個基于FPGA的原型也可以作為軟件開發和驗證的工具。
基于FPGA的原型驗證是soc、板和IOs的全功能硬件表示。因為它們實現了與SoC相同的RTL代碼,并且在所有外部接口和刺激連接下幾乎以實時的速度運行,所以它們非常準確。
它們提供了更高的系統可見性和控制比實際硅將提供可用,但不匹配的調試和控制能力虛擬平臺,或任何其他模擬器,所以它們不是我們將選擇的用來調試所有RTL的第一個平臺。
基于FPGA的原型的關鍵優勢是它們能夠高速運行,每個建模的CPU產生數十個MIPS,同時保持RTL的準確性。
它們通常在設計流程中可用,因為RTL需要可用且相對成熟。由于將RTL映射到基于FPGA的原型的復雜性和努力,在RTL驗證穩定之前使用它們是不可行的。
出于同樣的原因,基于FPGA的原型并不打算用作硬件/軟件協同開發平臺,因為在SoC設計流程中,硬件(即RTL)幾乎是固定的,并且部分驗證。
在基于FPGA的原型運行之前,設計團隊對于更改硬件架構將會非常猶豫,除非發現了一些主要的架構瓶頸。
最后,一旦穩定和可用,基于FPGA的原型的復制和交付成本高于基于軟件的虛擬平臺,但仍然比模擬器便宜得多,我們接下來將討論。
3.3.模擬器:原型設計還是驗證?
仿真提供了另一種基于硬件的替代方案來實現軟件開發,但與基于FPGA的原型設計的不同之處在于,它的目標是較低的性能,但具有更多的自動化。
模擬器有更多的將RTL自動映射到硬件中,以及更快的編譯時間,但是執行速度會更低,通常會下降到單mips級別以下。仿真的成本也經常被視為在軟件開發中容易復制它的一種威懾,盡管仿真器由于其易于使用而受到軟件工程師的歡迎。
與基于FPGA的原型一樣,仿真器也不是硬件軟件協同開發的現實平臺,因為它們需要RTL可用。模擬器更有可能的用途是作為正常RTL模擬的加速器,因此許多人認為仿真不是一個原型平臺,而是作為對正常驗證環境的擴展;一種更快的模擬器。然而,只有當軟件需要循環精度和高可見性,并且可以容忍非常慢的運行速度時,模擬器實際上可以用于軟件開發。
軟件將需要被限制在短時間的運行中,比如啟動ROM代碼,因為緩慢的運行速度將意味著運行時可能很長;當然對于長的軟件任務來說太長了,比如用戶應用程序或操作系統啟動。
3.4.第一批硅片作為一個原型平臺
最后,在實際的硅可用之后,使用第一個硅樣品的早期原型板可以在實際的硅上實現軟件開發。
一旦芯片投入生產,就可以提供非常低成本的開發板。此時,原型機將以實時速度和全精度運行。軟件調試通常是通過使用JTAG接口和連接到標準軟件調試器的特定硬件連接器來實現的。
雖然使用實際硅的原型板可能是成本最低的選擇,但它們在設計流程中很晚,幾乎不允許軟件開發領先。
此外,對硬件原型的控制和調試洞察力非常有限,除非提供特定的片上儀器儀表(OCI)功能。與虛擬原型相比,它們也更難復制——通過互聯網下載提供一個虛擬平臺比發布電路板和處理定制、升級和對物理硬件的潛在損壞要容易得多。
從這個概述中可以看出,原型設計專注于提供硬件的早期表現,特別是芯片及其周圍的外設。原型驗證適用于不同的使用模型,作為交換,它們會對需求產生影響。
4 原型使用模型
如前所述,今天我們使用不同的執行引擎來完成原型設計。一旦一個芯片開發項目開始,項目經理幾乎被要求立即為各種目的提供“未來芯片”的早期表示——原型,例如:
?市場營銷需要材料和基本的文檔來與早期的采用者進行互動。?軟件開發人員希望正在開發的設計的可執行表示,以允許他們開始移植操作系統。?硬件開發人員也希望可執行規范來驗證他們的實現是正確的。?原型從第一天開始就開始需求量很大!
這種需求是由三個主要的使用模型驅動的:體系結構探索、軟件開發和驗證。
4.1.針對架構探索的原型設計
在項目開始時,架構探索允許芯片架構師就芯片拓撲結構、性能、功耗和片上通信結構做出基本決策。
例如,早期收集的關于緩存利用率、處理器性能、總線帶寬、突發率和內存利用率的信息驅動著基本的體系結構決策。
在一個理想的世界里,芯片架構師將希望獲得具有全精確模型的原型——代表設計的所有內部部分——同時以全速運行。不幸的是,這兩個特征通常不能通過同一模型來實現。在最終芯片從制造中回來之前,或至少在設計周期后期RTL可用和驗證之前,才能收集完全準確的數據。此時,FPGA原型可以用于接近實時地執行設計。
芯片架構師還可以與“早期采用者”客戶進行交互,理想情況下,他們希望使用可執行的規范來演示設計的關鍵特性。
然而,在現實中,芯片架構師主要依賴于像微軟Excel這樣的工具來進行基本的、靜態的架構分析。他們通常不得不依靠他們的經驗和信封背面的評估。因此,與早期采用者客戶的互動是基于書面規范和在白板上進行的大量聯合討論而進行的。
4.2.用于軟件開發的原型設計
理想情況下,軟件開發人員希望從一開始就開始移植遺留代碼和開發新的軟件功能,即當硬件開發開始時。
他們希望接收芯片的可執行表示,它實時運行,準確地反映所有與硬件相關的軟件相關接口(如寄存器映像)。
根據正在開發的軟件類型,用戶可能需要與底層原型不同的精度。要開發的軟件類型直接決定了對硬件執行精度的要求:
?應用軟件的開發往往不考慮實際目標硬件的精度。這是sdk的主要前提,它允許對表示硬件的高級api進行編程。?對于中間件和驅動程序,可能需要一些定時的表示。對于性能分析的基本情況,對緩存和內存管理單元的計時注釋可能就足夠了,因為在涉及到性能方面,它們通常比指令的靜態計時更重要。?對于實時軟件,指令的高級周期定時與微架構效果相結合是很重要的。?對于時間關鍵的軟件,例如,中斷服務例程(ISRs)的精確響應行為,完全循環精確的表示是首選。
通常直到今天,開發人員仍會基于寄存器規范“盲目地”開始軟件開發,但隨后卻會與硬件團隊仍然可能對寄存器規范做出的更改不同步。
對于衍生產品系列,應用軟件通常使用高級api開發,它可以在上一代芯片上執行。稍后可用的底層驅動程序、操作系統和中間件可以確保api保持不變,并且不會破壞遺留軟件。
4.3.原型設計的驗證
在早期,芯片環境是使用跟蹤和流量生成器來表示。早期的測試臺基本上定義了正在開發的芯片的使用模型場景。
在一個典型的設計中,在測試臺中隱藏的錯誤和在實際設計本身一樣多。因此,盡早開發測試臺是很重要的。理想情況下,驗證工程師希望從一開始就能提供“被測設備”(DUT)的可執行表示形式。類似于軟件開發對不同模型的需求,驗證也有對不同精度級別的要求。
DUT的高級模型將使驗證場景的開發成為可能。具有精確寄存器和DUT行為的純功能表示的DUT模型滿足了相當比例的測試臺開發。為了驗證時間和詳細的管道延遲,時間近似最初可能是足夠的,但最終將需要在寄存器傳輸級別(RTL)上進行周期準確的表示。
硬件驗證的一個重要趨勢是功能驗證轉向軟件,軟件在嵌入在設計中的處理器上執行。為了回答最近的調查問題:“您在設計中是否使用運行在嵌入式處理器上的軟件來驗證周圍的硬件?”,超過50%的受訪者回答說,他們已經在使用嵌入式軟件進行驗證,其中十分之一的受訪者也在使用該軟件,重點是硅后驗證。(就是整成開發板進行驗證)
這種基于cpu的方法的優點是驗證重用:
?測試是在處理器上執行的,最初使用快速指令-精確的處理器模型與DUT的事務級模型(TLM)交互,通過其寄存器接口訪問它。?之后,這些測試可以在混合TLM/RTL模擬以及將處理器映射到RTL的純RTL模擬中重用。?這些測試仍然可以用于硬件原型,其中處理器在工作站上作為TLM執行,并通過高速TLM接口連接到硬件。執行測試的?處理器也可以在FPGA原型中以RTL的形式運行,也可以作為插件板上的芯片帶到FPGA原型中。?最后,當芯片從制造中回來時,基于軟件的測試也可以用于硅后驗證。
5 原型設計中的用戶優先級
隨著所有這些趨勢的結合,芯片的原型設計正成為成功的芯片設計的明確要求。
然而,不同的用戶優先級會導致不同的原型設計選項作為最佳的解決方案。我們可以用多種方式列出它們,但在我們的案例中,我們選擇突出顯示12個不同的優先級,如下所示。
?可用時間:一旦我們的設計規范被凍結,軟件驗證環境的交付延遲將直接影響我們在SoC項目的軟件部分啟動和進展的速度。
?執行速度:理想情況下,所選的開發方法提供了真實硬件執行速度的準確表示。對于軟件回歸,比實時速度更快的執行可能是有益的。?精度:正在開發的軟件類型決定了開發方法的準確性,以表示實際的目標硬件,確保在硬件/軟件邊界識別的問題不會被開發方法本身引入。
?容量:原型機是否可以處理最大的SoC設計,還是不需要這樣做?性能和成本如何隨著設計尺寸的增加而變化?平臺是否能升級為更大的設計?
?開發成本:開發方法的成本包括實際的實際成本,以及在其中引入硬件/軟件設計的開銷成本。生產成本決定了如何進行生產一個簡單的開發方法可以被復制來提供軟件開發團隊。
?提升成本:除了獲得硅所需的開發方法之外所需的任何活動都可以被認為是開銷。通常,軟件團隊在獲得硬件的早期表示時所面臨的巨大壓力決定了是否考慮對提升成本的投資。
?部署成本:如果我們要創建原型的多個副本,那么我們需要知道在最終用戶的實驗室中創建、部署、維護和支持將花費多少成本。
?調試洞察力:分析設計內部的能力,即能夠訪問信號、寄存器和硬件/軟件設計的狀態。
?執行控制:在調試期間,使用硬件中的斷言或斷點停止目標硬件的表示是很重要的,特別是對于具有多個處理器的設計,所有組件必須以同步的方式停止。
?系統接口:如果目標設計是SoC,那么能夠將正在開發中的設計與實際接口連接起來是很重要的。例如,如果涉及到一個USB接口,則該軟件將需要連接到真正的USB協議堆棧。同樣,對于網絡和無線接口,連接到真實世界的軟件是優先考慮的。
周轉時間:從一組新的源文件中,無論是SystemC模型還是原始的RTL,創建一個新版本的原型需要多長時間?它是否以分鐘、小時、天或周為單位來衡量,以及在任何情況下項目需要什么?
?價值鏈接到低功耗和驗證:原型不必是獨立的平臺,如果它們可以鏈接到SoC設計團隊的其他部分,特別是用于驗證,它可能會增加價值。在插入各種實現步驟之前和之后進行原型化,例如修改以降低功率,也將是有價值的。
可能沒有用戶同時關心過所有這些決策標準,而且對于任何給定的SoC項目,有些項目會覆蓋其他的。在我們閱讀這本書時,我們將重新審視大多數這些標準。在書的最后,我們將展望原型作為一個整體的未來,以及基于FPGA的原型在未來的位置。展望未來,我們需要意識到最近在SoC和更廣泛的用戶基礎和行業中正在出現的過去和趨勢。現在讓我們來看看這些趨勢。
6.芯片設計趨勢
我們將希望在未來的SoC項目中使用我們的原型環境,但是這些項目會是什么樣子的呢?
了解芯片設計的八個主要趨勢將導致對未來的項目的更好的準備和更靈活的內部原型方法。
推動半導體設計需求的八個主要趨勢是:
?進一步小型化到更小的技術節點。?整體設計的減少就開始了。?可編程性結合了嵌入式軟件內容的快速增加。?IP重用。?應用程序的特異性。?采用多核架構。?低功率。?芯片的模擬/混合信號部分的增加。
所有這些都對原型需求產生了深遠的影響,我們將快速地查看它們及其支持的趨勢數據
6.1.小型化到更小的技術節點
在處理器設計中,晶體管的數量從1979年定義X86的29,000個晶體管增加到2005年定義雙核離子的17.2億個晶體管。這比26年增長了近6萬倍。這一趨勢一直持續,并且可能在未來繼續,從較小的技術節點開始進行的設計數量將會增加,如圖6所示。該圖表(由加州洛斯加托斯的國際商業戰略公司(IBS)的行業分析師提供)顯示了每個節點占所有ASIC和SoC設計開始的百分比。
65nm和45nm節點的設計始于2007年,現在已成為主流。因此,需要形成原型的設計的規模穩步增加,對基于軟件和硬件的原型都需要越來越多的容量。
基于軟件的原型的速度自然受到傳統軟件串行執行的限制。這進一步增加了提高軟件模擬速度的壓力,特別是對于處理器模型。
雖然自20世紀90年代末以來,已經使用專有技術建立了快速模擬模型,但標準化現在已經允許將來自各種來源的模型組合成基于系統c的模擬,而不會使用開放的TLM-2.0api實現顯著的速度下降。
對于基于硬件的原型,這一趨勢進一步增加了采用更高密度的fpga進行原型設計的壓力。考慮到FPGA原型設計的能力受到可用FPGA能力的限制,唯一的選擇是劃分和征服,并且只對設計的較小部分作為原型。為了解決這種情況,FPGA原型使用堆疊和擴展的標準接口變得更加可擴展。最后,在要在正在開發的芯片的系統上下文中測試一個原型的情況下,設計的劃分可能是困難的。考慮到每個原型板的fpga數量將增加以允許足夠的容量,對跨FPGAs自動劃分設計的要求也增加了。
6.2.整體設計開始減少
小型化趨勢的另一方面是設計開始次數的減少。如圖7所示,soc的設計總數就開始了預計將會顯著減少。乍一看,現代設計的開發成本是如此之高,以至于更少的公司能夠負擔得起SoC的開發。
然而,在現實中,最大的下降將是對舊技術的設計開始,即130納米及以上。設計團隊將繼續為那些軟件內容和對原型設計的需求最大的前沿流程進行設計。
這一趨勢的直接結果是,每個設計的風險急劇增加,越來越多的公司已經要求在設計之前對其設計進行原型設計,以驗證正確性和避免昂貴的重新旋轉。原型設計可以在設計流程的不同點上使用各種不同的技術進行。總的來說,設計開始階段的減少只會進一步增加每個項目的風險,因此原型設計將變得更加重要。
6.3.增加了可編程性和軟件功能
絕大多數的電子系統和產品現在都包含了一些可編程性的元素,這在本質上是延遲的功能,它有好幾種形式。首先,對ASIC、ASPP和FPGAs設計開始的相對數量的估計表明,大量的設計開始是在FPGAs和其他可編程邏輯設備中;這顯然是一個可編程硬件。
其次,包括微處理器在內的FPGA設計的數量也在快速增長。這為可編程硬件增加了軟件的可編程性。
此外,相當大比例的ASIC和ASSP設計開始時也包含嵌入式處理器。因此,該軟件甚至增加了專用SoC芯片的可編程性。因此,軟件的重要性正在顯著增加,即使是在SoC項目中也是如此。
圖8說明了預計的軟件工作占技術節點的研發費用的百分比。在65納米處,預期的軟件研發費用已經超過了硬件開發。
總的來說,軟件已經成為芯片開發的關鍵路徑,其努力正在超過硬件。在傳統的串行設計流程中,軟件開發開始得很晚,也就是說,當硬件順利進行時,甚至在最終的原型芯片可用之后。因此,軟件的可用性可以阻礙芯片的發展達到主流生產。
從原型化的角度來看,這代表了在項目中盡早開始軟件開發的原型化的另一個驅動因素。由于軟件在很大程度上決定了一個設計的功能,它注定也會改變驗證流程。對原型的軟件驗證將進一步重要,軟件也將成為硬件驗證的驅動因素。作為使用VHDL或系統版本編碼的測試臺的經典驗證的替代方法,使用軟件的定向測試最近得到了更多的采用。
順便說一句,如前面所述,這允許在開發的各個階段中使用一種新的驗證重用形式。為了支持這種類型的驗證重用,盡早構建硬件原型將成為強制化的。考慮到驗證在不同開發階段的無縫重用,不同原型技術之間的接口也變得更加重要。如今的虛擬原型可以連接到基于硬件的原型上,以允許基于硬件和軟件的混合執行,提供了各種優勢:
?首先,避免必須重新建模RTL中已經可用的設計部分,可以減少開發工作,并支持硬件輔助的虛擬平臺。?其次,硬件原型可以更快地提出,因為測試臺——傳統上可以包含總體缺陷的50%——已經被驗證和穩定,因為它們以前已經應用于虛擬原型。?第三,通過混合使用基于硬件和軟件的技術,可以更靈活地管理原型的準確性、速度和可用性時間之間的權衡。?最后,在系統上下文中驗證硬件/軟件原型需要與正在開發的芯片環境的接口。來自硬件原型的接口可以接近,甚至在實時執行。使用虛擬原型的接口甚至可以在實際硬件可用性之前就可用。例如,USB 3.0驅動程序已經在虛擬平臺上的事務級模型上開發出來,甚至在實際的電纜可用之前。
6.4.知識產權塊重用
另一個重要的趨勢是IP塊的重用。隨著芯片復雜性的不斷增加,IP重用已成為保持設計生產率增長的一種重要途徑。圖9顯示了重用的百分比繼續增加,雖然沒有在此圖中顯示,但自2007年以來,塊的重用從45%增加到55%,即大多數塊現在在其他設計中被重用。
同時,直到每個芯片的平均IP塊數量從28個增長到50個,如圖10所示。這兩個數據點都來自于Semico研究公司的一項研究。考慮到這些IP趨勢,芯片設計本身正成為一項通過互連結構組裝現有塊的任務。芯片的差異化可以通過定制的塊、定制的協處理器,當然,還有軟件來實現。
在這里插入圖片描述
增加IP重用對原型化有各種影響。首先,預定義的IP模型在FPGA原型中進行預先映射和預驗證,以減少啟動時間和減少不必要的工作重復。IP的用戶也越來越多在項目的不同階段和作為IP交付本身的一部分的不同抽象級別上請求模型庫。這在處理器領域已經很普遍了,用戶要求ARM、MIPS、ARC和擴展等IP提供商提供可用于早期軟件開發和驗證的處理器模型
雖然在過去,這些模型的開發是一個挑戰,因為它們必須適應各種專有的模擬環境,但這種模型的開發最近在商業上變得可行。
隨著OSCI系統c TLM-2.0等標準的出現,處理器、外圍設備和互連的模型已經可以在不同的系統c兼容的仿真引擎之間進行互操作。標準化意味著從早期采用者階段到主流階段的過渡,因此IP模型的可用性已經大大提高。
6.5.應用特異性和混合信號設計
芯片開發的目標應用市場對芯片開發本身有著深遠的影響。圖11根據國際半導體技術路線圖(ITRS),圖11總結了不同目標應用的一些定義特征。
ITRS區分了芯片設計的四種主要類別——soc、微處理器單元(MPUs)、混合信號設計和嵌入式內存。每個類別都有特定的要求。在保持模具面積不變的同時提高性能對mpu很重要。降低電源電壓是混合信號產生的一個關鍵問題。
在SoC域內,ITRS將網絡應用程序與消費者便攜式和消費者固定式分離開來,其各種子需求如 圖11所示
總的來說,最終應用對于芯片設計要求和SoCs變得更加重要。因此,不同應用領域的原型需要特定應用程序的分析以及特定應用程序的系統接口,其中大多數具有顯著的混合信號內容。除了其他特性外,外部接口的速度還決定了一個原型是可以直接使用還是需要減慢。
6.6.多核架構和低功耗
幾十年來,處理器速度的擴展滿足了軟件應用程序對性能日益增長的需求,但行業一直了cpu4 GHz和嵌入式處理器1 GHz的限制。這種限制的原因在于功耗,當縮放到更高的程度時,它只是超過了功率包絡。這種真正而困難的限制導致了一種轉向多核架構的趨勢。簡單地說,在更低的頻率下,更多的核將比簡單地擴展一個核導致更少的功耗。圖12中的圖表證實了CPU和數據處理引擎(DPE)在消費者應用程序中使用的這一趨勢。
例如,我們可以看到,從2007年到2011年,dpe的平均數量幾乎增加了兩倍,而且預計將進一步增加。雖然這在硬件方面是一個很好的解決方案,但現在的挑戰已經轉移到了軟件方面。
傳統上,順序軟件現在需要分布在多個核上。對于原型設計來說,這意味著調試(查看硬件/軟件執行的能力)以及啟動、暫停、恢復和停止硬件/軟件執行的能力已經變得更加重要。
今天的虛擬原型已經提供了非干擾性調試設計的智能技術,并且可以在任何給定的時間啟動和停止它們。對基于硬件的原型的調試和控制的需求也增加了,但基于FPGA的原型的調試能力仍然落后于虛擬原型。
7.總結
所有形式的原型都為驗證硬件設計和驗證軟件提供了強大的方法,模型或多或少地模仿了目標環境。基于FPGA的原型設計在項目的關鍵后期階段尤其有益。用戶有幾個原型設計選項根據他們的主要需求,可以選擇各種基于軟件和硬件的技術來原型他們的設計。
由于設計驗證和軟件開發現在主導著SoC的開發工作,原型設計的使用在減少項目持續時間和設計成本方面從未像現在這樣重要過。上面提到的各種IC趨勢也使我們只得出一個結論:原型已經成為芯片設計的必要元素,在未來將變得更加重要,我們將在本書的最后一章看到。
在本章中,我們已經介紹了許多術語和一些完全不同的原型設計類型。它們在現實生活中都有多普遍?為了回答這個問題,我們參考圖14,它總結了對2009年8月SoC虛擬會議期間進行的使用調查的116個回復。當被問及“您將使用什么方法來為您的設計項目開發依賴于硬件的軟件(例如,驅動程序、固件)時?”,研究結果顯示,用戶確實能識別出各種不同的原型設計解決方案。結果表明,前面描述的所有原型技術都在積極使用中——這是上面討論的不同優先級的明顯結果——有利于不同的原型選項。在下一章中,我們將放大基于FPGA的原型設計的好處,特別是對軟件團隊和整個SoC項目的好處。
編輯:黃飛
?
評論
查看更多