新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 幾種真實設計環(huán)境中的系統(tǒng)設計

幾種真實設計環(huán)境中的系統(tǒng)設計

作者: 時間:2017-06-13 來源:網(wǎng)絡 收藏

本文引用地址:http://2s4d.com/article/201706/358140.htm

對基于SoC正確方法的爭論非常激烈。是傳統(tǒng)的寄存器傳送級(RTL)流程?還是C語言行為模型的高級綜合?減少了代碼生成的知識產(chǎn)權(quán)(IP)重用方法又怎樣呢?

對于設計團隊應該怎樣從需求分析到制造實現(xiàn),每個專家都有自己的觀點。每一觀點都基于自己的偏好,過去的經(jīng)驗,或者——EDA供應商本身會考慮產(chǎn)品供貨情況。但是在很多真實環(huán)境中,所有這些觀點可能都是不相干的。


原因很簡單:大部分——據(jù)網(wǎng)站embedded.com最近的一項研究,55%的設計并不是新設計。它們實際上是對某類現(xiàn)有設計的修改。這一事實意味著,實際設計過程不僅僅取決于某些方法專家的建議,而且還要考慮需求的變化特性,以及設計團隊能夠得到的數(shù)據(jù)。結(jié)果可能是從形式驅(qū)動的修訂過程,直至徹底的修改,甚至還有不可預測的改動等。通常是,結(jié)果實際對整個系統(tǒng)重新設計:不是因為改動的范圍,而是因為沒有重用規(guī)劃,也沒有能夠管理改動的方法。


在本文中,我們將與方法專家和實際設計人員進行討論,當系統(tǒng)需求變化時,到底會怎樣,有沒有一種一致的方法。然后,我們將在幾種真實設計環(huán)境中應用這種工作方法,通過它來建議應采用怎樣的設計過程,怎樣使其更好的工作。


一些分類


至少在三種不同的環(huán)境下會出現(xiàn)(圖1 )。最明顯的是,現(xiàn)有設計的一系列需求變化定義了新項目后:例如,新功能、新外設,或者新的性能指標等。


圖1.分類


而至少還有其他兩類。一類是使用平臺設計,例如谷歌的Android平臺。Cadence的系統(tǒng)開發(fā)包產(chǎn)品市場集團總監(jiān)Frank Schirrmeister特別指出了德州儀器的開放多媒體應用平臺(OMAP),這是一個很好的例子。他觀察到,OMAP平臺定義的擴展平臺幾乎含有應用領(lǐng)域中能夠想到的所有系統(tǒng)。設計團隊通過把未使用的模塊拿到平臺之外來產(chǎn)生某種例化,在某些情況下,重新優(yōu)化得到的設計。


第三類是相關(guān)的:使用參考設計。這一過程實際上是的一個例子,但卻是重要的方法,它不同于自己修改現(xiàn)有設計,也不同于應用一個平臺。


對于這三種情形,只有第一種可以被分類為衍生設計?;谄脚_的設計和基于參考的設計一般被認為是新設計。但所有這三種都有共同的特性。它們從一個已經(jīng)完成的設計開始,然后,針對現(xiàn)有規(guī)范來對比新設計需求。它們找到與現(xiàn)有設計的不同,然后進行實施。

第一步:有哪些變化?


這些設計過程都從一些新需求開始。每一過程的第一步是找到新需求和現(xiàn)有設計之間的不同點。理論上,這是一個嚴格的過程。我們可以通過對比最初的需求文檔和修改后的需求文檔來找到這些不同。但是在很多情況下,設計團隊無法使用現(xiàn)有設計最初的、當前的、正確的需求文檔。我們將在本文的后面討論這些情形。


我們理論過程的下一步是將每一需求變化分成行為、結(jié)構(gòu)和參數(shù)三類。——系統(tǒng)功能的變化,這是最常見的,據(jù)embedded.com研究,它占據(jù)了衍生設計的一半以上。有趣的是,目前自動化設計工具為它們提供的支持很少,只是提供一些表格。


作為對比,指出了系統(tǒng)硬件或者軟件的某些改變:例如,操作系統(tǒng)的變化,增加或者去除了硬件模塊,或者改變了模塊之間的互聯(lián)等。在某些應用中,例如通信基礎(chǔ)設施,系統(tǒng)I/O會經(jīng)常變化。Altera設計工作專家Kevin Weldon評論說:“我們一直和客戶一起工作,實現(xiàn)他們的目標工作頻率。但是現(xiàn)在,我們看到更多的變化出現(xiàn)在I/O中??蛻粝M_定不會出現(xiàn)I/O阻塞。”


以可測量的指標標明變化量:例如,響應時間、帶寬、供電電流,以及材料成本等。通過某些硬件和軟件模塊的需求文檔直至其含義,很容易找到這些變化,但是很難跟蹤。


找到相關(guān)性


在理想的環(huán)境中,從幾種相容的觀點看,存在一個最早的設計——這是我們從中獲得新系統(tǒng)的設計。我們不僅僅會有形式需求文檔,而且還有行為模型——可能同時以更抽象的C代碼以及會話級版本的形式提供。我們還會有硬件和軟件的模塊級體系結(jié)構(gòu)模型。對于實際實現(xiàn),會有RTL和軟件代碼。


在這種環(huán)境中,下一步是觀察。我們通過修改行為模型來滿足行為需求的變化。結(jié)構(gòu)需求的變化會觸發(fā)對IP或者互聯(lián),甚至是軟件功能的調(diào)整。會導致實施層面代碼的修訂。


在每種情況下,我們都會有可追溯和設計無關(guān)文件,以確定我們進行的調(diào)整會怎樣影響設計的其他部分(圖2 ),因此,例如,如果我們修改數(shù)據(jù)結(jié)構(gòu)的定義或者設計中某一部分信號的帶寬,那么,我們就會知道,這些修改會影響設計中的哪些區(qū)域。工具會幫助我們保存從需求到實現(xiàn)的所有文檔。


圖2.可追溯性簡化了需求向工作聲明的轉(zhuǎn)換


每次調(diào)整后,我們會在適當?shù)某橄蠹壷匦逻M行仿真,以驗證修改后的設計現(xiàn)在能否滿足新需求。然后,把這種修改傳遞到后面的底層抽象層,重新優(yōu)化,直到我們的新設計通過了驗證。

Schirrmeister指出,這種理想化的過程非常依賴于兩組其他的數(shù)據(jù),但不能保證可以使用這些數(shù)據(jù)。首先是使用場景。在正確的使用場景中,我們可以限制對修改后的設計進行驗證,特別是對用戶比較重要的模式和輸入。如果沒有使用模型,我們需要確定新設計在所有可能的實際環(huán)境下都滿足現(xiàn)有以及修改后的需求。


其次是足夠的測試臺,針對整個系統(tǒng)和關(guān)鍵子系統(tǒng)。在實際中,測試臺體現(xiàn)了人類語言文檔無法表示的需求。很多設計團隊認識到這方面的不足,重新建立系統(tǒng)測試臺,這一項目規(guī)模與本身一樣大——如果不能提供第三方SoC等關(guān)鍵元器件的數(shù)據(jù),其規(guī)模會更大。


在真實環(huán)境中


對于一些設計人員組織而言,我們的理想化實例不一定具有可行性。汽車、交通、民用航空等領(lǐng)域的設計團隊需要面對ISO 26262或者DO 178B等標準,要求設計和測試臺中的每一單元都能夠追溯到需求文檔的控制單元。這些設計團隊能夠找到設計中的哪一部分需要進行測試,甚至進行修改以符合需求的變化。他們可以指出哪些模塊需要在測試臺中進行修改。這一開始就需要很大的投入。


但是在大部分實際設計中,很難實現(xiàn)形式需求的可追溯性。這種項目的可追溯性只存在于設計團隊成員的大腦中。即使最初的設計人員還能夠說出,是什么原因讓他以某種方式來實現(xiàn)某一模塊,但是,在有人向他提問之前,他可能已經(jīng)離開公司了,或者不在這一行業(yè)中了。我們不得不質(zhì)疑我們的理想場景怎樣應用在這些真實環(huán)境中。


在一個平臺上


考慮設計團隊使用平臺設計的情況。平臺一般是由SoC供應商提供的,是系統(tǒng)設計的擴展,而Android是個明顯的例外。您要針對這一體系結(jié)構(gòu)進行的嘗試都含在規(guī)范中。概念非常簡單。建立您自己的需求,找到您不需要的部分平臺,不用它們(圖3 )。然后,根據(jù)需要來優(yōu)化其他部分,以滿足參數(shù)約束。


圖3.去掉部分平臺,使平臺設計滿足特殊需求。


但是這一概念也面臨一些難題。首先,不一定有需求文檔。因此,團隊不得不猜測平臺建立者的目的是什么,是否符合新需求。確定了不同點后,這就比較簡單了。例如,Android能夠適用于攝像機和麥克風。如果您并不需要這些,就可以把這些功能去掉。


功能需求會更具挑戰(zhàn)性。您可能需要一臺攝像機來采集MPEG4視頻。但是,您還需要四個ARM內(nèi)核和一個DDR3 SDRAM接口嗎?用戶只是進行網(wǎng)頁瀏覽,您還需要采集和壓縮視頻嗎?使用模型和功能需求的缺乏會迫使您進行大量的系統(tǒng)級仿真,以發(fā)現(xiàn)哪些模塊實際參與了您需要支持的工作。

Schirrmeister觀察到,“您要明確新需求到底意味著什么。我曾處理過一個項目,其視頻處理器需要采用信箱格式。這聽起來只是簡單的增加輸出格式。我們一開始沒有認識到的是系統(tǒng)的工作方式,信箱格式使我們只有很少的時間對每一幀進行解碼,因此,這對設計其他部分的性能要求很高。實際情況是理解需求變化的含義。”


參數(shù)需求的挑戰(zhàn)性更大。您不得不在RTL上采用芯片模型運行系統(tǒng)仿真,確定平臺能否滿足所需的規(guī)范要求。而且,幾個層面的仿真模型、精確的使用模型以及大量的測試臺都是實際設計平臺的關(guān)鍵組成。


修改上一次設計


從平臺開始進行工作,設計團隊只需要把模塊從平臺中取出并進行優(yōu)化,就可以確定能夠滿足需求。但如果是從以前的設計開始工作,或者難度更大的是,采用第三方參考設計開始工作,情況又會怎樣呢?原理不變。但是在真實環(huán)境中,設計團隊在現(xiàn)有設計上一般不會有跟蹤需求,也可能沒有良好的系統(tǒng)或者模塊級仿真模型,或者完全適用的測試臺。方法取決于技巧。


挑戰(zhàn)是從找到有哪些變化開始。Altera設計專家Stacy Martin認為:“這一過程一般沒有什么順序而言。團隊查看規(guī)范,找到特性或者接口的不足,然后,解決這些問題。”


現(xiàn)在要復雜一些。如果這些變化就含在現(xiàn)有實現(xiàn)的功能范圍內(nèi),那就可以進行優(yōu)化。也可能會超出現(xiàn)有設計的范圍?;蛘?,沒有可信的需求文檔時,設計人員應從系統(tǒng)級模型中正確的估算出性能,再次進行仿真以找到現(xiàn)有設計能夠?qū)崿F(xiàn)什么。實際上,團隊應分析現(xiàn)有設計實現(xiàn),以便重新生成該設計的需求。沒有正確的使用模型和良好的測試臺,在開始任何重新設計之前,團隊會有很大的投入花在理解需求上。


這是很大的挑戰(zhàn)。Martin說:“設計團隊嘗試盡可能多的重新使用設計。但是,您盡力嘗試重用后,發(fā)現(xiàn)有時候最好還是從頭開始設計。”


在真實環(huán)境中,實際上衍生設計有不同的方法。我們這里介紹的只是一小部分,這與設計人員找到需求變化的技巧有關(guān)。最初的設計人員在可重用性上的投入越大——在需求、行為、結(jié)構(gòu)和實施層面上維持正確的設計版本;鎖定使用模型;建立自適應測試臺;這樣,真實環(huán)境衍生設計就越能夠接近其理想形式。

產(chǎn)品線工程


但真實環(huán)境總是在變化。目前,在軍事、航空航天以及交通系統(tǒng)等某些應用中,需求可追溯性已經(jīng)成為合同條款。非常復雜的系統(tǒng)設計以及高成本的一次性SoC設計投入也會有這種要求。在目前的很多行業(yè)中,成本和復雜度壓力改變了系統(tǒng)設計的結(jié)構(gòu)和方法。


新機遇意味著新的芯片設計。但是,設計團隊越來越多的傾向于不再進行新設計。團隊維持并繼續(xù)重新應用系列知識產(chǎn)權(quán)內(nèi)核以及完整的測試臺,偶爾嘗試新的金屬掩模,很少使用全新的模板。對于每一設計是中心硬件/軟件IP衍生的應用,實際上都是產(chǎn)品線工程。


是否成功取決于設計重用的自動化。IP裝配程度也取決于能夠嚴格追溯需求的方法,跟蹤到測試臺模塊、硅片IP模塊,以及軟件模塊,很容易從以前的系統(tǒng)級行為模型轉(zhuǎn)到詳細的硅片仿真和軟件調(diào)試。這也是IBM的智能物理基礎(chǔ)設施副總裁Meg Selfe的觀點。


Selfe說,產(chǎn)品線工程的基礎(chǔ)設施跨過了三個領(lǐng)域——工具、過程和最佳實踐。其中,令人吃驚的是,一般并不缺少工具。Selfe報告說:“我們通常和具有很多工具的組織一起工作。難點是,并不是通過一致的平臺來連接工具,因此,流程中有人工步驟。人工步驟導致出現(xiàn)中斷。”


Selfe強調(diào)說,從傳統(tǒng)的SoC設計轉(zhuǎn)向產(chǎn)品線工程時——不僅要考慮下一設計需求,還要考慮企業(yè)是怎樣運轉(zhuǎn)的。Selfe建議,“確定在您的設計過程中要實現(xiàn)什么,找到原因,進行糾正。”


她注意到,目前,可追溯設計流程最大的不足出現(xiàn)在需求和測試臺之間。今后,在早期系統(tǒng)建模文化中,系統(tǒng)模型與其測試臺之間的差異會越來越小。目標應用環(huán)境中完整的系統(tǒng)模型成為某一子系統(tǒng)詳細模型的測試臺。需求變化會與設計和測試臺中所有受影響的模塊相關(guān)聯(lián)。測試覆蓋標準會直接轉(zhuǎn)換成對設計需求覆蓋范圍的精確估算。設計會在自動關(guān)注是否滿足需求變化上加大投入,而不是重新建立設計中沒有變化的部分,也不會復制IP中已有的功能。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉