《電子技術(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)之前必須對其電子系統(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ā)展趨勢導(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ù)測最終產(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)勢是明顯的。Xilinx研究實(shí)驗(yàn)室的Austin Lesea在DAC系統(tǒng)建模組中發(fā)表評論說:“您可以在C語言中進(jìn)行大量的軟件驗(yàn)證,。當(dāng)您需要周期精確標(biāo)準(zhǔn)時(shí),,問題就來了。”軟件驗(yàn)證需要精確的可執(zhí)行硬件模型,。
 
    但是,,需求已經(jīng)超出了軟件調(diào)試。Cadence資深設(shè)計(jì)師Stuart Swan在討論組對此發(fā)表不同看法:“我們需要改變我們的觀念,。我們應(yīng)該把更多的系統(tǒng)驗(yàn)證提高到更高的抽象級(jí),,重新使用更抽象的模型來生成底層模型。”這一方法要求在開發(fā)原型之前,,在各種抽象級(jí)上驗(yàn)證系統(tǒng)模型功能,,很多情況下,,甚至是某些IC涉及到的寄存器傳送級(jí)(RTL)。
 
    有些專家說,,早期驗(yàn)證不僅僅是盡早找到設(shè)計(jì)錯(cuò)誤,,還有很重要的結(jié)果。測試臺(tái)是會(huì)話發(fā)起器和校驗(yàn)器,,進(jìn)行隨機(jī)測試,,可以重用驗(yàn)證事物級(jí)模型開發(fā)的基本工具,將其應(yīng)用于更詳細(xì)的模型上,,甚至是物理原型,。通過這種方式,系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)不僅避免了在設(shè)計(jì)期間多次重新開發(fā)相同的測試臺(tái),,而且還可以在設(shè)計(jì)過程中盡早開始調(diào)試測試臺(tái),。此時(shí),團(tuán)隊(duì)進(jìn)行詳細(xì)的系統(tǒng)驗(yàn)證,,測試臺(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)該怎么辦?這里有幾種回答,。
 
    對于系統(tǒng)設(shè)計(jì)團(tuán)隊(duì),,最直觀的方法是編寫非常抽象的事物級(jí)模型,他們只需要在數(shù)據(jù)表級(jí)理解ASSP及其周圍的芯片,。在這一等級(jí)足以理解系統(tǒng)的工作,,并與系統(tǒng)進(jìn)行通信,,研究使用案例,。對于以后更復(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ā),,但是需要提高對系統(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)(請參考工具條:每一目標(biāo)模型),。原型會(huì)提供已經(jīng)開發(fā)好的調(diào)試和軟件執(zhí)行接口,,提供很好的方法將組件加入到系統(tǒng)模型中。
 
    這一想法并非不切實(shí)際,。Frank Schirrmeister是Cadence系統(tǒng)開發(fā)產(chǎn)品市場資深總監(jiān),,他認(rèn)為,越來越多的IC供應(yīng)商構(gòu)建了復(fù)雜SoC的虛擬模型,,幫助客戶圍繞芯片模型開發(fā)全系統(tǒng)虛擬模型,。在某些情況下,這些模型實(shí)際上成為IC數(shù)據(jù)表,。Schirrmeister評論說,,我們將模型提供給客戶,這些模型通常包括事物級(jí)和加密RTL視圖,,硅片供應(yīng)商的現(xiàn)場應(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)勢,。”
 
     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)是理解軟件對硬件的要求,。Risacher提醒說:“硅片和用戶需求之間的不同要求對硬件進(jìn)行改動(dòng),。您會(huì)嘗試預(yù)測這些問題。”當(dāng)系統(tǒng)設(shè)計(jì)整合到一起時(shí),,RIM團(tuán)隊(duì)轉(zhuǎn)到更詳細(xì)的模型,,用于系統(tǒng)調(diào)整——例如,,設(shè)置緩沖深度,還用于研究新想法,。結(jié)果是功能強(qiáng)大的工具組,,但是,存在管理難題,。Risacher說:“我們在三種不同的領(lǐng)域中有四種不同的模型,。這些模型的每一個(gè)都可以分別進(jìn)行提取、驗(yàn)證和維持,。
 
     Qualcomm的首席工程師Richard Higgins從硅片供應(yīng)商的角度講述了一個(gè)相似的案例,。Higgins說;“我們使用系統(tǒng)模型來預(yù)測硬件的行為,,盡早開始軟件開發(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í),對于多核設(shè)計(jì),,我們在早期軟件開發(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)勢,。使用模型,,軟件開發(fā)團(tuán)隊(duì)在能夠使用硬件原型之前,盡早開始工作,。這樣,,系統(tǒng)團(tuán)隊(duì)盡早查看系統(tǒng)行為、性能,,以及能耗等,,從而降低風(fēng)險(xiǎn)。使用系統(tǒng)模型,,初步規(guī)劃怎樣構(gòu)建系統(tǒng)測試臺(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)椋煌哪P鸵话阌刹煌墓こ處熓謩?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)該對此進(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)和其它問題,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。