另一組片上系統(tǒng)驗證方法依賴于使用經(jīng)過驗證的硅片、新的和未經(jīng)測試(可能尚不可用)硅片的虛擬原型以及 FPGA 原型在硬件上執(zhí)行實際軟件。正如我們從這個角度看到的那樣,有時會使用所有三種方法。
據(jù)最佳估計,90 nm 芯片設計背后的軟件開發(fā)工作已經(jīng)超過了硬件開發(fā)工作。對 2011 年的預測是,不到 40% 的整體芯片開發(fā)成本將用于硬件。軟件現(xiàn)在主導著項目周期,并決定了芯片何時可以投入批量生產(chǎn)。結果,軟件驗證的重要性增加了,軟件在硬件驗證過程中扮演了不可或缺的角色。
將硬件和軟件結合在一起
今天,工程師使用三種基本技術在硬件表示上執(zhí)行軟件。在衍生設計中,部分軟件可以使用上一代芯片進行開發(fā)。這種方法通常最適用于分層軟件架構中較高的軟件部分,特別是對于獨立于硬件的應用程序。
虛擬原型提供了設計周期中最早的解決方案,因為它們可以在架構確定后立即實施。這些原型是片上系統(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)化實施,它們可以在連接外部接口和激勵的情況下幾乎實時運行,并結合 RTL 仿真提供比實際芯片更高的系統(tǒng)可見性和控制。與傳統(tǒng)的硬件/軟件覆蓋相比,F(xiàn)PGA 原型提供了更高的速度水平,后者將 RTL 仿真與周期精確的處理器模型相結合。
根據(jù)所需的準確性、速度和所需的可用時間,不同的技術為軟件開發(fā)和軟件驅(qū)動的硬件驗證提供最合適的解決方案?;旌?a target="_blank">產(chǎn)品通常允許設計人員利用多種產(chǎn)品的優(yōu)勢。例如,可以通過處理器和外圍設備的快速事務級模型來增強 RTL 仿真,以提高仿真速度和驗證覆蓋率?;蛘?,在混合使用模式下處理設計問題的虛擬原型和 FPGA 原型結合了基于軟件和硬件的執(zhí)行,提供了比單獨產(chǎn)品更好的解決方案。
從實際項目中學習
為了更好地理解這個問題,Synopsys 和 International Business Strategies 分析了包括復雜硬件和軟件在內(nèi)的 12 個項目的項目工作量和經(jīng)過的時間。圖 1 顯示了分析的 12 個項目的示例。上半部分顯示了不同開發(fā)階段的時間線;底部顯示了每個階段的總體項目工作量的百分比。
圖 1:在對 12 個項目的分析中,RTL 驗證占用了 21% 的硬件/軟件開發(fā)工作量。
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)集成測試。結果,驗證測試用例開發(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。
即使在項目開始時沒有虛擬原型,硬件組件的虛擬化也可以幫助從 RTL 驗證環(huán)境開始逐步提高驗證效率。
在事務級別用虛擬處理器模型替換系統(tǒng)中片上處理器的 RTL 表示可以顯著提高仿真速度,從而縮短驗證周轉時間。在幾個客戶示例中,更換單個處理器模型將仿真速度提高了 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 和硬件原型的原理圖。幾種混合使用模型結合了虛擬原型和 FPGA 原型的優(yōu)點,包括重用實際 RTL 而不是重新建模和加速硬件和軟件的整體執(zhí)行。
圖 3:虛擬原型和 FPGA 原型的混合使用模型結合了虛擬原型和 FPGA 原型的優(yōu)點。
未來更智能的驗證
由于驗證對項目工作和時間表以及軟件對項目成功的影響越來越大,考慮到嵌入式軟件的智能驗證變得越來越重要。
使用虛擬原型,無論是自下而上的 RTL 驗證,還是自上而下的虛擬原型驗證,都可以逐步提高驗證效率。通過使用處理器和外圍設備的虛擬化事務級模型增強傳統(tǒng) RTL 仿真,可以提高驗證效率。這提高了仿真速度,并允許直接執(zhí)行 TLM 參考模型作為測試臺的一部分。在自上而下的流程中,可以通過重用現(xiàn)有的虛擬原型及其模型來提高驗證效率,這可以通過簡單地將正在驗證的 RTL 替換為 TLM 直到 RTL 可用,從而為驗證場景開發(fā)提供先機。虛擬原型隨后成為 RTL 驗證的參考。
虛擬原型和 FPGA 原型的混合以及 RTL 仿真和事務級模型的混合允許開發(fā)人員利用各個解決方案的綜合優(yōu)勢。對驗證效率的直接影響很大程度上源于更快的模擬執(zhí)行,這反過來又可以加快驗證周轉速度。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19103瀏覽量
228823 -
FPGA
+關注
關注
1625文章
21625瀏覽量
601245 -
嵌入式
+關注
關注
5059文章
18975瀏覽量
302075
發(fā)布評論請先 登錄
相關推薦
評論