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