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