0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

硬件仿真如何讓嵌入式系統(tǒng)便宜可靠?看完懂了~

模擬對(duì)話 ? 2018-03-14 17:07 ? 次閱讀

在當(dāng)今競(jìng)爭(zhēng)激烈的形勢(shì)下,使富含嵌入式軟件的復(fù)雜電子設(shè)備更快面市,但是同時(shí)確保其更便宜更可靠,是一種相當(dāng)冒險(xiǎn)的做法。未經(jīng)徹底測(cè)試的硬件設(shè)計(jì)不可避免地導(dǎo)致返工,增加設(shè)計(jì)成本并延長(zhǎng)布局流程的網(wǎng)表交付時(shí)間,并最終延遲上市時(shí)間目標(biāo),對(duì)收益源造成破壞性影響。

推遲嵌入式軟件的測(cè)試也潛藏有錯(cuò)過(guò)上市機(jī)遇的可能,會(huì)帶來(lái)更嚴(yán)重的后果。

正因?yàn)槿绱?,?xiàng)目周期的驗(yàn)證部分極大地占用計(jì)劃時(shí)間變成了很常見(jiàn)的事情。其中的根本原因,在于跟蹤和消除錯(cuò)誤極為不易,尤其是在片上系統(tǒng) (SoC) 的軟件內(nèi)容以每年約 200% 的速度增長(zhǎng)的情況下。與此相反,設(shè)計(jì)的硬件部分僅增長(zhǎng)約 50%。

硬件仿真作為系統(tǒng)驗(yàn)證的基礎(chǔ)

雖然虛擬原型和現(xiàn)場(chǎng)可編程門陣列 (FPGA) 原型在早期嵌入式軟件測(cè)試上已受到關(guān)注,但對(duì)于軟件和硬件的集成并無(wú)助益。前者缺乏追蹤硬件錯(cuò)誤所需的硬件精確性,而對(duì)于盡快消除錯(cuò)誤所需的硬件調(diào)試,后者能力有限。

因此,開(kāi)發(fā)團(tuán)隊(duì)和項(xiàng)目經(jīng)理已轉(zhuǎn)而采用硬件仿真作為其驗(yàn)證策略的基礎(chǔ)。硬件仿真是一種多功能驗(yàn)證工具,有許多相關(guān)優(yōu)勢(shì),包括軟硬件協(xié)同驗(yàn)證或測(cè)試硬件和軟件集成的功能。它已受到軟件開(kāi)發(fā)者的注意,因?yàn)檫@是能夠確
嵌入式系統(tǒng)軟件通過(guò)底層硬件正常工作的唯一驗(yàn)證工具。對(duì)于致力于調(diào)試復(fù)雜 SoC 設(shè)計(jì)的硬件工程師來(lái)說(shuō),這也是值得注意的,因?yàn)楣こ處熆梢詰{借該方法追蹤硬件內(nèi)的軟件錯(cuò)誤或軟件行為中的硬件錯(cuò)誤。硬件仿真的其他優(yōu)勢(shì)包括快速匯編功能、軟件驗(yàn)證、全面的設(shè)計(jì)調(diào)試和可擴(kuò)展性,可滿足包括數(shù)十億應(yīng)用程序特定集成電路 (ASIC) 門的設(shè)計(jì)。此外,它能夠以驗(yàn)證嵌入式軟件和執(zhí)行系統(tǒng)驗(yàn)證必需的高速率來(lái)處理數(shù)十億驗(yàn)證周期(圖 1)。

過(guò)去,硬件調(diào)試和測(cè)試是項(xiàng)目周期驗(yàn)證
部分的唯一工作,此作業(yè)由硬件描述語(yǔ)言 (HDL) 測(cè)試平臺(tái)驅(qū)動(dòng)的邏輯軟件仿真進(jìn)行管理。傳統(tǒng)的大箱式硬件仿真只用于最大型的設(shè)計(jì)。很多開(kāi)發(fā)團(tuán)隊(duì)已采用正式驗(yàn)證對(duì)軟件仿真進(jìn)行補(bǔ)充,以增加基礎(chǔ)覆蓋范圍并確保不遺漏特殊用例。但是,只有硬件仿真可以在比較可行的時(shí)間內(nèi)完成 SoC 設(shè)計(jì)的全部驗(yàn)證任務(wù),并緩解與基于事件的軟件仿真相關(guān)的運(yùn)行問(wèn)題。

都是軟件內(nèi)容的問(wèn)題

SoC 的軟件內(nèi)容使協(xié)同驗(yàn)證成為驗(yàn)證策略中一個(gè)非常重要的部分,因?yàn)樗梢栽谕镀按_認(rèn)一個(gè)嵌入式 SoC 的硬件和軟件部分同時(shí)得到驗(yàn)證且正確交互。

過(guò)去,如果設(shè)計(jì)流片后發(fā)生硬件問(wèn)題,軟件開(kāi)發(fā)者必須盡其所能設(shè)法圍繞問(wèn)題進(jìn)行編碼。在 SoC 完成之前驗(yàn)證軟件,設(shè)計(jì)團(tuán)隊(duì)可以在進(jìn)入硅片階段之前解決硬件問(wèn)題。如前所述,硬件仿真檢查用于確保嵌入式軟件根據(jù)規(guī)范在硬件上運(yùn)行。

過(guò)去使用各種調(diào)試引擎進(jìn)行軟件調(diào)試。每種引擎有一個(gè)核心,充分利用硬件對(duì)處理器內(nèi)部工作的可視性和控制功能。雖然提供了部分調(diào)試功能,但由于處理器提供的接入方式,診斷問(wèn)題的能力受限。此外,由于傳統(tǒng)軟件調(diào)試通常發(fā)生在實(shí)際系統(tǒng)中,軟件開(kāi)發(fā)者以目標(biāo)系統(tǒng)速度在實(shí)際硬件上執(zhí)行實(shí)際代碼。這樣他們可以通過(guò)大量代碼迅速找到錯(cuò)誤的程序。

這些傳統(tǒng)技術(shù)在調(diào)試 SoC 時(shí)無(wú)效,因?yàn)闆](méi)有實(shí)際硬件,無(wú)法以真實(shí)系統(tǒng)速度執(zhí)行代碼。一般來(lái)說(shuō),只要執(zhí)行代碼且軟件模擬器提供所有硬件可視性,即可仿真硬件。但問(wèn)題是速度 - 調(diào)試代碼是很慢的一種方法。

例如:如果 SoC 設(shè)計(jì)為在 Linux 上運(yùn)行程序,軟件開(kāi)發(fā)者必須以數(shù)十億時(shí)鐘周期完成 Linux 啟動(dòng),軟件才能開(kāi)始執(zhí)行。粗略估計(jì)這會(huì)以約 10 赫茲 (Hz) 的典型軟件仿真速度花費(fèi) 28 年以上完成 Linux 啟動(dòng)。


不管調(diào)試硬件還是軟件,傳統(tǒng)硬件和軟件調(diào)試工具都無(wú)法得知彼此的任何情況。如果采用復(fù)雜的大型 SoC 設(shè)計(jì),嘗試找到問(wèn)題時(shí)獨(dú)立完成兩種調(diào)試是效率低下的。

兩者結(jié)合是最為理想的方法,這樣硬件仿真就可以節(jié)約時(shí)間。SoC 硬件通常在 FPGA 或其他可編程器件中實(shí)施,速度更快。在此設(shè)置中,根據(jù)運(yùn)行速度,最快可以 15 分鐘的速度完成 Linux 啟動(dòng)。硬件仿真可提供與硬件調(diào)試器相似的斷點(diǎn)和波形控制及可視性。

確認(rèn) SoC 設(shè)計(jì)按預(yù)期工作

硬件仿真以其高性能(這是軟件需求推動(dòng)的越來(lái)越重要的需求)在一眾驗(yàn)證工具中脫穎而出。它能夠確認(rèn) SoC 設(shè)計(jì)按計(jì)劃工作,并適于處理大到十億 ASIC 等效門的復(fù)雜設(shè)計(jì),且每月可完成超過(guò)一萬(wàn)億驗(yàn)證周期。即使是這樣,現(xiàn)階段使用硬件仿真進(jìn)行徹底詳盡的功能驗(yàn)證仍然是可用的最具成本效益且有效的調(diào)試方法(圖 2)。

引入事務(wù)級(jí)建模 (TLM) 和事務(wù)處理器可用性可將硬件仿真轉(zhuǎn)為一系列垂直市場(chǎng)的虛擬平臺(tái)測(cè)試環(huán)境。事務(wù)處理器作為驗(yàn)證知識(shí)產(chǎn)權(quán) (IP) 組合的一部分,是外設(shè)功能或協(xié)議的一種高級(jí)抽象模型。事務(wù)處理器通常作為現(xiàn)成 IP 提供,可用于各種不同的協(xié)議。典型的事務(wù)處理器通常包括 PCIe、USB、FireWire、Ethernet、Digital Video、RGB、HDMI、I2CUART 和 JTAG 器件。

更好驗(yàn)證更多的復(fù)雜系統(tǒng)

先前,硬件設(shè)計(jì)獨(dú)立于要在芯片上執(zhí)行的軟件的開(kāi)發(fā)。但今非昔比,由于 SoC處理器數(shù)量翻倍且每代產(chǎn)品包含兩倍的軟件內(nèi)容,軟件問(wèn)題成為開(kāi)發(fā)團(tuán)隊(duì)和項(xiàng)目經(jīng)理優(yōu)先考慮的對(duì)象?,F(xiàn)在,開(kāi)發(fā)團(tuán)隊(duì)證實(shí)預(yù)期軟件在硬件平臺(tái)正常工作后,SoC 才算完整。

SoC 是一個(gè)全面的嵌入式系統(tǒng),需要進(jìn)行硬件仿真來(lái)驗(yàn)證其能否正常工作。通過(guò)硬件仿真,開(kāi)發(fā)團(tuán)隊(duì)可以更策略性地進(jìn)行計(jì)劃,并根據(jù)多個(gè)抽象層面實(shí)施調(diào)試方法。他們可以同時(shí)在硬件和嵌入式軟件之間追蹤錯(cuò)誤,確定問(wèn)題所在。通過(guò)具有更高性價(jià)比且有效的方式,他們?cè)谶@個(gè)過(guò)程中節(jié)約了時(shí)間,大幅降低錯(cuò)過(guò)上市機(jī)遇的風(fēng)險(xiǎn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    40

    文章

    3520

    瀏覽量

    128805
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4021

    瀏覽量

    217026
  • 硬件仿真
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    19273
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式系統(tǒng)的未來(lái)趨勢(shì)有哪些?

    嵌入式系統(tǒng)是指將我們的操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,形成一個(gè)專用的計(jì)算機(jī)系統(tǒng)。那么
    發(fā)表于 09-12 15:42

    嵌入式系統(tǒng)硬件組成部分

    嵌入式系統(tǒng)硬件組成部分是構(gòu)成其獨(dú)立運(yùn)作能力的關(guān)鍵要素,這些部分協(xié)同工作,以實(shí)現(xiàn)對(duì)外部環(huán)境的感知、處理及響應(yīng)。以下是對(duì)嵌入式系統(tǒng)
    的頭像 發(fā)表于 09-02 15:27 ?315次閱讀

    嵌入式linux開(kāi)發(fā)的基本步驟有哪些?

    嵌入式Linux開(kāi)發(fā)是一個(gè)復(fù)雜的過(guò)程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動(dòng)開(kāi)發(fā)、應(yīng)用程序開(kāi)發(fā)等多個(gè)方面。以下是嵌入式Linux開(kāi)發(fā)的基本步驟,以及每個(gè)步驟的說(shuō)明。
    的頭像 發(fā)表于 09-02 09:11 ?180次閱讀

    嵌入式機(jī)電一體化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》讀后感

    刻的認(rèn)識(shí)。從硬件上將外圍器件整合到CPU內(nèi)部,到軟件上在操作系統(tǒng)內(nèi)核中嵌入應(yīng)用程序,再到將軟件內(nèi)核或應(yīng)用文件系統(tǒng)等燒錄到硬件平臺(tái)中,這一系列
    發(fā)表于 08-21 08:45

    嵌入式系統(tǒng)怎么學(xué)?

    系統(tǒng)設(shè)計(jì)與調(diào)試:需要掌握嵌入式系統(tǒng)的設(shè)計(jì)方法和調(diào)試技術(shù),包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、電路調(diào)試等,以確保系統(tǒng)的穩(wěn)定性和
    發(fā)表于 07-02 10:10

    如何提升嵌入式編程能力?

    仿真:使用模擬和仿真工具來(lái)測(cè)試你的嵌入式系統(tǒng),這可以在實(shí)際硬件之前發(fā)現(xiàn)問(wèn)題。 通過(guò)以上的這些方法,可以逐步提高個(gè)人的
    發(fā)表于 06-21 10:01

    嵌入式系統(tǒng)基礎(chǔ)

    嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)
    的頭像 發(fā)表于 06-19 09:10 ?309次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>基礎(chǔ)

    從事嵌入式方向,一定要軟硬件通吃?

    嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域,軟件和硬件的界限常常模糊不清。一個(gè)常見(jiàn)的問(wèn)題是,嵌入式軟件工程師是否需要了解硬件。本文將探討這一問(wèn)題的重要性,并分析
    的頭像 發(fā)表于 06-05 08:10 ?786次閱讀
    從事<b class='flag-5'>嵌入式</b>方向,一定要軟<b class='flag-5'>硬件</b>通吃?

    嵌入式系統(tǒng)硬件基礎(chǔ)知識(shí)大全

    嵌入式系統(tǒng)是現(xiàn)代科技發(fā)展的一個(gè)重要分支,廣泛應(yīng)用于工業(yè)控制、消費(fèi)電子、醫(yī)療設(shè)備、汽車電子等領(lǐng)域。本文試圖全面解析嵌入式系統(tǒng)的軟基礎(chǔ)知識(shí),以期
    發(fā)表于 05-09 14:12

    再談嵌入式實(shí)時(shí)操作系統(tǒng)

    程序的可移植性得到了增強(qiáng),系統(tǒng)開(kāi)發(fā)的工作量減輕的同時(shí)也提高了開(kāi)發(fā)效率。對(duì)實(shí)時(shí)性和可靠性日益增長(zhǎng)的要求正在塑造某些現(xiàn)代領(lǐng)域的嵌入式實(shí)時(shí)操作系統(tǒng)的發(fā)展方向,例如航空航天、工業(yè)控制、汽車電子
    的頭像 發(fā)表于 04-09 17:27 ?568次閱讀
    再談<b class='flag-5'>嵌入式</b>實(shí)時(shí)操作<b class='flag-5'>系統(tǒng)</b>

    嵌入式學(xué)習(xí)步驟

    嵌入式行業(yè)是一個(gè)涉及廣泛領(lǐng)域的行業(yè),嵌入式、物聯(lián)網(wǎng)、人工智能、智能與科學(xué)、電子信息工程、通信工程、自動(dòng)化工程、測(cè)控、計(jì)算機(jī)科學(xué)等專業(yè)在嵌入式系統(tǒng)中使得軟件和
    發(fā)表于 02-02 15:24

    啥是嵌入式?嵌入式都有啥?薪資如何?前景如何

    嵌入式系統(tǒng)(Embedded Systems)是一種特殊類型的計(jì)算機(jī)系統(tǒng),被嵌入到其他設(shè)備或系統(tǒng)中,用于執(zhí)行特定的任務(wù)或控制特定的功能。這些
    的頭像 發(fā)表于 01-17 16:39 ?465次閱讀
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪資如何?前景如何

    什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)。用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2131次閱讀

    嵌入式硬件和軟件哪個(gè)好?

    嵌入式硬件和軟件哪個(gè)好? 嵌入式硬件工程師哪個(gè)更有前途呢?一起來(lái)看看。 嵌入式是分為軟硬件工程
    發(fā)表于 12-05 15:17

    什么是嵌入式Linux?

    之有運(yùn)行程序的能力與作用。在很多智能家電開(kāi)發(fā),智能產(chǎn)品的研究上有著主導(dǎo)的作用。(對(duì)個(gè)人、團(tuán)隊(duì)開(kāi)發(fā)產(chǎn)品有興趣的朋友一定要看看嵌入式?。?linux的嵌入式系統(tǒng)開(kāi)發(fā),涵蓋了從硬件到軟件設(shè)計(jì)
    發(fā)表于 10-11 13:47