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