不可不知的幾種真實(shí)設(shè)計(jì)環(huán)境中的系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
對(duì)基于SoC系統(tǒng)設(shè)計(jì)正確方法的爭(zhēng)論非常激烈。是傳統(tǒng)的寄存器傳送級(jí)(RTL)流程?還是C語(yǔ)言行為模型的高級(jí)綜合?減少了代碼生成的知識(shí)產(chǎn)權(quán)(IP)重用方法又怎樣呢?
對(duì)于設(shè)計(jì)團(tuán)隊(duì)?wèi)?yīng)該怎樣從需求分析到制造實(shí)現(xiàn),每個(gè)專(zhuān)家都有自己的觀點(diǎn)。每一觀點(diǎn)都基于自己的偏好,過(guò)去的經(jīng)驗(yàn),或者——EDA供應(yīng)商本身會(huì)考慮產(chǎn)品供貨情況。但是在很多真實(shí)環(huán)境中,所有這些觀點(diǎn)可能都是不相干的。
原因很簡(jiǎn)單:大部分系統(tǒng)設(shè)計(jì)——據(jù)網(wǎng)站embedded.com最近的一項(xiàng)研究,55%的設(shè)計(jì)并不是新設(shè)計(jì)。它們實(shí)際上是對(duì)某類(lèi)現(xiàn)有設(shè)計(jì)的修改。這一事實(shí)意味著,實(shí)際設(shè)計(jì)過(guò)程不僅僅取決于某些方法專(zhuān)家的建議,而且還要考慮需求的變化特性,以及設(shè)計(jì)團(tuán)隊(duì)能夠得到的數(shù)據(jù)。結(jié)果可能是從形式驅(qū)動(dòng)的修訂過(guò)程,直至徹底的修改,甚至還有不可預(yù)測(cè)的改動(dòng)等。通常是,結(jié)果實(shí)際對(duì)整個(gè)系統(tǒng)重新設(shè)計(jì):不是因?yàn)楦膭?dòng)的范圍,而是因?yàn)闆](méi)有重用規(guī)劃,也沒(méi)有能夠管理改動(dòng)的方法。
在本文中,我們將與方法專(zhuān)家和實(shí)際設(shè)計(jì)人員進(jìn)行討論,當(dāng)系統(tǒng)需求變化時(shí),到底會(huì)怎樣,有沒(méi)有一種一致的方法。然后,我們將在幾種真實(shí)設(shè)計(jì)環(huán)境中應(yīng)用這種工作方法,通過(guò)它來(lái)建議應(yīng)采用怎樣的設(shè)計(jì)過(guò)程,怎樣使其更好的工作。
一些分類(lèi)
至少在三種不同的環(huán)境下會(huì)出現(xiàn)衍生設(shè)計(jì)(圖1 )。最明顯的是,現(xiàn)有設(shè)計(jì)的一系列需求變化定義了新項(xiàng)目后:例如,新功能、新外設(shè),或者新的性能指標(biāo)等。
圖1.衍生設(shè)計(jì)分類(lèi)
而至少還有其他兩類(lèi)。一類(lèi)是使用平臺(tái)設(shè)計(jì),例如谷歌的Android平臺(tái)。Cadence的系統(tǒng)開(kāi)發(fā)包產(chǎn)品市場(chǎng)集團(tuán)總監(jiān)Frank Schirrmeister特別指出了德州儀器的開(kāi)放多媒體應(yīng)用平臺(tái)(OMAP),這是一個(gè)很好的例子。他觀察到,OMAP平臺(tái)定義的擴(kuò)展平臺(tái)幾乎含有應(yīng)用領(lǐng)域中能夠想到的所有系統(tǒng)。設(shè)計(jì)團(tuán)隊(duì)通過(guò)把未使用的模塊拿到平臺(tái)之外來(lái)產(chǎn)生某種例化,在某些情況下,重新優(yōu)化得到的設(shè)計(jì)。
第三類(lèi)是相關(guān)的:使用參考設(shè)計(jì)。這一過(guò)程實(shí)際上是衍生設(shè)計(jì)的一個(gè)例子,但卻是重要的方法,它不同于自己修改現(xiàn)有設(shè)計(jì),也不同于應(yīng)用一個(gè)平臺(tái)。
對(duì)于這三種情形,只有第一種可以被分類(lèi)為衍生設(shè)計(jì)。基于平臺(tái)的設(shè)計(jì)和基于參考的設(shè)計(jì)一般被認(rèn)為是新設(shè)計(jì)。但所有這三種都有共同的特性。它們從一個(gè)已經(jīng)完成的設(shè)計(jì)開(kāi)始,然后,針對(duì)現(xiàn)有規(guī)范來(lái)對(duì)比新設(shè)計(jì)需求。它們找到與現(xiàn)有設(shè)計(jì)的不同,然后進(jìn)行實(shí)施。
第一步:有哪些變化?
這些設(shè)計(jì)過(guò)程都從一些新需求開(kāi)始。每一過(guò)程的第一步是找到新需求和現(xiàn)有設(shè)計(jì)之間的不同點(diǎn)。理論上,這是一個(gè)嚴(yán)格的過(guò)程。我們可以通過(guò)對(duì)比最初的需求文檔和修改后的需求文檔來(lái)找到這些不同。但是在很多情況下,設(shè)計(jì)團(tuán)隊(duì)無(wú)法使用現(xiàn)有設(shè)計(jì)最初的、當(dāng)前的、正確的需求文檔。我們將在本文的后面討論這些情形。
我們理論過(guò)程的下一步是將每一需求變化分成行為、結(jié)構(gòu)和參數(shù)三類(lèi)。行為變化——系統(tǒng)功能的變化,這是最常見(jiàn)的,據(jù)embedded.com研究,它占據(jù)了衍生設(shè)計(jì)的一半以上。有趣的是,目前自動(dòng)化設(shè)計(jì)工具為它們提供的支持很少,只是提供一些表格。
作為對(duì)比,結(jié)構(gòu)變化指出了系統(tǒng)硬件或者軟件的某些改變:例如,操作系統(tǒng)的變化,增加或者去除了硬件模塊,或者改變了模塊之間的互聯(lián)等。在某些應(yīng)用中,例如通信基礎(chǔ)設(shè)施,系統(tǒng)I/O會(huì)經(jīng)常變化。Altera設(shè)計(jì)工作專(zhuān)家Kevin Weldon評(píng)論說(shuō):“我們一直和客戶一起工作,實(shí)現(xiàn)他們的目標(biāo)工作頻率。但是現(xiàn)在,我們看到更多的變化出現(xiàn)在I/O中。客戶希望確定不會(huì)出現(xiàn)I/O阻塞。”
參數(shù)變化以可測(cè)量的指標(biāo)標(biāo)明變化量:例如,響應(yīng)時(shí)間、帶寬、供電電流,以及材料成本等。通過(guò)某些硬件和軟件模塊的需求文檔直至其含義,很容易找到這些變化,但是很難跟蹤。
找到相關(guān)性
在理想的環(huán)境中,從幾種相容的觀點(diǎn)看,存在一個(gè)最早的設(shè)計(jì)——這是我們從中獲得新系統(tǒng)的設(shè)計(jì)。我們不僅僅會(huì)有形式需求文檔,而且還有行為模型——可能同時(shí)以更抽象的C代碼以及會(huì)話級(jí)版本的形式提供。我們還會(huì)有硬件和軟件的模塊級(jí)體系結(jié)構(gòu)模型。對(duì)于實(shí)際實(shí)現(xiàn),會(huì)有RTL和軟件代碼。
在這種環(huán)境中,下一步是觀察。我們通過(guò)修改行為模型來(lái)滿足行為需求的變化。結(jié)構(gòu)需求的變化會(huì)觸發(fā)對(duì)IP或者互聯(lián),甚至是軟件功能的調(diào)整。參數(shù)變化會(huì)導(dǎo)致實(shí)施層面代碼的修訂。
在每種情況下,我們都會(huì)有可追溯和設(shè)計(jì)無(wú)關(guān)文件,以確定我們進(jìn)行的調(diào)整會(huì)怎樣影響設(shè)計(jì)的其他部分(圖2 ),因此,例如,如果我們修改數(shù)據(jù)結(jié)構(gòu)的定義或者設(shè)計(jì)中某一部分信號(hào)的帶寬,那么,我們就會(huì)知道,這些修改會(huì)影響設(shè)計(jì)中的哪些區(qū)域。工具會(huì)幫助我們保存從需求到實(shí)現(xiàn)的所有文檔。
圖2.可追溯性簡(jiǎn)化了需求向工作聲明的轉(zhuǎn)換
每次調(diào)整后,我們會(huì)在適當(dāng)?shù)某橄蠹?jí)重新進(jìn)行仿真,以驗(yàn)證修改后的設(shè)計(jì)現(xiàn)在能否滿足新需求。然后,把這種修改傳遞到后面的底層抽象層,重新優(yōu)化,直到我們的新設(shè)計(jì)通過(guò)了驗(yàn)證。
Schirrmeister指出,這種理想化的過(guò)程非常依賴于兩組其他的數(shù)據(jù),但不能保證可以使用這些數(shù)據(jù)。首先是使用場(chǎng)景。在正確的使用場(chǎng)景中,我們可以限制對(duì)修改后的設(shè)計(jì)進(jìn)行驗(yàn)證,特別是對(duì)用戶比較重要的模式和輸入。如果沒(méi)有使用模型,我們需要確定新設(shè)計(jì)在所有可能的實(shí)際環(huán)境下都滿足現(xiàn)有以及修改后的需求。
其次是足夠的測(cè)試臺(tái),針對(duì)整個(gè)系統(tǒng)和關(guān)鍵子系統(tǒng)。在實(shí)際中,測(cè)試臺(tái)體現(xiàn)了人類(lèi)語(yǔ)言文檔無(wú)法表示的需求。很多設(shè)計(jì)團(tuán)隊(duì)認(rèn)識(shí)到這方面的不足,重新建立系統(tǒng)測(cè)試臺(tái),這一項(xiàng)目規(guī)模與系統(tǒng)設(shè)計(jì)本身一樣大——如果不能提供第三方SoC等關(guān)鍵元器件的數(shù)據(jù),其規(guī)模會(huì)更大。
在真實(shí)環(huán)境中
對(duì)于一些設(shè)計(jì)人員組織而言,我們的理想化實(shí)例不一定具有可行性。汽車(chē)、交通、民用航空等領(lǐng)域的設(shè)計(jì)團(tuán)隊(duì)需要面對(duì)ISO 26262或者DO 178B等標(biāo)準(zhǔn),要求設(shè)計(jì)和測(cè)試臺(tái)中的每一單元都能夠追溯到需求文檔的控制單元。這些設(shè)計(jì)團(tuán)隊(duì)能夠找到設(shè)計(jì)中的哪一部分需要進(jìn)行測(cè)試,甚至進(jìn)行修改以符合需求的變化。他們可以指出哪些模塊需要在測(cè)試臺(tái)中進(jìn)行修改。這一開(kāi)始就需要很大的投入。[!--empirenews.page--]
但是在大部分實(shí)際設(shè)計(jì)中,很難實(shí)現(xiàn)形式需求的可追溯性。這種項(xiàng)目的可追溯性只存在于設(shè)計(jì)團(tuán)隊(duì)成員的大腦中。即使最初的設(shè)計(jì)人員還能夠說(shuō)出,是什么原因讓他以某種方式來(lái)實(shí)現(xiàn)某一模塊,但是,在有人向他提問(wèn)之前,他可能已經(jīng)離開(kāi)公司了,或者不在這一行業(yè)中了。我們不得不質(zhì)疑我們的理想場(chǎng)景怎樣應(yīng)用在這些真實(shí)環(huán)境中。
在一個(gè)平臺(tái)上
考慮設(shè)計(jì)團(tuán)隊(duì)使用平臺(tái)設(shè)計(jì)的情況。平臺(tái)一般是由SoC供應(yīng)商提供的,是系統(tǒng)設(shè)計(jì)的擴(kuò)展,而Android是個(gè)明顯的例外。您要針對(duì)這一體系結(jié)構(gòu)進(jìn)行的嘗試都含在規(guī)范中。概念非常簡(jiǎn)單。建立您自己的需求,找到您不需要的部分平臺(tái),不用它們(圖3 )。然后,根據(jù)需要來(lái)優(yōu)化其他部分,以滿足參數(shù)約束。
圖3.去掉部分平臺(tái),使平臺(tái)設(shè)計(jì)滿足特殊需求。
但是這一概念也面臨一些難題。首先,不一定有需求文檔。因此,團(tuán)隊(duì)不得不猜測(cè)平臺(tái)建立者的目的是什么,是否符合新需求。確定了不同點(diǎn)后,這就比較簡(jiǎn)單了。例如,Android能夠適用于攝像機(jī)和麥克風(fēng)。如果您并不需要這些,就可以把這些功能去掉。
功能需求會(huì)更具挑戰(zhàn)性。您可能需要一臺(tái)攝像機(jī)來(lái)采集MPEG4視頻。但是,您還需要四個(gè)ARM內(nèi)核和一個(gè)DDR3 SDRAM接口嗎?用戶只是進(jìn)行網(wǎng)頁(yè)瀏覽,您還需要采集和壓縮視頻嗎?使用模型和功能需求的缺乏會(huì)迫使您進(jìn)行大量的系統(tǒng)級(jí)仿真,以發(fā)現(xiàn)哪些模塊實(shí)際參與了您需要支持的工作。
Schirrmeister觀察到,“您要明確新需求到底意味著什么。我曾處理過(guò)一個(gè)項(xiàng)目,其視頻處理器需要采用信箱格式。這聽(tīng)起來(lái)只是簡(jiǎn)單的增加輸出格式。我們一開(kāi)始沒(méi)有認(rèn)識(shí)到的是系統(tǒng)的工作方式,信箱格式使我們只有很少的時(shí)間對(duì)每一幀進(jìn)行解碼,因此,這對(duì)設(shè)計(jì)其他部分的性能要求很高。實(shí)際情況是理解需求變化的含義。”
參數(shù)需求的挑戰(zhàn)性更大。您不得不在RTL上采用芯片模型運(yùn)行系統(tǒng)仿真,確定平臺(tái)能否滿足所需的規(guī)范要求。而且,幾個(gè)層面的仿真模型、精確的使用模型以及大量的測(cè)試臺(tái)都是實(shí)際設(shè)計(jì)平臺(tái)的關(guān)鍵組成。
修改上一次設(shè)計(jì)
從平臺(tái)開(kāi)始進(jìn)行工作,設(shè)計(jì)團(tuán)隊(duì)只需要把模塊從平臺(tái)中取出并進(jìn)行優(yōu)化,就可以確定能夠滿足需求。但如果是從以前的設(shè)計(jì)開(kāi)始工作,或者難度更大的是,采用第三方參考設(shè)計(jì)開(kāi)始工作,情況又會(huì)怎樣呢?原理不變。但是在真實(shí)環(huán)境中,設(shè)計(jì)團(tuán)隊(duì)在現(xiàn)有設(shè)計(jì)上一般不會(huì)有跟蹤需求,也可能沒(méi)有良好的系統(tǒng)或者模塊級(jí)仿真模型,或者完全適用的測(cè)試臺(tái)。方法取決于技巧。
挑戰(zhàn)是從找到有哪些變化開(kāi)始。Altera設(shè)計(jì)專(zhuān)家Stacy Martin認(rèn)為:“這一過(guò)程一般沒(méi)有什么順序而言。團(tuán)隊(duì)查看規(guī)范,找到特性或者接口的不足,然后,解決這些問(wèn)題。”
現(xiàn)在要復(fù)雜一些。如果這些變化就含在現(xiàn)有實(shí)現(xiàn)的功能范圍內(nèi),那就可以進(jìn)行優(yōu)化。也可能會(huì)超出現(xiàn)有設(shè)計(jì)的范圍。或者,沒(méi)有可信的需求文檔時(shí),設(shè)計(jì)人員應(yīng)從系統(tǒng)級(jí)模型中正確的估算出性能,再次進(jìn)行仿真以找到現(xiàn)有設(shè)計(jì)能夠?qū)崿F(xiàn)什么。實(shí)際上,團(tuán)隊(duì)?wèi)?yīng)分析現(xiàn)有設(shè)計(jì)實(shí)現(xiàn),以便重新生成該設(shè)計(jì)的需求。沒(méi)有正確的使用模型和良好的測(cè)試臺(tái),在開(kāi)始任何重新設(shè)計(jì)之前,團(tuán)隊(duì)會(huì)有很大的投入花在理解需求上。
這是很大的挑戰(zhàn)。Martin說(shuō):“設(shè)計(jì)團(tuán)隊(duì)嘗試盡可能多的重新使用設(shè)計(jì)。但是,您盡力嘗試重用后,發(fā)現(xiàn)有時(shí)候最好還是從頭開(kāi)始設(shè)計(jì)。”
在真實(shí)環(huán)境中,實(shí)際上衍生設(shè)計(jì)有不同的方法。我們這里介紹的只是一小部分,這與設(shè)計(jì)人員找到需求變化的技巧有關(guān)。最初的設(shè)計(jì)人員在可重用性上的投入越大—— 在需求、行為、結(jié)構(gòu)和實(shí)施層面上維持正確的設(shè)計(jì)版本;鎖定使用模型;建立自適應(yīng)測(cè)試臺(tái);這樣,真實(shí)環(huán)境衍生設(shè)計(jì)就越能夠接近其理想形式。
產(chǎn)品線工程
但真實(shí)環(huán)境總是在變化。目前,在軍事、航空航天以及交通系統(tǒng)等某些應(yīng)用中,需求可追溯性已經(jīng)成為合同條款。非常復(fù)雜的系統(tǒng)設(shè)計(jì)以及高成本的一次性SoC設(shè)計(jì)投入也會(huì)有這種要求。在目前的很多行業(yè)中,成本和復(fù)雜度壓力改變了系統(tǒng)設(shè)計(jì)的結(jié)構(gòu)和方法。
新機(jī)遇意味著新的芯片設(shè)計(jì)。但是,設(shè)計(jì)團(tuán)隊(duì)越來(lái)越多的傾向于不再進(jìn)行新設(shè)計(jì)。團(tuán)隊(duì)維持并繼續(xù)重新應(yīng)用系列知識(shí)產(chǎn)權(quán)內(nèi)核以及完整的測(cè)試臺(tái),偶爾嘗試新的金屬掩模,很少使用全新的模板。對(duì)于每一設(shè)計(jì)是中心硬件/軟件IP衍生的應(yīng)用,實(shí)際上都是產(chǎn)品線工程。
是否成功取決于設(shè)計(jì)重用的自動(dòng)化。IP裝配程度也取決于能夠嚴(yán)格追溯需求的方法,跟蹤到測(cè)試臺(tái)模塊、硅片IP模塊,以及軟件模塊,很容易從以前的系統(tǒng)級(jí)行為模型轉(zhuǎn)到詳細(xì)的硅片仿真和軟件調(diào)試。這也是IBM的智能物理基礎(chǔ)設(shè)施副總裁Meg Selfe的觀點(diǎn)。
Selfe 說(shuō),產(chǎn)品線工程的基礎(chǔ)設(shè)施跨過(guò)了三個(gè)領(lǐng)域——工具、過(guò)程和最佳實(shí)踐。其中,令人吃驚的是,一般并不缺少工具。Selfe報(bào)告說(shuō):“我們通常和具有很多工具的組織一起工作。難點(diǎn)是,并不是通過(guò)一致的平臺(tái)來(lái)連接工具,因此,流程中有人工步驟。人工步驟導(dǎo)致出現(xiàn)中斷。”
Selfe強(qiáng)調(diào)說(shuō),從傳統(tǒng)的SoC設(shè)計(jì)轉(zhuǎn)向產(chǎn)品線工程時(shí)——不僅要考慮下一設(shè)計(jì)需求,還要考慮企業(yè)是怎樣運(yùn)轉(zhuǎn)的。Selfe建議,“確定在您的設(shè)計(jì)過(guò)程中要實(shí)現(xiàn)什么,找到原因,進(jìn)行糾正。”
她注意到,目前,可追溯設(shè)計(jì)流程最大的不足出現(xiàn)在需求和測(cè)試臺(tái)之間。今后,在早期系統(tǒng)建模文化中,系統(tǒng)模型與其測(cè)試臺(tái)之間的差異會(huì)越來(lái)越小。目標(biāo)應(yīng)用環(huán)境中完整的系統(tǒng)模型成為某一子系統(tǒng)詳細(xì)模型的測(cè)試臺(tái)。需求變化會(huì)與設(shè)計(jì)和測(cè)試臺(tái)中所有受影響的模塊相關(guān)聯(lián)。測(cè)試覆蓋標(biāo)準(zhǔn)會(huì)直接轉(zhuǎn)換成對(duì)設(shè)計(jì)需求覆蓋范圍的精確估算。設(shè)計(jì)會(huì)在自動(dòng)關(guān)注是否滿足需求變化上加大投入,而不是重新建立設(shè)計(jì)中沒(méi)有變化的部分,也不會(huì)復(fù)制IP中已有的功能。
作者:Altera公司總編輯Ron Wilson