Ken Karnofsky, The MathWorks信號處理與通訊技術市場總監
正如我們所知,越來越多的復雜系統和技術,如多核處理器和FPGA的出現,已經令一些陳舊的設計方法毫無用武之地。我們需要新的設計方法:對復雜系統進行系統級抽象,并對從概念到實現過程中耗財耗時的步驟進行自動化處理。
在以處理器為核心的SoC設計和驗證領域,電子系統級(ESL)方法被用于解決上述問題。自從幾年前EDA分析師Gary Smith提出ESL概念后,很多設計方法和商業工具也隨之產生(有些只是經過再包裝的)。這些工具幫助硬件設計人員對復雜的SoC架構進行建模,同時允許軟件開發人員在硬件設計完成之前開始編寫代碼,甚至在某些情況下,可以輔助硬件部分的實現。
然而,大部分ESL設計方法和工具的適用領域相對狹窄,限制了其應用。我們需要一種不局限于SoC的更包容的方法,來大幅度地減少復雜系統開發過程中的時間,成本和錯誤。這種新的方法必須:1)保證硬件和軟件設計的功能上正確,并滿足實際物理需求;2)幫助系統架構師盡早地得到“正確”的設計,排除不可行的方案;3)預見數字、模擬、機電(L)以及其他子系統在集成中可能遇到的問題;4)消除從概念到軟硬件實現之間的過程差異;5)降低不斷增加的驗證成本。
解決上述問題對半導體公司和電子OEM廠商至關重要。前者需要在快速變化的市場中競爭,后者則需要確保其供應商提供的產品能夠滿足應用需求。Gary Smith在對ESL進行研究時注意到“架構師的工作平臺”的重要性,但這只是部分解決了上述問題。基于模型的設計秉承的理念是提供一個更為完善的系統開發解決方案。采用基于模型設計方法的公司預期可以縮短50%以上的生產周期,并取得10倍于在設計工具上投資的回報。
基于模型的設計包含四個部分:對期望行為或者參考設計進行建模,進行設計分析并通過仿真不斷改進,利用代碼生成技術實現,以及在整個開發過程中不斷測試和驗證。上述四個部分解決了當前電子系統中固有的設計和驗證問題。它們利用可執行的系統模型明確功能上和物理上的需求,系統地幫助工程師完成從設計規范,到實現,到驗證的整個流程。
基于模型的設計促使來自不同部門的工程師之間進行合作,因為設計中需要使用模擬、數字、以及軟件等子系統的模型和運行環境。這些模型不只是IP模塊;它們可以代表不同抽象級的系統元素。因此,每個部門的工程師都可以保證各自設計的部分能夠融入整個系統并滿足需求,盡管進行設計分析并不斷改進和重述需要對復雜的通信和多媒體技術進行最優化。而且,工程師還可以盡早的發現并解決問題,同時在其它設計部分尚未完成時繼續該子系統的設計工作。
在傳統的設計流程中,整個系統在完全實現前無法進行系統地測試。這樣導致只有到系統開發階段的后期才能發現一些隱藏的設計缺陷。此時,修復這些缺陷的成本和難度都會大大提高。與傳統的設計流程不同,基于模型的設計可以在開發的最早階段,也是錯誤最常發生的階段,對系統進行測試和調試。模型可以通過仿真盡早地進行驗證。同時,模型單元通過增加實現細節會逐漸地完善,在這個過程中也可以不斷地對其進行校驗。C,HDL以及SPICE語言實現,和ESL模型一樣,都能夠共同支持現有的工作流程、設計復用,以及最終的集成測試。不同設計團隊設計的子系統可在各自完成之后進行集成,以保證任何改動都不會降低系統的性能。并使得存在設計缺陷的子系統能夠被迅速地找到。
在現有設計流程中,還存在另一種導致錯誤和延時的因素,這就是手動完成從概念到設計到實現之間的轉換。舉個典型的例子來說,算法開發工程師在MATLAB中開發了一個浮點算法。系統架構師將該算法重新編寫成C語言,在這個過程中該算法很可能變成了定點代碼。然后在嵌入式軟件或者硬件實現時該算法又需要被重新編寫。這些過程即浪費時間和人力,又可能產生錯誤,使設計迭代變得困難,而且還需要額外的驗證步驟去保證硬件實現與相關算法的一致性。
基于模型的設計分別從三個方面克服了上述問題。首先,C語言或者HDL代碼可以自動從模型單元中生成,或者重復使用已有的實現。這樣可以消除手動編寫代碼產生的錯誤,并使得在選擇不同的軟件或者硬件實現上更為靈活,而且還可在現有的實現流程中進行。其次,模型單元可以作為“黃金參考”來校驗手寫的C語言或者HDL代碼。再次,不管實現的是手寫代碼還是自動生成的代碼,帶有仿真數據的系統和環境模型都可以作為硬件實現的測試平臺。
基于模型的設計可以在很多方面整合并加速系統開發。以增量和標準的方式采用基于模型的設計方法可以獲得最大的收益,同時還能幫助管理新的設計方法所帶來的改變。對于剛剛采用基于模型設計方法的公司,通常先要確認現有流程中造成質量問題和生產力下降的根本原因,而對于IP、技術,以及現有流程中應保留的部分給予重復使用的機會。按照這種做法,第一個項目就能夠以最小的代價產生即時效益。同時,隨著基于模型的設計方法在項目、小組和任務中的深入應用,投資回報率(ROI)也會隨之增加。