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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

嵌入式軟件驅(qū)動的硬件驗證

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Frank Schirrmeister ? 2022-06-14 15:21 ? 次閱讀

另一組片上系統(tǒng)驗證方法依賴于使用經(jīng)過驗證的硅片、新的和未經(jīng)測試(可能尚不可用)硅片的虛擬原型以及 FPGA 原型在硬件上執(zhí)行實際軟件。正如我們從這個角度看到的那樣,有時會使用所有三種方法。

據(jù)最佳估計,90 nm 芯片設計背后的軟件開發(fā)工作已經(jīng)超過了硬件開發(fā)工作。對 2011 年的預測是,不到 40% 的整體芯片開發(fā)成本將用于硬件。軟件現(xiàn)在主導著項目周期,并決定了芯片何時可以投入批量生產(chǎn)。結(jié)果,軟件驗證的重要性增加了,軟件在硬件驗證過程中扮演了不可或缺的角色。

將硬件和軟件結(jié)合在一起

今天,工程師使用三種基本技術在硬件表示上執(zhí)行軟件。在衍生設計中,部分軟件可以使用上一代芯片進行開發(fā)。這種方法通常最適用于分層軟件架構(gòu)中較高的軟件部分,特別是對于獨立于硬件的應用程序。

虛擬原型提供了設計周期中最早的解決方案,因為它們可以在架構(gòu)確定后立即實施。這些原型是片上系統(tǒng) (SoC)、電路板、I/O 和用戶界面的預寄存器傳輸級別 (RTL)、寄存器精確和功能齊全的軟件模型。它們執(zhí)行未經(jīng)修改的生產(chǎn)代碼,并使用 USB 等外部接口作為虛擬 I/O 近乎實時地運行。

因為虛擬原型本質(zhì)上是軟件,所以它們提供了高度的系統(tǒng)可見性和控制,包括多核調(diào)試。它們還可以作為半導體和系統(tǒng)制造商之間協(xié)作的工具。自 Open SystemC Initiative Transaction Level Model (TLM) 2.0 API 標準化以來,SystemC 已成為使用可互操作的事務級模型開發(fā)快速虛擬原型的合適基礎設施。

在 RTL 完成并使用功能驗證技術達到穩(wěn)定狀態(tài)后,可以使用 FPGA 原型。原型是 SoC、電路板和 I/O 實現(xiàn)未修改的 ASIC RTL 代碼的硅前、功能齊全的硬件表示。經(jīng)過優(yōu)化實施,它們可以在連接外部接口和激勵的情況下幾乎實時運行,并結(jié)合 RTL 仿真提供比實際芯片更高的系統(tǒng)可見性和控制。與傳統(tǒng)的硬件/軟件覆蓋相比,F(xiàn)PGA 原型提供了更高的速度水平,后者將 RTL 仿真與周期精確的處理器模型相結(jié)合。

根據(jù)所需的準確性、速度和所需的可用時間,不同的技術為軟件開發(fā)和軟件驅(qū)動的硬件驗證提供最合適的解決方案?;旌?a target="_blank">產(chǎn)品通常允許設計人員利用多種產(chǎn)品的優(yōu)勢。例如,可以通過處理器和外圍設備的快速事務級模型來增強 RTL 仿真,以提高仿真速度和驗證覆蓋率?;蛘?,在混合使用模式下處理設計問題的虛擬原型和 FPGA 原型結(jié)合了基于軟件和硬件的執(zhí)行,提供了比單獨產(chǎn)品更好的解決方案。

從實際項目中學習

為了更好地理解這個問題,Synopsys 和 International Business Strategies 分析了包括復雜硬件和軟件在內(nèi)的 12 個項目的項目工作量和經(jīng)過的時間。圖 1 顯示了分析的 12 個項目的示例。上半部分顯示了不同開發(fā)階段的時間線;底部顯示了每個階段的總體項目工作量的百分比。

圖 1:在對 12 個項目的分析中,RTL 驗證占用了 21% 的硬件/軟件開發(fā)工作量。

poYBAGKoN4SAe7SdAAJudbYtL-U173.png

RTL 驗證平均占整體硬件/軟件工作量的 21%,或僅硬件工作量的 38%。此外,RTL 驗證消耗了從需求到 GDSII 所用時間的大約 55%。驗證在流片的整個流程中以不同的變體繼續(xù)進行,而且在 IP 認證上花費的大部分精力也可以被認為是另一種形式的驗證。因此,驗證很容易達到硬件開發(fā)中經(jīng)常提到的 70% 的數(shù)字。

從硬件從規(guī)范到流片的開發(fā)時間來看,移植操作系統(tǒng)平均需要大約三分之一的時間,開發(fā)實用軟件大約需要一半時間,三分之二的時間用于移植操作系統(tǒng)。開發(fā)應用軟件。在工程樣品可用時開始軟件開發(fā)的全系列開發(fā)過程將使項目進度再增加半年到四分之三的時間。除非項目是并行開發(fā)的,否則軟件開發(fā)會延遲大量交付硬件的能力。

雖然在項目開始后從需求到流片有 17% 的時間可以使用穩(wěn)定的規(guī)范(虛擬原型的先決條件),但從需求到流片需要將近 70% 的時間才能達到穩(wěn)定的 RTL(先決條件)用于硬件原型。虛擬和硬件原型在非常不同的時間可用,因此適用于非常不同的開發(fā)階段。

提高驗證效率

如果在 SoC 設計周期的早期提供虛擬原型用于軟件開發(fā),它可以不斷發(fā)展以滿足不同的需求。軟件驅(qū)動驗證的三種主要使用模型在 RTL 中利用虛擬原型與信號級仿真的集成:

1. 當一個 RTL 塊可用時,它可以在虛擬原型中替換它的 TLM。然后可以在此版本的原型上驗證軟件,作為驗證硬件和軟件的一種方式。知道使用了真實的系統(tǒng)場景會增加驗證的信心。此外,鑒于盡可能多的系統(tǒng)在事務級別進行模擬,驗證的模擬速度更快。

2. 虛擬原型還可以作為運行實際系統(tǒng)軟件的測試臺組件,為 RTL 驗證測試臺開發(fā)和硅后驗證測試提供先機。虛擬原型可用于生成系統(tǒng)激勵來測試 RTL,然后驗證虛擬原型和 RTL 功能是否相同。用戶可以在TLM嵌入式定向軟件測試上進行高效開發(fā),也可以用于系統(tǒng)集成測試。結(jié)果,驗證測試用例開發(fā)的生產(chǎn)力提高了。

3. 由于虛擬原型的某些部分被驗證為等同于它們相應的 RTL,虛擬原型可以成為參考可執(zhí)行規(guī)范。因此,用戶獲得了針對事務級別和 RTL 的單一黃金測試平臺。

圖 2 顯示了 Synopsys Innovator 虛擬原型開發(fā)環(huán)境中的 USB On-The-Go 示例和分別使用事務級處理器模型和嵌入式軟件的 USB 驗證環(huán)境。

圖 2:在 USB 驗證環(huán)境中,事務級處理器模型通過 USB 連接到 RTL。

poYBAGKoN46AOn-nAAPhXJM6Rrk850.png

即使在項目開始時沒有虛擬原型,硬件組件的虛擬化也可以幫助從 RTL 驗證環(huán)境開始逐步提高驗證效率。

在事務級別用虛擬處理器模型替換系統(tǒng)中片上處理器的 RTL 表示可以顯著提高仿真速度,從而縮短驗證周轉(zhuǎn)時間。在幾個客戶示例中,更換單個處理器模型將仿真速度提高了 32 倍。

為了在功能 RTL 驗證中加入軟件驅(qū)動程序以執(zhí)行實際產(chǎn)品測試用例,只需對適當?shù)淖酉到y(tǒng)進行建模并將其連接到 RTL 仿真。這可以像從庫中添加事務級處理器模型一樣簡單,通過簡單的總線模型將其連接到正在驗證的外設的 TLM,然后將其連接到 RTL,如圖 2 所示。

混合原型

為了通過提高仿真速度和系統(tǒng)中嵌入式軟件的執(zhí)行來進一步提高驗證效率,可以使用硬件原型。鑒于虛擬原型和硬件原型在項目的根本不同階段都可用,混合原型提供了一個可行的解決方案,讓開發(fā)人員可以利用這兩個世界的優(yōu)勢。

雖然虛擬原型在設計流程的早期就可用——通常僅在規(guī)范穩(wěn)定后幾周——它們通常并不代表 FPGA 原型可以展示的完整實現(xiàn)細節(jié)。相比之下,F(xiàn)PGA 原型在相當高的速度下運行完全準確,但在設計流程的后期可用,盡管在硅片從生產(chǎn)中返回之前還很長時間。

圖 3 顯示了混合 TLM 和硬件原型的原理圖。幾種混合使用模型結(jié)合了虛擬原型和 FPGA 原型的優(yōu)點,包括重用實際 RTL 而不是重新建模和加速硬件和軟件的整體執(zhí)行。

圖 3:虛擬原型和 FPGA 原型的混合使用模型結(jié)合了虛擬原型和 FPGA 原型的優(yōu)點。

poYBAGKoN52AOkMVAAPApSgwAuE373.png

未來更智能的驗證

由于驗證對項目工作和時間表以及軟件對項目成功的影響越來越大,考慮到嵌入式軟件的智能驗證變得越來越重要。

使用虛擬原型,無論是自下而上的 RTL 驗證,還是自上而下的虛擬原型驗證,都可以逐步提高驗證效率。通過使用處理器和外圍設備的虛擬化事務級模型增強傳統(tǒng) RTL 仿真,可以提高驗證效率。這提高了仿真速度,并允許直接執(zhí)行 TLM 參考模型作為測試臺的一部分。在自上而下的流程中,可以通過重用現(xiàn)有的虛擬原型及其模型來提高驗證效率,這可以通過簡單地將正在驗證的 RTL 替換為 TLM 直到 RTL 可用,從而為驗證場景開發(fā)提供先機。虛擬原型隨后成為 RTL 驗證的參考。

虛擬原型和 FPGA 原型的混合以及 RTL 仿真和事務級模型的混合允許開發(fā)人員利用各個解決方案的綜合優(yōu)勢。對驗證效率的直接影響很大程度上源于更快的模擬執(zhí)行,這反過來又可以加快驗證周轉(zhuǎn)速度。

審核編輯:郭婷

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

    關注

    68

    文章

    19039

    瀏覽量

    228484
  • FPGA
    +關注

    關注

    1624

    文章

    21540

    瀏覽量

    600545
  • 嵌入式
    +關注

    關注

    5052

    文章

    18913

    瀏覽量

    300833
收藏 人收藏

    評論

    相關推薦

    嵌入式學習建議

    對廣大渴望學習嵌入式系統(tǒng)的學子提出幾點基礎階段的學習建議: ①嵌入式系統(tǒng)軟件硬件密切相關,一定要打好軟硬件基礎。其實,只要找到正確的方法,
    發(fā)表于 10-22 11:41

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

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

    嵌入式硬件VS軟件,到底哪個更難?

    嵌入式系統(tǒng)開發(fā)中,硬件軟件是密不可分的兩個方面。但是,究竟是硬件開發(fā)更具挑戰(zhàn)性,還是軟件開發(fā)更難以應對呢?本文將就這一問題展開討論,探究
    的頭像 發(fā)表于 06-13 08:10 ?993次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>硬件</b>VS<b class='flag-5'>軟件</b>,到底哪個更難?

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

    軟件工程師的職責嵌入式軟件工程師的主要職責是為嵌入式系統(tǒng)編寫和調(diào)試代碼,確保系統(tǒng)按預期工作。他們需要處理底層硬件接口、實時操作系統(tǒng)(RTOS
    的頭像 發(fā)表于 06-05 08:10 ?938次閱讀
    從事<b class='flag-5'>嵌入式</b>方向,一定要軟<b class='flag-5'>硬件</b>通吃?

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式
    發(fā)表于 05-16 11:00

    嵌入式系統(tǒng)軟硬件基礎知識大全

    兩部分組成的。硬件部分包括處理器、存儲器、輸入輸出等,是嵌入式系統(tǒng)實現(xiàn)功能的基礎。軟件部分則包括操作系統(tǒng)、驅(qū)動程序、應用程序等,負責控制硬件
    發(fā)表于 05-09 14:12

    嵌入式軟件設計的原則分享

    嵌入式軟件開發(fā)如果具有更好的閱讀性、擴展性以及維護性,就需要考慮很多因素。今天給大家分享幾個嵌入式軟件設計的原則。
    發(fā)表于 02-25 10:54 ?572次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>設計的原則分享

    嵌入式軟件開發(fā)應該掌握哪些知識?

    嵌入式軟件開發(fā)應該掌握哪些知識? 一、 什么是嵌入式軟件嵌入式軟件通常是指
    發(fā)表于 02-19 11:23

    高端嵌入式實驗平臺

    一、整體概述 該嵌入式平臺具有前沿性、專業(yè)性、高集成度、功能豐富等特點,平臺涵蓋嵌入式計算機技術、嵌入式硬件接口、嵌入式系統(tǒng)
    的頭像 發(fā)表于 01-29 09:55 ?448次閱讀
    高端<b class='flag-5'>嵌入式</b>實驗平臺

    嵌入式軟件開發(fā)和軟件開發(fā)的區(qū)別

    嵌入式軟件開發(fā)和軟件開發(fā)是兩個不同的概念,它們在一些關鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入
    的頭像 發(fā)表于 01-22 15:27 ?2035次閱讀

    基于功能安全的汽車嵌入式軟件單元驗證技術研究

    ,對滿足功能安全ASIL等級的汽車嵌入式軟件單元驗證技術進行詳細介紹,從而提高軟件質(zhì)量,減少軟件安全隱患,對汽車
    的頭像 發(fā)表于 01-07 11:27 ?946次閱讀
    基于功能安全的汽車<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>單元<b class='flag-5'>驗證</b>技術研究

    嵌入式驅(qū)動和應用哪個更難?

    現(xiàn)在的嵌入式比20年前的要求更高,軟硬件、應用場景也更復雜了,除了驅(qū)動層和應用層,中間層也是重要的一層。
    發(fā)表于 12-18 09:58 ?780次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>驅(qū)動</b>和應用哪個更難?

    嵌入式硬件軟件哪個好?

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

    嵌入式軟件的開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式軟件的開發(fā)流程.doc》資料免費下載
    發(fā)表于 11-17 14:39 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>的開發(fā)流程

    嵌入式軟件不需要架構(gòu)嗎?為什么沒有嵌入式軟件架構(gòu)師?

    我的看法:目前國內(nèi)的嵌入式開發(fā)主要分為嵌入式底層開發(fā)和嵌入式應用開發(fā),嵌入式的底層開發(fā)一般叫做驅(qū)動開發(fā),或者bsp開發(fā),有時也有稱之為lin
    發(fā)表于 10-27 14:45 ?527次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>不需要架構(gòu)嗎?為什么沒有<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>架構(gòu)師?