以自然語言編寫的產品規范的含糊其辭,常常會帶來設計缺陷,而這種缺陷直到較晚階段才會被發現,從而使解決方案變得更加昂貴。
要點
設計復雜性的不斷增加需要更好的系統設計工具。
硬件設計師需要重新培訓,才能成為熟練的系統設計師。
對于系統設計而言,設計用于開發和驗證各種算法的語言是再好不過的了。
工程師們甚至在晶體管發明之前就從事系統級設計,但是,隨著設計復雜性的提高,人們更加重視系統級設計。產品規范一般由數百頁書面文件組成,這些文件通常含糊其辭,難以解釋。The MathWorks公司負責營銷、信號處理和通信的總監Ken Karnofsky說:“設計缺陷是在規范階段引入的,一般要到驗證階段才會被發現?!庇捎陂_發者必須在安排得十分緊的進度壓力下返工,因此這些缺陷會使開發成本比其必需的正常成本高得多。
在過去4年里,從事市場研究的Dataquest公司已開始發布關于EDA市場中該公司全球EDA首席分析師Gary Smith所稱的電子系統級分市場的報告。該市場的產品旨在使工程師能夠以比RTL(寄存器傳輸級)更高的抽象級來描述電子產品設計,而RTL是邏輯綜合被采用以來硬件設計的傳統起點。雖然很多EDA公司已經為該市場推出了產品,但收入增長明顯不如預期,并且主要技術潮流一直未得到發展。設計復雜性的不斷提高和65 納米半導體制造工藝的采用,使解決系統設計問題變得更加勢在必行了。
傳統方法
大多數EDA公司處理復雜性問題的方式都是假設 :只要可以利用熟悉的工具,那么設計工程師就會自然地成為系統設計師。因此,該行業正在目睹人們從事三項不同的重要工作,目的是通過提供能在更高的抽象級描述概念的結構,把 RTL 級使用的基于語言的設計擴展到系統級。每項工作都使用一種現有語言作為起點――即 Verilog語言、VHDL語言、C語言。
推廣全球標準的Accellera 機構,利用會員公司的貢獻擴展了 Verilog 語言,以便創建SystemVerilog語言――它是 Verilog語言的一個合適的超集,增加了很多行為結構。由于 Verilog 是使用最廣泛的 RTL 設計語言,因此該機構斷定,對它進行擴展,可以把重新培訓工程師的需要減少到最低程度,并為行業節約相當多的費用。
IEEE 出于同樣的目的,在計算機協會設計自動化標準委員會 (Computer Society DASC) 內部開始了一項擴展 VHDL的工作。VHDL 基礎語言已經提供了Verilog 的大多數附加行為結構,據該委員會說,這可簡化向該語言新版本的過渡。然而,這項工作進展緩慢,并有失去市場機會的風險。
另一項基于 C語言(更準確地說是 C++)的重要工作造就了 SystemC,而SystemC由 OSCI (Open SystemC Initiative) 財團推廣,并已被許多公司所采用。這種方法的擁護者認為,由于大多數工程師都在大學學過使用 C語言來完成課堂作業,所以基于 C語言 的工具就不需要大量的重新培訓。
雖然這三種方法的技術細節各不相同,但每種方法都有相同的前提:在 RTL 級做設計的工程師也將能在系統級做設計。但是,不論是在EDA行業 還是在其它行業,即使是對產品開發歷史的膚淺調查,都會對該假設提出質疑。在電子行業,設計工程師們不參與最初的產品規范,既不制訂功能要求,也不確定項目指導方針和市場定位因素。這些任務由營銷、財務、系統工程專業人員來承擔。這些專業人員一般都不熟悉硬件描述語言。由于沒有別的資料可供使用,他們都利用以自然語言和各種圖片編寫的文件來描述系統。對于他們而言,使用 SystemVerilog 或 VHDL(這兩種帶有大量硬件實現語義)或 C++語言(帶有結構化編程構成),就像使用一種為系統級設計而編寫的新語言一樣困難。
Cadence公司、Mentor公司和Synopsys公司――三家主要的 EDA 公司――既支持 SystemC ,又支持 SystemVerilog,不過側重點各不相同。Cadence 公司在 SystemC 推廣方面更積極,而 Synopsys 公司更支持 SystemVerilog。Mentor 公司采取中立主義,為這兩種語言提供同等支持。在各種會議和媒體上,支持 SystemC 的公司在捍衛自己戰略方面更加直率。作為支持這種系統設計方法的最佳例子的小公司有 Celoxica公司、Summit Design公司、CoWare公司。
Celoxica 公司把支持的重點放在用FPGA 器件實現各種設計上,并認為,只要擁有適當工具,任何軟件設計師都能編寫正確算法的代碼,并生成實用硬件。Summit Design 公司認為,設計師僅僅使用 C 和 SystemC 就能完成一個完整的系統設計。Summit 公司的 CEO 兼總裁Emil Girczyc解釋說:“算法設計只是 SOC(單片系統)設計小組所面臨的設計問題的一部分。使用 Matlab 之后,設計小組必須確定算法的最佳實現方法。采用程序建模語言,而不是Matlab能對性能、功率、體系結構進行最佳的折衷。”另外,他認為,設計小組還必須設計各種應用系統中的控制器占主導地位的部分,并集成 IP(知識產權)模型。他說:“這是 C 和 SystemC 發揮重要作用的地方,也是它們作為首選語言將代替 Verilog 和 VHDL 的地方。”
大約在15 個月以前,CoWare 公司獲得了新動力,當時 Cadence 公司投資于這家公司,并把 SPW 產品的相關權利給予了它,這就為通信系統的系統級開發提供了環境。據SPW 營銷總監Johannes Stahl 說:“CoWare 公司用Simulink 的一種直接替代品來滿足主流市場的需要,供眾多 MatLab 用戶進行基于 C 語言的驗證。”然而,評論家認為,這種方法過分注重硅芯片。當設計師必須使用一些制造工藝,而這些工藝采用最優方法來產生尺寸小于可見光波長的功能器件時,在硅芯片上形成獨特的實用圖形就變得很昂貴,而且錯誤概率明顯增加。有時,修復這些錯誤的成本最終會使設計小組不得不放棄整個項目。使用功能最強大的已知組件來實現 IC,可以緩解這個問題。因此,很多公司正在改用作為專用的采集IP內核的平臺。采用這種方法,設計的專有部分,不論是硬件還是軟件,就能更好管理,從而不容易出錯。
新穎的解決方案
據AccelChip 公司營銷及國際銷售副總裁 Tom Feist 說,對更高生產效率的需求已產生一組新的 DSL(域專用語言),這些DSL有可能是一種較好的系統級設計方法。他說:“DSL 是以犧牲普遍性來獲得對某一特定問題領域適用性的編程語言。體系結構良好的DSL所提供的結構,能簡明地代表大型設計對象,配有各種針對特定設計域的可視化工具,并提供與硬件實現工藝和軟件實現工藝的鏈接?!?BR>
在過去兩年里,在 EDA 界引起最濃厚興趣的 DSL 就是 The MathWorks 公司的 MatLab。但是,Matlab 不是嚴格意義上的 DSL,這是因為工程師和科學家們用它來解決很多應用領域的問題。在 EDA 界,設計師已使用 Matlab 來開發適合于有線通信和無線通信兩個領域的各種算法。例如,Accelchip 等公司允許設計師用 Matlab 開發并測試他們算法,并提供在硬件中實現這些算法的工具。
這些年來,業界對如何制定出一份可執行的規范爭論不休,并創造了 UML(統一建模語言)等語言來幫助解決這個問題。MathWorks公司 和一些已經在支持 Matlab的EDA公司描述了一種稱為“基于模型的設計” 的方法。這種方法用一個系統模型取代書面規范,該系統模型由在不暗示特定實現方法的情況下對所需行為進行描述的算法塊組成。利用 Matlab 和Simulink,設計小組就能嘗試各種體系結構,確保每個版本都能被一致地測試,保證 RTL 代碼是根據設計產生的,從而通過避免人工轉換步驟來保持一致性。這種方法是系統級設計的最佳選擇,這是因為它使設計小組能夠驗證各種現實要求,從而更有可能按時、按預算實現設計。