在當(dāng)今競爭激烈的環(huán)境中,將富含嵌入式軟件的復(fù)雜電子設(shè)備更快地推向市場,同時使它們更便宜、更可靠是一個非常冒險的提議。
不徹底地測試硬件設(shè)計不可避免地會導(dǎo)致重新設(shè)計,增加設(shè)計成本并延長網(wǎng)表到布局過程的交付時間,并最終延遲上市時間,對收入流產(chǎn)生破壞性影響。缺少市場窗口的更顯著結(jié)果隱藏在嵌入式軟件的后期測試中。
毫不奇怪,項目周期的驗證部分占用了不成比例的大量進(jìn)度。這是因為跟蹤和消除錯誤并非易事,尤其是當(dāng)片上系統(tǒng) (SoC) 的軟件內(nèi)容以每年大約2 0 0 %的速度增長時。相比之下,設(shè)計中硬件部分的增長僅為5 0 %左右。
硬件仿真作為系統(tǒng)驗證的基礎(chǔ)
雖然虛擬原型和現(xiàn)場可編程門陣列 (FPGA) 原型在早期嵌入式軟件測試中受到關(guān)注,但它們無法幫助實現(xiàn)軟件和硬件的集成。前者缺乏跟蹤硬件錯誤所需的硬件準(zhǔn)確性。后者提供了快速放大錯誤所需的有限硬件調(diào)試功能。
因此,開發(fā)團(tuán)隊和項目經(jīng)理已將硬件仿真作為其驗證策略的基礎(chǔ)。仿真是一種多功能驗證工具,具有許多相關(guān)優(yōu)勢,包括硬件/軟件協(xié)同驗證,或測試硬件和軟件集成的能力。軟件開發(fā)人員已經(jīng)注意到了,因為它是唯一能夠確保嵌入式系統(tǒng)軟件與底層硬件正常工作的驗證工具。同樣值得注意的是,對于致力于調(diào)試復(fù)雜 SoC 設(shè)計的硬件工程師來說,它可以將軟件錯誤跟蹤到硬件或軟件行為中的硬件錯誤。其他好處包括它的快速編譯能力,軟件驗證的另一個優(yōu)點,全面的設(shè)計調(diào)試和可擴展性,以適應(yīng)包含超過 10 億個專用集成電路 (ASIC) 門的設(shè)計。此外,它可以高速處理數(shù)十億個驗證周期,以驗證嵌入式軟件和執(zhí)行系統(tǒng)驗證。
過去,硬件調(diào)試和測試是項目周期驗證部分的唯一原因,這是由硬件描述語言 (HDL) 測試平臺驅(qū)動的邏輯仿真管理的。傳統(tǒng)的 big-box 仿真僅用于最大的設(shè)計。許多開發(fā)團(tuán)隊已采用形式驗證來補充模擬,增加基本覆蓋范圍并確保不會遺漏一些極端情況。然而,只有硬件仿真才能在實際時間內(nèi)完成 SoC 設(shè)計的整個驗證任務(wù),并緩解與基于事件的仿真相關(guān)的運行時問題。
一切都與軟件內(nèi)容有關(guān)
SoC 的軟件內(nèi)容使聯(lián)合驗證成為驗證策略中最重要的部分,因為它確認(rèn)嵌入式 SoC 的硬件和軟件部分同時驗證并在提交到芯片之前正確交互。
過去,如果設(shè)計流片到芯片上后出現(xiàn)硬件問題,軟件開發(fā)人員必須盡可能地解決如何圍繞它編寫代碼。通過在 SoC 完成之前驗證軟件,設(shè)計團(tuán)隊有機會在硬件問題被安裝到芯片之前修復(fù)它們。如前所述,仿真檢查以確保嵌入式軟件根據(jù)規(guī)范在支持硬件上運行。
過去,軟件調(diào)試是使用各種調(diào)試引擎完成的。每個內(nèi)核一個,他們利用了硬件功能,這些功能提供了對處理器內(nèi)部工作的可見性和控制。雖然提供了一些調(diào)試功能,但診斷問題的能力受到處理器提供的訪問類型的限制。此外,由于傳統(tǒng)的軟件調(diào)試通常發(fā)生在實際系統(tǒng)上,因此軟件開發(fā)人員正在以目標(biāo)系統(tǒng)速度在真實硬件上執(zhí)行真實代碼。這使他們能夠通過大量代碼快速找到錯誤例程。
這些傳統(tǒng)技術(shù)在調(diào)試 SoC 時會失效。因為沒有真正的硬件,代碼不能以真正的系統(tǒng)速度執(zhí)行。假設(shè),可以在執(zhí)行代碼時模擬硬件,并且所有硬件可見性都將由模擬器提供。問題在于速度——這是一種調(diào)試代碼的緩慢方式。
例如,如果 SoC 設(shè)計為在 Linux 上運行程序,則軟件開發(fā)人員必須以數(shù)十億個時鐘周期完成 Linux 啟動,然后軟件才能開始執(zhí)行。粗略的估計是,使用大約1 0赫茲(Hz) 的典型模擬速度完成Linux引導(dǎo)需要超過2 8 年的時間。
不管是硬件調(diào)試還是軟件調(diào)試,傳統(tǒng)的硬件和軟件調(diào)試工具是互不相識的。對于大型且復(fù)雜的 SoC 設(shè)計,單獨進(jìn)行兩種類型的調(diào)試以嘗試定位問題是低效的。
讓兩者一起工作是理想的場景,而這正是仿真節(jié)省時間的地方。SoC 硬件在硬件中實現(xiàn),通常是 FPGA 或其他一些可編程元件,使其速度更快。使用此設(shè)置,Linux 啟動可以在1 5分鐘內(nèi)完成,具體取決于運行的實際速度。硬件仿真提供與具有斷點和波形的硬件調(diào)試器類似的控制和可見性。
確認(rèn) SoC 設(shè)計將按預(yù)期工作
硬件仿真以其高性能區(qū)別于其他驗證工具——這是由軟件需求驅(qū)動的日益重要的需求。它能夠確認(rèn) SoC 設(shè)計將按計劃工作,并且適合處理復(fù)雜的設(shè)計,這些設(shè)計可能高達(dá) 10 億個 ASIC 等效門,并且每月消耗超過 1 萬億個驗證周期。即便如此,在此階段使用硬件仿真進(jìn)行徹底和詳盡的功能驗證仍然是可用的最具成本效益和最有效的調(diào)試方法。
交易級建模 (TLM) 的引入和交易者的可用性可以將硬件仿真轉(zhuǎn)變?yōu)橐幌盗写怪笔袌龅奶摂M平臺測試環(huán)境。交易者是驗證知識產(chǎn)權(quán) (IP) 組合的一部分,是外圍功能或協(xié)議的高級抽象模型。交易者,通常作為現(xiàn)成的 IP 提供,可用于各種不同的協(xié)議。典型目錄包括 PCIe、USB、FireWire、以太網(wǎng)、數(shù)字視頻、RGB、HDMI、I2C、UART 和 JTAG 組件。
更好地驗證更復(fù)雜的系統(tǒng)
以前,硬件設(shè)計獨立于要在這些芯片上執(zhí)行的軟件的創(chuàng)建。情況不再如此。由于 SoC 的處理器數(shù)量翻倍,并且每一代產(chǎn)品包含的軟件內(nèi)容翻倍,因此對軟件的關(guān)注成為開發(fā)團(tuán)隊和項目經(jīng)理的首要任務(wù)。現(xiàn)在,在開發(fā)團(tuán)隊證明預(yù)期的軟件可以在硬件平臺上運行之前,SoC 是不完整的。
SoC 是一個成熟的嵌入式系統(tǒng),需要硬件仿真來驗證它是否正常工作。借助硬件仿真,開發(fā)團(tuán)隊可以更有策略地規(guī)劃并實施基于多個抽象級別的調(diào)試方法。他們可以同時跟蹤硬件和嵌入式軟件之間的錯誤,以確定問題所在。在此過程中,他們以經(jīng)濟高效的方式節(jié)省了時間,大大降低了錯過市場窗口的風(fēng)險。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5088文章
19158瀏覽量
306476 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5452瀏覽量
172189 -
soc
+關(guān)注
關(guān)注
38文章
4190瀏覽量
218623
發(fā)布評論請先 登錄
相關(guān)推薦
評論