發布日期:2022-07-15 點擊率:41
典型的嵌入式平臺由一個或多個處理器和總線結構及支持部件組成。這并非新的理念,許多公司幾年前就開始在PCB上復用處理器子系統。不過,在單個集成電路上創建專用標準產品(ASSP)的應用相對而言還比較新穎,這種ASSP可以在多種產品中復用,以減少相關成本和風險。這個趨勢將持續下去,甚至連分析家都預測ASSP的使用會不斷增多。
嵌入式平臺給已經非常復雜的IC設計方法學帶來新的約束條件。多家公司正在設法有效地改進嵌入式平臺設計流程,并發展了許多方法,包括利用C模型實現不同目的、抽象化器件通信、通過仿真進行工作速度測試及采用預驗證的IP。
業內各種組織正在試圖通過標準與合作來促進各種方法學的統一。一種涉及使用C、C++和SystemC模型的方法學正在逐步形成,在該方法學下,公共的系統模塊可以被軟件、硬件和驗證領域所使用。隨著事務級建模和其它新技術的采用,這種方法學會不斷擴展。
嵌入式處理器方法學
許多方法學問題與以下這個事實有關,即硬件和互連軟件必須在芯片制造之前就能正常工作,所以只有很少的機會可以糾正它們的錯誤,這是與基于印刷電路板(PCB)的嵌入式平臺的主要區別。因此,有效的驗證和調試變得更加重要。
這種本質的區別導致許多要求,其中重要的一項是早期軟件測試。在傳統方法學中,軟件和硬件是分開設計的,直到設計過程的后期才開始在新硬件上第一次運行軟件,這個過程通常會用到模擬器。雖然這種方法學仍適于應用軟件,但直接與硬件打交道的底層代碼必須盡早通過驗證。在這一層發生的軟件錯誤將迫使設計師改變硬件,從而導致代價高昂的制造反復。
許多系統公司一直在尋求有效集成的軟硬件開發流程。這樣的機制可以減少后期的設計錯誤,同時提高整體效率。
最近,業界開發出一種使用C、C++和SystemC模型驗證高級系統規范的方法學。這些模型是抽象的,主要用于事務處理和執行算法轉換。它們還允許為特定的設計流程階段添加詳細的循環級功能。當系統模型完成后,其組件被提供給各個不同的專業開發團隊。
圖1: C、C++和最新的SystemC模型可用于驗證高級系統規范。
軟件工程師能夠使用更抽象的處理器指令集仿真器(ISS)模型、總線事務和寄存器操作等手段來檢查代碼。用C派生語言編寫的模型可以直接鏈接到軟件,從而使測試過程流線化。
這些模型還可以提供給硬件工程師充當操作規范,用于與他們的RTL代碼作比較。這要求更詳細的抽象。該設計流程的倡導者正在研究關鍵節點和其它比較點可以在這方面發揮哪些幫助作用。
驗證小組采用這些模型復制平臺環境以實現快速測試。平臺的大部分可以使用基于C語言的模型來描述,允許基礎軟件與定制的HDL代碼互連。使用SystemC SCV標準或自動驗證語言創建的自動測試程序可以復制外部輸入。聲明允許驗證規范的細節。
這種方法學可以實現并行的軟硬件開發和驗證環境,甚至能夠在系統組件的開發過程中對它們進行集成測試。
這種方法學的主要問題在于各種模型要求不同的抽象級。由于同一個基礎模型不能方便地既用于硬件又用于軟件,因此必須找到一種方法學彌補這種不足。使用事務作為內部模塊通信的一種直觀抽象是解決方案的一部分。通過允許軟件模型、硬件模型(通過總線功能模型)和驗證測試在事務級進行通信,可以激活不同模型之間的共通點。這樣,事務處理就成為應用這種方法學的基礎。
鏈接單元
在檢查這種方法學時必須記住軟件、硬件和驗證是有很大區別的,你必須認真考慮這些區別。
硬件設計與時間和空間相關,其中事件的因果關系是關鍵。硬件調試需要考慮這些因素,同時為理解各種不同的抽象設計提供基礎。硬件驗證一般使用仿真器進行,隨后處理結果。硬件調試也可能包括設計實現和物理分析。
軟件調試的交互性更強,其中一部分調試在代碼創建階段就開始執行了。軟件經編譯后在沒有仿真器的條件下運行。除了多線程且有順序的事件外,軟件調試并不注重基于時序的事件。更復雜的數據結構,如處理器堆棧,還需要特殊檢查。
軟硬件聯合調試必須清楚提供兩者所需的功能,如波形和堆棧跟蹤。聯合調試必須簡化后處理交互式使用模型。該模型必須被鏈接在軟硬件之間,以便整個調試系統協同工作,將全部組件視為一個工作單元。
對于許多硬件設計師和驅動程序開發人員來說,軟件和硬件之間的界限是非常模糊的。因此要求調試器或開發系統能夠實現軟硬件之間完整、透明的交互,通過一個易于使用的接口為軟硬件提供恰當的工作模式,并提供有效的分析功能。
硬件和軟件
現代嵌入式平臺調試器的關鍵要求是:硬件調試功能,包括事件和結構評估;交互軟件開發環境;涵蓋各種抽象級的HDL、C和HVL語言;抽象事務的可視化以及集成的調試使用模型。
有兩種可行的方法學能滿足這些要求。首先,硬件功能可以嵌入到軟件開發環境中,反之亦然。雖然這看起來是個合理的選擇,但由于使用模型的本質區別,調試器可能在某些領域不完善。
另一種方法是,通過適當增強事務和語言支持,高效的硬件和軟件調試器可以用同步機制智能地集成在一起。對于基于SystemC的方法學,這是推薦的調試/開發解決方案。
軟件和硬件調試器之間的松散耦合可以達到一種合理的交互程度,即雙方都具有時序同步、存儲器和寄存器查看功能,同時仍能保留各自已有的靈活性和使用模型。
此外,硬件和軟件調試器都支持SystemC,因為硬件模塊和驗證都多次使用SystemC代碼。
支持事務處理是該環境的關鍵性能,在波形顯示和更先進的電子數據表顯示中都提供了這種支持。借助此功能可以監視軟件執行,同時檢查總線事務是否能完成所期望的功能,從而確保兩個域之間的一致性。
盡管有其專用性,但這種環境能夠滿足嵌入式平臺設計工程師的需要,同時保持使用模型的簡單性。
作者:Yu-Chin Hsu
研發副總裁
Dave Kelf
行銷副總裁
Novas軟件公司