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