利用EDA工具和硬件描述語言(HDL),根據(jù)產(chǎn)品的特定要求設(shè)計(jì)性能價(jià)格比高的片上系統(tǒng),,是目前國際上廣泛使用的方法,。與傳統(tǒng)的設(shè)計(jì)方法不同,在設(shè)計(jì)開始階段并不一定需要具體的單片微控制器(MCU)和開發(fā)系統(tǒng)(仿真器)以及帶有外圍電路的線路板來進(jìn)行調(diào)試,,所需要的只是由集成電路制造廠家提供的用HDL描述的MCU核和各種外圍器件的HDL模塊,。設(shè)計(jì)人員在EDA工具提供的虛擬環(huán)境下,,不但可以編寫和調(diào)試匯編程序,也可以用HDL設(shè)計(jì),、仿真和調(diào)試具有自己特色的快速算法電路和接口,,并通過綜合和布線工具自動(dòng)轉(zhuǎn)換為電路結(jié)構(gòu),與制造廠家的單元庫,、宏庫及硬核對(duì)應(yīng)起來,,通過仿真驗(yàn)證后,即可投片制成專用的片上系統(tǒng)(SOC)集成電路,。
一,、 芯片設(shè)計(jì)和制造是電子工業(yè)發(fā)展的基礎(chǔ)
近10年來我國的電子工業(yè)取得了很大的進(jìn)步,無論在消費(fèi)類產(chǎn)品如電視,、錄像機(jī)還是在通信類產(chǎn)品如電話,、網(wǎng)絡(luò)設(shè)備方面,產(chǎn)品的檔次和產(chǎn)量都有快速的提高,。但這些產(chǎn)品的核心部件——芯片,,大多需要進(jìn)口,每年需要花費(fèi)大量外匯來購買,。許多產(chǎn)品技術(shù)檔次的提高也受制于芯片,。由于高檔產(chǎn)品使用的新芯片價(jià)格昂貴,研制能在國際高檔產(chǎn)品市場競爭的電子產(chǎn)品和設(shè)備非常困難,。我國目前能在國際市場上競爭的電子產(chǎn)品大多數(shù)還是中低檔的,。由于核心芯片大多需要進(jìn)口,因此利潤非常低,,主要依靠我國相對(duì)較廉價(jià)的勞動(dòng)力才能在市場中生存,。
在21世紀(jì)的頭5年中,如果我們還不能掌握核心芯片的設(shè)計(jì)和制造技術(shù),,電子工業(yè)很難在20年內(nèi)趕上國際先進(jìn)水平,。核心芯片的設(shè)計(jì)是高級(jí)技術(shù),但并非每一種核心芯片都是非常難設(shè)計(jì)和制造的,,大多數(shù)中低檔電子產(chǎn)品中的片上系統(tǒng)SOC(System on Chip)并不復(fù)雜,。目前,我國許多電子工程師已掌握了傳統(tǒng)的微控制器系統(tǒng)開發(fā)手段:編寫匯編程序,,利用開發(fā)系統(tǒng)進(jìn)行仿真來調(diào)試匯編程序和接口信號(hào),。在這一基礎(chǔ)上,如果掌握一些常用的EDA工具,,了解復(fù)雜數(shù)字系統(tǒng)的設(shè)計(jì)思路并能主動(dòng)深入地學(xué)習(xí)HDL語言,,不但能設(shè)計(jì)出具有自己知識(shí)產(chǎn)權(quán)的微控制器和線路板,甚至能設(shè)計(jì)出幾萬門甚至幾百萬門的專用數(shù)字信號(hào)處理芯片和片上系統(tǒng),。
二,、 掌握HDL是利用EDA工具--開發(fā)片上系統(tǒng)的敲門磚
由于設(shè)計(jì)的復(fù)雜性,必須有一種語言能在各個(gè)層面上精確地為各種電路行為和結(jié)構(gòu)建立模型,,以便在計(jì)算機(jī)上對(duì)設(shè)計(jì)是否正確進(jìn)行仿真,。HDL特別是Verilog HDL得到在第一線工作的設(shè)計(jì)工程師的特別青睞,不僅因?yàn)镠DL與C語言很相似,,學(xué)習(xí)和掌握它并不困難,,更重要的是它在復(fù)雜的SOC的設(shè)計(jì)上所顯示的非凡性能和可擴(kuò)展能力。在數(shù)字系統(tǒng)設(shè)計(jì)的仿真領(lǐng)域,,HDL早在10多年前就已得到全世界數(shù)字系統(tǒng)設(shè)計(jì)工程師的廣泛承認(rèn),,是目前世界上應(yīng)用最普及的硬件描述語言。特別是近年來在數(shù)字系統(tǒng)自動(dòng)綜合方面也已顯示出它旺盛的生命力,。Verilog HDL還支持模擬電路的設(shè)計(jì),。Open Verilog International(以下簡稱OVI)組織,最近已公布Verilog-AMS語言參考手冊(cè)(Language Refe-rence Manual,,以下簡稱LRM)的草案,,在這個(gè)草案里定義了這種可用于模擬和數(shù)字混合信號(hào)系統(tǒng)設(shè)計(jì)的硬件描述語言。 Verilog-AMS硬件描述語言是符合IEEE 1364標(biāo)準(zhǔn)的Verilog HDL的1個(gè)子集,。它覆蓋了由OVI組織建議的Verilog HDL的定義和語義,,目的是讓數(shù)模混合信號(hào)集成電路的設(shè)計(jì)者,,既能用結(jié)構(gòu)描述又能用高級(jí)行為描述來創(chuàng)建和使用模塊,。所以,用Verilog HDL語言可以使設(shè)計(jì)者在整個(gè)設(shè)計(jì)過程的不同階段(從結(jié)構(gòu)方案的分析比較,,直到物理器件的實(shí)現(xiàn)),,均能使用不同級(jí)別的抽象。目前,,在許多軟件公司的努力下,,許多模型的開發(fā)工具正在出現(xiàn),這必將大大加快模型的開發(fā)過程,。他們提供了模擬電路模型的開發(fā)工具,,如電路分析工具、行為建模工具,、設(shè)計(jì)優(yōu)化工具和設(shè)計(jì)自動(dòng)化工具,。有的工具能生成電路部件的行為模型,這種行為模型可用于電路的仿真,。有聯(lián)想能力的讀者和電子工程師們,,通過諸如手機(jī)、商務(wù)通等新電子產(chǎn)品的不斷涌現(xiàn),,不難想像它們確實(shí)是設(shè)計(jì)方法革命性變革的產(chǎn)物,。
三,、 SOC的設(shè)計(jì)宜先從數(shù)字系統(tǒng) 開始逐步過渡到數(shù)模混合系統(tǒng)
由于數(shù)字系統(tǒng)的基本部件比較簡單,無非是一些與門,、或門,、非門、觸發(fā)器,、多路器等,,宏器件無非是一些加法器、乘法器等,。設(shè)計(jì)數(shù)字系統(tǒng)的EDA工具也比較容易免費(fèi)得到,一些簡單的CPU核也可以在網(wǎng)上免費(fèi)得到,,即使是很先進(jìn)的CPU核,如果需要投片即制成真正的ASIC,,也可以通過與集成電路制造廠家協(xié)商得到,。在投片制造之前,還可以用FPGA來驗(yàn)證所設(shè)計(jì)的復(fù)雜數(shù)字系統(tǒng)的電路結(jié)構(gòu)是否正確,。要做到這一點(diǎn)首先要搞清楚1個(gè)概念:這些數(shù)字系統(tǒng)的基本部件,、宏器件或CPU核都是用HDL語言描述的,有的使用結(jié)構(gòu)級(jí)的描述,;有的采用用戶自定義原語UDP(即邏輯真值表)描述,;有的使用寄存器傳輸級(jí)描述;有的使用高級(jí)行為描述,。不管用哪一級(jí)別的HDL語言,,它們都屬于HDL語言(不是Verilog HDL,就是VHDL)。由于描述數(shù)字系統(tǒng)的HDL語言比較成熟,,使用的年代比較長,,仿真和綜合工具已經(jīng)成熟,開展這一領(lǐng)域的設(shè)計(jì)工作已沒有什么大的困難,。SOC的設(shè)計(jì)可以先從單純的數(shù)字系統(tǒng)開始,,在這個(gè)基礎(chǔ)上再開展數(shù)模混合信號(hào)系統(tǒng)的設(shè)計(jì),,可節(jié)省大量投資,。電子芯片的設(shè)計(jì)已經(jīng)成為一種國際性的行業(yè),許多年輕人有熱情參與這一項(xiàng)挑戰(zhàn)性行業(yè),。我國在提高工程教育質(zhì)量的基礎(chǔ)上,,在腦力密集型知識(shí)產(chǎn)業(yè)方面有很大的優(yōu)勢。我們的電子專業(yè)大學(xué)生,,大多數(shù)有很好的邏輯思維能力,。關(guān)鍵是這項(xiàng)工作需要很好地組織和規(guī)劃,提高各種層次模塊的質(zhì)量,、標(biāo)準(zhǔn)化和可重用性,,以減少重復(fù)勞動(dòng),,達(dá)到提高國際競爭能力的目的。
為進(jìn)一步減輕建模的重?fù)?dān),,美國許多EDA公司最近紛紛引進(jìn)了用于新型通信系統(tǒng)的部件庫,。據(jù)報(bào)道,這些部件庫可讓設(shè)計(jì)小組的成員修改模型的方程來開發(fā)各種不同的模型,,所需的開發(fā)時(shí)間只是原先所需時(shí)間的一小部分,所有這些模型都與新的數(shù)?;旌螲DL標(biāo)準(zhǔn)兼容,。例如, Mentor Graphics公司除了宣布新的部件庫外,最近還透露了與Motorola公司合作搞了1個(gè)語言開發(fā)計(jì)劃,,旨在為SOC的開發(fā)提供1條新的途徑,,以激勵(lì)在多種芯片的設(shè)計(jì)領(lǐng)域中發(fā)展混合信號(hào)的應(yīng)用(包括在電磁傳感器和射頻通信芯片設(shè)計(jì)中),這能使工程師們從傳統(tǒng)的以Spice為基礎(chǔ)的模擬設(shè)計(jì)方法轉(zhuǎn)到更簡單的具有系統(tǒng)風(fēng)格的自上而下的設(shè)計(jì)方法,。采用這種方法就能把用不同的行為描述語言表達(dá)的混合信號(hào)部件模型放到1個(gè)設(shè)計(jì)中,,來驗(yàn)證整個(gè)設(shè)計(jì)。許多高技術(shù)公司不但引進(jìn)各種可改變參數(shù)的部件庫,,還在努力開發(fā)模擬數(shù)字混合SOC的設(shè)計(jì)仿真工具,。下面列出國外一些公司在數(shù)模混合SOC方面最新的技術(shù)動(dòng)態(tài):
1 Cadence公司由于把新出現(xiàn)的Verilog-AMS標(biāo)準(zhǔn)和不同的仿真算法與分析工具以及傳統(tǒng)的Spice網(wǎng)表(netlist)表示方法結(jié)合起來,,這樣一個(gè)仿真器(即Spectre)就可以在設(shè)計(jì)流程的不同層次上應(yīng)用,。Cadence公司也提供了Verilog-A的語言調(diào)試檢錯(cuò)工具和圖形用戶界面。
2 Apteq設(shè)計(jì)系統(tǒng)公司在提供他們的Verilog-A產(chǎn)品時(shí)也給用戶一些模型示例,。Apteq公司還提供1個(gè)有特色的Verilog-A插入件,,它可以把OVI兼容的Verilog-A HDL功能塊加入到現(xiàn)存的Spice仿真環(huán)境中。該產(chǎn)品通過1個(gè)獨(dú)特的接插件的解決方案提供了統(tǒng)一的高性能的模擬HDL接口,,使其能與任何一種Spice類型的仿真器相連接,,保證了可移植的HDL的編譯,并能正確地評(píng)價(jià)不同種類的仿真器性能,。Verilog-A插入件的工作機(jī)制是先把模擬的行為程序通過編譯轉(zhuǎn)化為1種中間的表達(dá),,這種表達(dá)可以被Spice的硬件描述語言插座(Socket)與其他的Spice部件共同的任務(wù)(如實(shí)例抽象、參數(shù)設(shè)置,、加載和評(píng)價(jià))用來運(yùn)行,。該插入件可提供諸如模擬行為編碼的查錯(cuò)、優(yōu)化和解剖,。而且如果需要仿真,、全芯片的驗(yàn)證和測試,該Verilog-A插入件還有1個(gè)可選的二次編譯模式,,可提供高速,、本地編碼(native-code)的仿真性能,。
3 Transcendent設(shè)計(jì)技術(shù)公司在其產(chǎn)品TransVerSE中提供Verilog-A/AMS的仿真能力。該產(chǎn)品的目的是仿真復(fù)雜的電子機(jī)械系統(tǒng),,它針對(duì)一些不同的工業(yè)領(lǐng)域,,其中包括汽車工業(yè)、飛機(jī)工業(yè),、航天工業(yè)和消費(fèi)電子工業(yè),。TransVerSE支持Verilog-A、新出現(xiàn)的Verilog-AMS語言,、Spice及其模型與子電路,,還有用C語言寫的模型。
綜上所述,復(fù)雜SOC的設(shè)計(jì)是一項(xiàng)系統(tǒng)工程,需要組織社會(huì)多方面的人才,。10多年來,,國外通過許多高技術(shù)公司與大學(xué)研究機(jī)構(gòu)的互相合作和支持逐步達(dá)到了目前的水平。由于種種原因我國電子高技術(shù)芯片設(shè)計(jì)領(lǐng)域與國外交流比較少,,國內(nèi)同行也很少聯(lián)系,,水平相對(duì)落后。大學(xué)有關(guān)專業(yè)也缺少有經(jīng)驗(yàn)和有能力的教師,,這些都是我們與美國等先進(jìn)國家的差距擴(kuò)大的原因,。近幾年來由于Internet的普及,國外EDA工具的引進(jìn),,許多大FPGA廠商免費(fèi)贈(zèng)送的開發(fā)軟件,,國內(nèi)產(chǎn)品升級(jí)的需求,從國外逐步轉(zhuǎn)移過來的中小型設(shè)計(jì)項(xiàng)目,,以及年輕的大學(xué)畢業(yè)生和研究生們的熱情,,使我們有可能在比較短的時(shí)間內(nèi)在復(fù)雜數(shù)字SOC設(shè)計(jì)領(lǐng)域趕上去。
四,、 數(shù)字SOC的設(shè)計(jì)——基本工具和方法
熟悉MCU開發(fā)的工程師們都知道,,MCU的開發(fā)需要開發(fā)系統(tǒng)。開發(fā)系統(tǒng)通常以PC機(jī)為基礎(chǔ),,運(yùn)用開發(fā)系統(tǒng)廠商提供的軟件和仿真器就可以針對(duì)MCU所編寫的匯編進(jìn)行編譯和調(diào)試,,并可以把編譯后的機(jī)器代碼下載到樣機(jī)系統(tǒng)中運(yùn)行和調(diào)試。數(shù)字SOC的設(shè)計(jì)方法與此很相近,,所不同的是我們?cè)谧龇抡鏁r(shí)往往用1個(gè)MCU的核來代替真正的MCU,。MCU可以是運(yùn)行在某種FPGA上的固核(Firm Core)或某種ASIC工藝的硬核或是用HDL語言描述的可綜合(或不可綜合)的軟核(或虛擬模塊)。調(diào)試運(yùn)行在MCU上的匯編與傳統(tǒng)的調(diào)試方法沒有實(shí)質(zhì)性的差別,。主要的差別在于傳統(tǒng)的方法必須把程序代碼加載到樣機(jī)系統(tǒng)中,,才可以進(jìn)行硬件和軟件配合的調(diào)試;而數(shù)字SOC的設(shè)計(jì)環(huán)境可以允許完全在虛擬硬件的環(huán)境下對(duì)硬件和軟件的配合進(jìn)行調(diào)試。因?yàn)樵谶@種環(huán)境下各個(gè)具體硬件模塊是基于硬件描述語言的,,而編譯后的機(jī)器代碼是一些二進(jìn)制磁盤文件,可以通過HDL的系統(tǒng)任務(wù),加載到HDL模塊中的存貯器變量中,。調(diào)試的過程可以完全在HDL仿真環(huán)境下進(jìn)行。如果硬件需要修改,,也只要重新編輯或修改個(gè)別模塊即可,。待調(diào)試基本結(jié)束后,可以把整個(gè)硬件系統(tǒng)包括MCU的核加載到1個(gè)容量較大的FPGA上進(jìn)行硬件,、軟件聯(lián)合調(diào)試,,進(jìn)行實(shí)際電路結(jié)構(gòu)的驗(yàn)證。這樣的驗(yàn)證通過以后,,硬件的結(jié)構(gòu)就可以確定下來,。如果需要的批量比較大,就可以考慮投片,,余下的投片驗(yàn)證和成品率的驗(yàn)證可以由后端集成電路廠家來做。對(duì)于MCU嵌入式系統(tǒng)的設(shè)計(jì)人員來說,,要學(xué)會(huì)SOC的設(shè)計(jì)方法并不難,,只是改變一下仿真環(huán)境和學(xué)習(xí)HDL語言。在學(xué)習(xí)HDL語言時(shí),,筆者認(rèn)為先學(xué)習(xí)Verilog HDL比較好:一是容易入門,;二是接受Verilog HDL代碼做后端芯片的集成電路廠家比較多,現(xiàn)成的硬核,、固核和軟核比較多,。在學(xué)習(xí)HDL語言時(shí),要注意分清該語言兩種不同的應(yīng)用:一種是為自動(dòng)生成電路結(jié)構(gòu),,另一種是為了調(diào)試正在設(shè)計(jì)的電路結(jié)構(gòu),。目前,能自動(dòng)生成電路結(jié)構(gòu)的HDL語言子集很小,,語法現(xiàn)象非常有限,,程序模塊的格式也變化不大,比較好掌握,。而為了調(diào)試的HDL語言包括的語法現(xiàn)象很廣,,測試模塊的風(fēng)格也多種多樣。有興趣的讀者如有一定的C語言編程基礎(chǔ),,也有一些硬件基礎(chǔ)知識(shí),,可以在1本好書的指導(dǎo)下,通過自學(xué),,在2個(gè)月內(nèi)學(xué)會(huì),,可以從簡單逐步過渡到復(fù)雜的SOC設(shè)計(jì)。
五,、 介紹1個(gè)實(shí)用的SOC設(shè)計(jì)環(huán)境
ALTERA公司最近推出1款SOC開發(fā)工具套件(名為Excalibur Development Kits),。因?yàn)樾阅鼙容^全面,,故適用于數(shù)字SOC的開發(fā)。該開發(fā)套件包括SOC開發(fā)所必需的各種工具和資源軟件,、可以重構(gòu)的硬件電路結(jié)構(gòu)驗(yàn)證平臺(tái)和使用說明書,。可以使用的軟件資源包括供選用的多種嵌入式處理器核,、 ALTERA系列FPGA開發(fā)工具(名為Quartus,,可以進(jìn)行HDL設(shè)計(jì)的仿真、綜合和布局,、布線),,還有工業(yè)標(biāo)準(zhǔn)的C/C++編譯器??芍貥?gòu)的硬件平臺(tái)可以用來驗(yàn)證設(shè)計(jì)是否正確,,在表示硬件結(jié)構(gòu)電路的代碼生成后,通過PC機(jī)加載,,可以重構(gòu)其電路,,通過運(yùn)行重構(gòu)的電路來達(dá)到驗(yàn)證的目的。開發(fā)軟件包中可嵌入的CPU核有許多種可供選擇,,它們都是高性能的RISC結(jié)構(gòu)CPU,,其中最高的為64位結(jié)構(gòu),運(yùn)行最高速度可達(dá)200 MIPS,,適用的應(yīng)用領(lǐng)域非常廣,。其中有1種ALTERA公司自行開發(fā)的CPU核(名為Nios),在ALTERA公司APEX系列的FPGA上實(shí)現(xiàn)其電路結(jié)構(gòu)的運(yùn)行是非常容易的,,也不需要付專利費(fèi),。這種CPU核是1種參數(shù)化的軟核,設(shè)計(jì)人員可以根據(jù)應(yīng)用的需要對(duì)CPU核本身進(jìn)行優(yōu)化,,還可以增加外圍電路的功能,。這些工作無非是編寫一些新的HDL模塊或改寫一些現(xiàn)存的HDL模塊中的參數(shù),再編譯一下即可完成,。這種CPU核只占APEX系列 FPGA芯片的 2%的資源,。如果需要提高處理速度,可以用多個(gè)Nios核來并行處理,,這樣的并行系統(tǒng)包括外圍電路完全可以在1塊ALTERA公司的APEX系列的FPGA上實(shí)現(xiàn),。所以,筆者認(rèn)為SOC的設(shè)計(jì)并非是遙遠(yuǎn)不可及的事情,。我們可以購買1套這樣的系統(tǒng),,先從FPGA的開發(fā)做起,再根據(jù)市場的需求數(shù)量,決定是否移植到ASIC上,。由于我們的設(shè)計(jì)由可綜合風(fēng)格的HDL模塊來描述,,所以移植時(shí)也相對(duì)比較容易,所需的只是用ASIC綜合工具(如Synposys或Ambit等)做一下綜合,,再用有關(guān)的外圍模型做一下帶布線延遲的門級(jí)結(jié)構(gòu)仿真驗(yàn)證,,如果沒有問題即可交給集成電路廠家做投片試驗(yàn)。
結(jié)束語
希望大家在原有工作的基礎(chǔ)上,,盡快掌握利用HDL語言的設(shè)計(jì)方法,,利用相對(duì)比較便宜的高層次FPGA開發(fā)工具,把SOC的開發(fā)工作搞起來,。爭取在下一個(gè)5年中,,基礎(chǔ)芯片的設(shè)計(jì)工作有較大的進(jìn)步,這樣電子工業(yè)發(fā)展就有了較好的基礎(chǔ),。讓我們?yōu)閷?shí)現(xiàn)這個(gè)共同目標(biāo)一起努力工作,。