《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 系統(tǒng)建模成為主流

系統(tǒng)建模成為主流

Ron Wilson,Altera公司
2012-08-09

    “系統(tǒng)建模”這一詞語揭示了復(fù)雜芯片系統(tǒng)(SoC)設(shè)計(jì)工程以及規(guī)模龐大的航空航天計(jì)劃。而實(shí)際上,系統(tǒng)建模技術(shù)的根本在于IC設(shè)計(jì)和航空航天工業(yè)。但是今天,出于各種原因,很多領(lǐng)域的系統(tǒng)設(shè)計(jì)人員在開發(fā)完整的原型系統(tǒng)之前必須對(duì)其電子系統(tǒng)設(shè)計(jì)進(jìn)行建模。

 
    原因是多方面的,這些原因?qū)е鲁霈F(xiàn)了各種各樣的系統(tǒng)模型,如圖1所示。有時(shí)候,僅僅是因?yàn)檐浖F(tuán)隊(duì)希望盡早開始設(shè)計(jì)工作。原理上,規(guī)劃人員可以把軟件分成與硬件無關(guān)規(guī)模較大的部分,以及與硬件功能相關(guān)而規(guī)模要小很多的部分。(Android等平臺(tái)強(qiáng)化了這種不同,應(yīng)用程序完全與硬件無關(guān))。然后,設(shè)計(jì)人員能夠在服務(wù)器自帶工具上開發(fā)硬件相關(guān)代碼,使用服務(wù)器功能替代目標(biāo)系統(tǒng)的應(yīng)用程序接口(API)。這種API替代本身就是一種系統(tǒng)建模。
 
圖1.系統(tǒng)模型中的抽象層
 
    但是,隨著系統(tǒng)設(shè)計(jì)的集成度越來越高,他們需要把詳細(xì)的硬件行為放到應(yīng)用層中,包括延時(shí)和能耗等。這種發(fā)展趨勢(shì)導(dǎo)致一些經(jīng)驗(yàn)豐富的設(shè)計(jì)人員開始懷疑硬件無關(guān)軟件這種觀念。Mike Dini是FPGA設(shè)計(jì)公司Dini集團(tuán)的創(chuàng)始人,在今年的設(shè)計(jì)自動(dòng)化大會(huì)(DAC)原型開發(fā)討論組中闡述了“軟件設(shè)計(jì)人員如果沒有實(shí)際硬件就無法取得真正進(jìn)步”這一令人注目的觀點(diǎn)。相似的,Tensilica的資深產(chǎn)品專家Andrea Kroll在系統(tǒng)建模DAC討論組中發(fā)表了自己的看法,“在華為,我們嘗試了軟件驅(qū)動(dòng)的系統(tǒng)開發(fā)。但是,軟件團(tuán)隊(duì)在沒有硬件時(shí),并不知道怎樣開始工作。”這些懷疑觀點(diǎn)導(dǎo)致設(shè)計(jì)團(tuán)隊(duì)在設(shè)計(jì)早期便構(gòu)建詳細(xì)的硬件模型,以便軟件團(tuán)隊(duì)能夠開始工作。
 
系統(tǒng)研究
 
    由于系統(tǒng)越來越復(fù)雜,規(guī)劃人員很難預(yù)測(cè)最終產(chǎn)品會(huì)怎樣工作。傳統(tǒng)的表格模型甚至最好的SoC數(shù)據(jù)表都不足以回答關(guān)鍵問題:數(shù)據(jù)包吞吐量實(shí)際是多少?應(yīng)用程序性能會(huì)滿足用戶的預(yù)期嗎?能接受電池壽命或者散熱嗎?有時(shí)候,回答這類問題的唯一方法是開發(fā)非常詳細(xì)的系統(tǒng)模型,利用模型來研究用戶案例和體系結(jié)構(gòu)替代方案。
 
    系統(tǒng)建模的第三種應(yīng)用是系統(tǒng)驗(yàn)證,這種應(yīng)用可能看起來不太引人注意。軟件的優(yōu)勢(shì)是明顯的。Xilinx研究實(shí)驗(yàn)室的Austin Lesea在DAC系統(tǒng)建模組中發(fā)表評(píng)論說:“您可以在C語言中進(jìn)行大量的軟件驗(yàn)證。當(dāng)您需要周期精確標(biāo)準(zhǔn)時(shí),問題就來了。”軟件驗(yàn)證需要精確的可執(zhí)行硬件模型。
 
    但是,需求已經(jīng)超出了軟件調(diào)試。Cadence資深設(shè)計(jì)師Stuart Swan在討論組對(duì)此發(fā)表不同看法:“我們需要改變我們的觀念。我們應(yīng)該把更多的系統(tǒng)驗(yàn)證提高到更高的抽象級(jí),重新使用更抽象的模型來生成底層模型。”這一方法要求在開發(fā)原型之前,在各種抽象級(jí)上驗(yàn)證系統(tǒng)模型功能,很多情況下,甚至是某些IC涉及到的寄存器傳送級(jí)(RTL)。
 
    有些專家說,早期驗(yàn)證不僅僅是盡早找到設(shè)計(jì)錯(cuò)誤,還有很重要的結(jié)果。測(cè)試臺(tái)是會(huì)話發(fā)起器和校驗(yàn)器,進(jìn)行隨機(jī)測(cè)試,可以重用驗(yàn)證事物級(jí)模型開發(fā)的基本工具,將其應(yīng)用于更詳細(xì)的模型上,甚至是物理原型。通過這種方式,系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)不僅避免了在設(shè)計(jì)期間多次重新開發(fā)相同的測(cè)試臺(tái),而且還可以在設(shè)計(jì)過程中盡早開始調(diào)試測(cè)試臺(tái)。此時(shí),團(tuán)隊(duì)進(jìn)行詳細(xì)的系統(tǒng)驗(yàn)證,測(cè)試臺(tái)應(yīng)該非常穩(wěn)定。
但是,我并沒有進(jìn)行SoC開發(fā)
 
    您會(huì)說,所有這一切聽起來很合理。但是,如果我們的設(shè)計(jì)團(tuán)隊(duì)購買了專用標(biāo)準(zhǔn)產(chǎn)品(ASSP),而不是設(shè)計(jì)自己的SoC,情況會(huì)怎樣?我們要使用模型,應(yīng)該怎么辦?這里有幾種回答。
 
    對(duì)于系統(tǒng)設(shè)計(jì)團(tuán)隊(duì),最直觀的方法是編寫非常抽象的事物級(jí)模型,他們只需要在數(shù)據(jù)表級(jí)理解ASSP及其周圍的芯片。在這一等級(jí)足以理解系統(tǒng)的工作,并與系統(tǒng)進(jìn)行通信,研究使用案例。對(duì)于以后更復(fù)雜的建模工作,這可以用作工作臺(tái)。
 
    理想情況下,如果可以使用ASSP,很明顯的下一步是硬件原型設(shè)計(jì),采用芯片供應(yīng)商已經(jīng)設(shè)計(jì)好并調(diào)試過的開發(fā)套件來進(jìn)行開發(fā)。如果沒有開發(fā)套件,甚至連硅片也沒有,或者系統(tǒng)設(shè)計(jì)還沒準(zhǔn)備好支持部分原型,那么,還有別的選擇。
 
    正如ARM設(shè)計(jì)技術(shù)副總裁John Goodenough在建模討論組中所建議的,一種選擇是,在您的前一代SoC上使用開發(fā)套件,仔細(xì)的實(shí)現(xiàn)各種不同應(yīng)用。取決于這些不同應(yīng)用的差異程度,例如,從功能和用戶案例研究到性能建模,甚至是某些驅(qū)動(dòng)程序的開發(fā)等,可以一直使用這些原型。這有助于幾代ASSP共享存儲(chǔ)器和總線體系結(jié)構(gòu),只需要進(jìn)行很小的改動(dòng),就能夠加速設(shè)計(jì)實(shí)現(xiàn)。
 
虛擬原型
 
    那么,如果既沒有您計(jì)劃使用的ASSP,也沒有非常相近的器件,該怎么辦呢?當(dāng)您已經(jīng)快完成了硬件原型開發(fā),但是需要提高對(duì)系統(tǒng)內(nèi)部的可視化程度,您應(yīng)該怎么辦呢?芯片供應(yīng)商通過系統(tǒng)級(jí)虛擬原型來回答這些問題,如圖2所示。
圖2.虛擬原型工具將不同級(jí)別的模型連接至統(tǒng)一的調(diào)試工作臺(tái)中
 
    理想情況下,系統(tǒng)虛擬原型會(huì)是一組模型,在幾種抽象級(jí)上精確的表示系統(tǒng)(請(qǐng)參考工具條:每一目標(biāo)模型)。原型會(huì)提供已經(jīng)開發(fā)好的調(diào)試和軟件執(zhí)行接口,提供很好的方法將組件加入到系統(tǒng)模型中。
 
    這一想法并非不切實(shí)際。Frank Schirrmeister是Cadence系統(tǒng)開發(fā)產(chǎn)品市場(chǎng)資深總監(jiān),他認(rèn)為,越來越多的IC供應(yīng)商構(gòu)建了復(fù)雜SoC的虛擬模型,幫助客戶圍繞芯片模型開發(fā)全系統(tǒng)虛擬模型。在某些情況下,這些模型實(shí)際上成為IC數(shù)據(jù)表。Schirrmeister評(píng)論說,我們將模型提供給客戶,這些模型通常包括事物級(jí)和加密RTL視圖,硅片供應(yīng)商的現(xiàn)場(chǎng)應(yīng)用工程師還為客戶提供幫助。芯片模型成為系統(tǒng)開發(fā)人員完整系統(tǒng)模型的一部分,也是硅片和系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)之間的通信手段。實(shí)際上,當(dāng)FPGA供應(yīng)商Altera和Xilinx最近推出集成了CPU群的FPGA后,他們出于這一目的,都為新芯片提供了虛擬模型。
 
設(shè)計(jì)人員實(shí)際使用什么
 
     在DAC系統(tǒng)模型建模討論組中,EDN的EDA編輯、主持人Brian Bailey詢問小組成員,他們的系統(tǒng)建模實(shí)際是什么情況。答案反映了不同設(shè)計(jì)團(tuán)隊(duì)的各種需求,以及他們的各種觀點(diǎn)。
 
     運(yùn)動(dòng)研究(RIM)公司的資深建模專家Frederic Risacher描述了大部分開發(fā)人員通常會(huì)面臨的環(huán)境。我們不設(shè)計(jì)IC。Risacher解釋說:“我們購買硅片,然后通過軟件來突出我們的產(chǎn)品優(yōu)勢(shì)。”
 
     Risacher說,RIM不設(shè)計(jì)自己的硅片這一事實(shí)使得設(shè)計(jì)團(tuán)隊(duì)的建模策略比較復(fù)雜,但是基本上不會(huì)改變。工作不是從硬件建模開始,而是從軟件開始。Risacher說:“至少在我們得到硅片之前的九個(gè)月,甚至是在得到虛擬原型之前,我們就開始開發(fā)過程和線程模型。然后,盡快開發(fā)功能精確、周期近似的硬件模型。”
 
      Risacher繼續(xù)解釋了RIM在這些模型上依靠其IC供應(yīng)商。但是在這種關(guān)系上存在一個(gè)基本問題。芯片設(shè)計(jì)人員把他們的可綜合RTL代碼作為其IC的定義模型。但是,不能直接從RTL獲得RIM需要的更抽象的模型。Risacher解釋說:“因此,所有的都來自規(guī)范,而不是RTL。”
 
    RIM出于幾種不同的目的來使用這些模型。在設(shè)計(jì)早期階段,重點(diǎn)是理解軟件對(duì)硬件的要求。Risacher提醒說:“硅片和用戶需求之間的不同要求對(duì)硬件進(jìn)行改動(dòng)。您會(huì)嘗試預(yù)測(cè)這些問題。”當(dāng)系統(tǒng)設(shè)計(jì)整合到一起時(shí),RIM團(tuán)隊(duì)轉(zhuǎn)到更詳細(xì)的模型,用于系統(tǒng)調(diào)整——例如,設(shè)置緩沖深度,還用于研究新想法。結(jié)果是功能強(qiáng)大的工具組,但是,存在管理難題。Risacher說:“我們?cè)谌N不同的領(lǐng)域中有四種不同的模型。這些模型的每一個(gè)都可以分別進(jìn)行提取、驗(yàn)證和維持。
 
     Qualcomm的首席工程師Richard Higgins從硅片供應(yīng)商的角度講述了一個(gè)相似的案例。Higgins說;“我們使用系統(tǒng)模型來預(yù)測(cè)硬件的行為,盡早開始軟件開發(fā)。”問題是,要實(shí)現(xiàn)這兩個(gè)目標(biāo)需要很多不同抽象級(jí)。Higgins解釋說:“我們使用完整的系列模型,包括,結(jié)構(gòu)、功能、行為和接口級(jí)抽象。此外,我們會(huì)有一些可執(zhí)行SysML,還涉及到一些可綜合SystemC。”
 
     和RIM相似,Qualcomm面臨保持模型連續(xù)性這一難題,與硅片團(tuán)隊(duì)在RTL上有相同的看法。Higgins建議說,這方面最重要的最佳實(shí)踐是,為所有不同的模型維持一個(gè)公共驗(yàn)證途徑。但這很難。他說:“目前,還沒有真正的體系結(jié)構(gòu)和軟件模型公共驗(yàn)證途徑。”
 
    Tensilica的Kroll說,甚至IP開發(fā)人員也面臨相似的問題。她說:“在開發(fā)IP子系統(tǒng)時(shí),對(duì)于多核設(shè)計(jì),我們?cè)谠缙谲浖_發(fā)、互聯(lián)分析和性能驗(yàn)證中使用系統(tǒng)模型。”這一工作需要從指令集仿真器到數(shù)據(jù)流發(fā)生器的所有一切,以便采用注釋時(shí)序?qū)τ布K進(jìn)行建模。Kroll建議說:“您應(yīng)該知道使用模型的目的,確定各種抽象級(jí)的組合,以及您所需要的精度。”

總結(jié)
 
    幾個(gè)不同設(shè)計(jì)團(tuán)隊(duì)的經(jīng)驗(yàn)表明,即使是使用商用ASSP的系統(tǒng)設(shè)計(jì)團(tuán)隊(duì),系統(tǒng)級(jí)建模都有很大的優(yōu)勢(shì)。使用模型,軟件開發(fā)團(tuán)隊(duì)在能夠使用硬件原型之前,盡早開始工作。這樣,系統(tǒng)團(tuán)隊(duì)盡早查看系統(tǒng)行為、性能,以及能耗等,從而降低風(fēng)險(xiǎn)。使用系統(tǒng)模型,初步規(guī)劃怎樣構(gòu)建系統(tǒng)測(cè)試臺(tái),可以盡早開始系統(tǒng)驗(yàn)證。
 
    “但玫瑰都有刺”。一些不知名的系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)很難甚至不可能從ASSP供應(yīng)商那里得到模型和支持。這些團(tuán)隊(duì)可能不得不從數(shù)據(jù)表描述中獲得他們自己的IC模型。系統(tǒng)模型需要進(jìn)行驗(yàn)證,正如系統(tǒng)本身自己那樣。所有不同的系統(tǒng)模型應(yīng)保持一致性,這非常重要。但這是很大的挑戰(zhàn),因?yàn)?,不同的模型一般由不同的工程師手?dòng)得到,有時(shí)候還有不同的來源。不同的模型還存在于不同的工具環(huán)境中,一般不具有互操作性,可以由不同的團(tuán)隊(duì)使用??紤]到這些問題,建模工作不應(yīng)受限于資源,本身也不應(yīng)成為完整的設(shè)計(jì)工程,這一點(diǎn)非常重要。
 
    既能夠發(fā)揮優(yōu)點(diǎn),又解決了難點(diǎn)問題,全面的系統(tǒng)建模計(jì)劃并不是每一設(shè)計(jì)的最佳解決方案。但是,由于系統(tǒng)越來越復(fù)雜,更多的設(shè)計(jì)都會(huì)需要模型。盡早熟悉該技術(shù)是很明智的,而不應(yīng)該等到您確定“我們應(yīng)該對(duì)此進(jìn)行建模”時(shí)才想起這一技術(shù)。
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。