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