消費者和無線通信市場比以往任何時候都更具競爭力。公司聚合與分解之間的持續戰斗如火如荼。聚合的一個例子是決定通過將芯片設計引入內部來擁有更多的垂直設計鏈。這有助于像 Apple 這樣的公司通過控制更多的整體產品設計來實現差異化,從而不受其他人可用的現成芯片的限制。
雖然蘋果已經證明了垂直差異化的潛在回報,但這種方法確實帶來了巨大的風險,無論一家公司是否有設計芯片的經驗。具體來說,軟件團隊如何開發與交付的硬件一起使用的軟件?
在等式的另一邊,完全分解是由軟件抽象層(如谷歌的 Android 操作系統)實現的。它在某種程度上使設計空間民主化,允許所有系統公司參與并使用軟件實現差異化。Android 允許半導體供應商通過提供支持硬件平等參與。同樣,軟件與硬件一起工作的方式決定了產品的成功。
這個問題的傳統解決方案在今天的市場上是行不通的。公司過去可以根據規范開始軟件開發,并等待芯片原型可供測試。如果軟件非常簡單,獨立于硬件,并且有一個簡單的規范,那么它就可以工作,但對于今天需要所有東西都連接起來的消費電子產品來說就不行了。
此外,等待很長時間才能開始測試會使調試周期在計劃中太晚。近年來,許多公司通過轉向標準的現成芯片來解決這個問題,但這種方法限制了差異化的能力。如果你想添加一個省電的睡眠模式但是沒有辦法關閉芯片怎么辦?
在綜合場景中,公司不僅在軟件和工業設計方面尋求差異化,而且在電子硬件方面也有所不同。進行芯片設計項目會帶來風險;再加上嵌入式軟件開發,整體項目風險呈指數級上升。大多數公司都非常小心,會花大量時間預先構建系統、對其進行測試、將其劃分為軟件和硬件,并指定兩者的行為。但是一旦每個團隊開始設計,就會做出某些實現假設,引入錯誤,并且可以添加功能。
在一個分散的世界中,情況甚至更糟,因為責任現在跨越了公司邊界。來自系統和半導體領域的公司可能會決定合作優化硬件/軟件交互并創建針對系統需求進行優化的芯片。即使有持續的同步會議,設計更改也會在軟件團隊不知情的情況下潛入,并且可能直到軟件第一次在實際硬件上運行時才會被看到。這又回到了硬件不夠快可用的問題。工程師如何解決這個難題?
原型設計的黃金模型
以軟件模型形式出現的硬件虛擬原型(或虛擬平臺)在流程的早期為軟件團隊提供了系統硬件模型。這使開發人員能夠開始對硬件規范模型進行測試。但是,它只是規范的模型。今天的大多數硬件設計都是從工程師閱讀和解釋規范開始的,然后用 Verilog 等硬件設計語言編寫低級寄存器傳輸語言 (RTL) 模型,以開始驗證和實施過程。由于前面提到的因素,硬件行為可能會偏離規范。
解決方案是使用一個通用的“黃金模型”,軟件團隊可以在該模型上進行開發,硬件團隊可以使用該模型開始實施。現在,隨著開放系統 C 倡議 (OSCI) 事務級建模 (TLM) 2.0 標準的可用性,這成為可能。
簡而言之,SystemC 是一個類庫,通過對硬件數據類型和并發性進行建模,可以使用 C/C++ 進行硬件設計。因為硬件現在可以用 C 語言建模,所以軟件團隊可以運行相同的模型。TLM 擴展很重要,因為它們抽象出硬件所需的所有信號級協議細節,以確保它與系統總線正確通信。過多的這些細節會使模型運行軟件太慢。TLM 將這些細節抽象為更高級的模型,這些模型可以在高級綜合期間映射到詳細的硬件。
解決高級綜合限制
高級綜合提供了 C 模型和構建的實際硬件之間的自動鏈接。這消除了硬件設計人員解釋規范并手動編寫自己的模型以開始構建硬件的人為因素。直到最近,由于現在已經解決了一些關鍵限制,這在實踐中很少使用:
結果質量:前兩代高級綜合從未能夠生產出滿足手動編寫 RTL 所能達到的相同性能、功耗和尺寸的硬件。現代高級合成技術已經解決了這個問題。
細化方法:用于軟件開發的高級虛擬原型使用 SystemC TLM 描述,但仍需要硬件團隊通過添加硬件架構細節來對其進行細化,以便高級綜合可以產生最佳的硬件微架構。這些細節對于軟件測試來說太低級了,會減慢它的速度,但它們對于構建高效的硬件很重要。這種方法現在已經存在,并已被早期采用者客戶證明。
驗證:直到最近,工程師還缺乏一種成熟的方法來驗證 SystemC TLM 中硬件架構和其余硬件實現流程的正確性。這主要是因為不存在實現實現的自動化路徑,因此大多數驗證都是在較低級別完成的。因此驗證成為硬件開發進度的瓶頸。既然存在自動化路徑,驗證方法就已經開發出來了。
硬件設計團隊熟悉使用 SystemC TLM 設計和驗證硬件的這些傳統障礙。然而,大多數人并不知道這些障礙已得到解決。那些意識到這一點的人現在享有顯著的競爭優勢。他們可以更有效地描述他們的硬件,更快速地驗證它,并更容易地在衍生芯片中重用它。
實踐中的虛擬平臺
硬件的通用模型現在可以更早地作為虛擬平臺的一部分使用,因此可以更快地解決硬件/軟件交互問題。這種通用模型可以作為虛擬平臺中更大系統的一部分在公司內部的聚合開發場景中交付,也可以在分散的世界中跨公司交付。
系統概念首先被描述為 SystemC TLM 虛擬原型。在 Cadence 流程中,虛擬系統平臺使用此虛擬原型在此硬件模型上運行軟件。同時,硬件設計團隊將完善 TLM,為 C-to-Silicon Compiler 高級綜合添加硬件架構細節,這是實現硅片的開始。
如果在測試過程中發現錯誤,虛擬系統平臺將與 Incisive Verification Platform 集成,以便可以在軟件和硬件上進行調試。這意味著無需繁瑣的固件補丁即可從源頭解決問題。隨著硬件實施過程的進展,更詳細的 RTL 模型可用于在驗證計算平臺中創建硬件仿真模型或在快速原型開發平臺中創建 FPGA 原型。
整個過程是一系列連續的改進,從快速 TLM 模型開始,在可用時添加更多硬件細節,同時保持足夠快的運行時以進行軟件開發。這最終使軟件和硬件團隊——甚至跨越公司邊界——擁有一個通用模型,可以實現更早的通信和持續的同步。這是與當今消費市場所需的創新和交付計劃保持同步所需的協作類型。只有硬件團隊發展其設計和驗證方法以包含 SystemC TLM,才能實現這一目標。
審核編輯:郭婷
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605240 -
芯片
+關注
關注
456文章
51155瀏覽量
426305 -
總線
+關注
關注
10文章
2900瀏覽量
88293
發布評論請先 登錄
相關推薦
評論