硬件描述語(yǔ)言HDL的現狀與發(fā)展
摘要:從數字系統設計的性質(zhì)出發(fā),結合目前迅速發(fā)展的芯片系統,比較、研究各種硬件描述語(yǔ)言;詳細闡述各種語(yǔ)言的發(fā)展歷史、體系結構和設計方法;探討未來(lái)硬件描述語(yǔ)言的發(fā)展趨勢,同時(shí)針對國內EDA基礎薄弱的現狀,在硬件描述語(yǔ)言方面作了一些有益的思考。
關(guān)鍵詞:ASIC 硬件描述語(yǔ)言HDL Verilog HDL VHDL SystemC Superlog 芯片系統SoC
引 言
硬件描述語(yǔ)言HDL是一種用形式化方法描述數字電路和系統的語(yǔ)言。利用這種語(yǔ)言,數字電路系統的設計可以從上層到下層(從抽象到具體)逐層描述自己的設計思想,用一系列分層次的模塊來(lái)表示極其復雜的數字系統。然后,利用電子設計自動(dòng)化(EDA)工具,逐層進(jìn)行仿真驗證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過(guò)自動(dòng)綜合工具轉換到門(mén)級電路網(wǎng)表。接下去,再用專(zhuān)用集成電路ASIC或現場(chǎng)可編程門(mén)陣列FPGA自動(dòng)布局布線(xiàn)工具,把網(wǎng)表轉換為要實(shí)現的具體電路布線(xiàn)結構。
目前,這種高層次(high-level-design)的方法已被廣泛采用。據統計,目前在美國硅谷約有90%以上的ASIC和FPGA采用硬件描述語(yǔ)言進(jìn)行設計。
硬件描述語(yǔ)言HDL的發(fā)展至今已有20多年的歷史,并成功地應用于設計的各個(gè)階段:建模、仿真、驗證和綜合等。到20世紀80年代,已出現了上百種硬件描述語(yǔ)言,對設計自動(dòng)化曾起到了極大的促進(jìn)和推動(dòng)作用。但是,這些語(yǔ)言一般各自面向特定的設計領(lǐng)域和層次,而且眾多的語(yǔ)言使用戶(hù)無(wú)所適從。因此,急需一種面向設計的多領(lǐng)域、多層次并得到普遍認同的標準硬件描述語(yǔ)言。20世紀80年代后期,VHDL和Verilog HDL語(yǔ)言適應了這種趨勢的要求,先后成為IEEE標準。
現在,隨著(zhù)系統級FPGA以及系統芯片的出現,軟硬件協(xié)調設計和系統設計變得越來(lái)越重要。傳統意義上的硬件設計越來(lái)越傾向于與系統設計和軟件設計結合。硬件描述語(yǔ)言為適應新的情況,迅速發(fā)展,出現了很多新的硬件描述語(yǔ)言,像Superlog、SystemC、Cynlib C++等等。究竟選擇哪種語(yǔ)言進(jìn)行設計,整個(gè)業(yè)界正在進(jìn)行激烈的討論。因此,完全有必要在這方面作一些比較研究,為EDA設計做一些有意義的工作,也為發(fā)展我們未來(lái)的芯片設計技術(shù)打好基礎。
1 目前HDL發(fā)展狀況
目前,硬件描述語(yǔ)言可謂是百花齊放,有VHDL、Superlog、Verilog、SystemC、Cynlib C++、C Level等等。雖然各種語(yǔ)言各有所長(cháng),但業(yè)界對到底使用哪一種語(yǔ)言進(jìn)行設計,卻莫衷一是,難有定論。
而比較一致的意見(jiàn)是,HDL和C/C++語(yǔ)言在設計流程中實(shí)現級和系統級都具有各自的用武之地。問(wèn)題出現在系統級和實(shí)現級相連接的地方:什么時(shí)候將使用中的一種語(yǔ)言停下來(lái),而開(kāi)始使用另外一種語(yǔ)言?或者干脆就直接使用一種語(yǔ)言?現在看來(lái)得出結論仍為時(shí)過(guò)早。
在2001年舉行的國際HDL會(huì )議上,與會(huì )者就使用何種設計語(yǔ)言展開(kāi)了生動(dòng)、激烈的辯論。最后,與會(huì )者投票表決:如果要啟動(dòng)一個(gè)芯片設計項目,他們愿意選擇哪種方案?結果,僅有2票或3票贊成使用SystemC、Cynlib和C Level設計;而Superlog和Verilog各自獲得了約20票。至于以后會(huì )是什么情況,連會(huì )議主持人John Cooley也明確表示:“5年后,誰(shuí)也不知道這個(gè)星球會(huì )發(fā)生什么事情?!?/P>
各方人士各持己見(jiàn):為Verilog辯護者認為,開(kāi)發(fā)一種新的設計語(yǔ)言是一種浪費;為SystemC辯護者認為,系統級芯片SoC快速增長(cháng)的復雜性需要新的設計方法;C語(yǔ)言的贊揚者認為,Verilog是硬件設計的匯編語(yǔ)言,而編程的標準很快就會(huì )是高級語(yǔ)言,Cynlib C++是最佳的選擇,它速度快、代碼精簡(jiǎn);Superlog的捍衛者認為,Superlog是Verilog的擴展,可以在整個(gè)設計流程中僅提供一種語(yǔ)言和一個(gè)仿真器,與現有的方法兼容,是一種進(jìn)化,而不是一場(chǎng)革命。
當然,以上所有的討論都沒(méi)有提及模擬設計。如果想設計帶有模擬電路的芯片,硬件描述語(yǔ)言必須有模擬擴展部分,像Verilog HDL-A,既要求能夠描述門(mén)級開(kāi)關(guān)級,又要求具有描述物理特性的能力。
2 幾種代表性的HDL語(yǔ)言
2.1 VHDL
早在1980年,因為美國軍事工業(yè)需要描述電子系統的方法,美國國防部開(kāi)始進(jìn)行VHDL的開(kāi)發(fā)。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)將VHDL制定為標準。參考手冊為IEEE VHDL語(yǔ)言參考手冊標準草案1076/B版,于1987年批準,稱(chēng)為IEEE 1076-1987。應當注意,起初VHDL只是作為系統規范的一個(gè)標準,而不是為設計而制定的。第二個(gè)版本是在1993年制定的,稱(chēng)為VHDL-93,增加了一些新的命令和屬性。
雖然有“VHDL是一個(gè)4億美元的錯誤”這樣的說(shuō)法,但VHDL畢竟是1995年以前唯一制訂為標準的硬件描述語(yǔ)言,這是它不爭的事實(shí)和優(yōu)勢;但同時(shí)它確實(shí)比較麻煩,而且其綜合庫至今也沒(méi)有標準化,不具有晶體管開(kāi)關(guān)級的描述能力和模擬設計的描述能力。目前的看法是,對于特大型的系統級數字電路設計,VHDL是較為合適的。
實(shí)質(zhì)上,在底層的VHDL設計環(huán)境是由Verilog HDL描述的器件庫支持的,因此,它們之間的互操作性十分重要。目前,Verilog和VDHL的兩個(gè)國際組織OVI、VI正在籌劃這一工作,準備成立專(zhuān)門(mén)的工作組來(lái)協(xié)調VHDL和Verilog HDL語(yǔ)言的互操作性。OVI也支持不需要翻譯,由VHDL到Verilog的自由表達。
2.2 Verilog HDL
Verilog HDL是在1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首創(chuàng )的。Phil Moorby后來(lái)成為Verilog-XL的主要設計者和Cadence公司的第一合伙人。在1984~1985年,Phil Moorby設計出了第一個(gè)名為Verilog-XL的仿真器;1986年,他對Verilog HDL的發(fā)展又作出了另一個(gè)巨大的貢獻:提出了用于快速門(mén)級仿真的XL算法。
隨著(zhù)Verilog-XL算法的成功,Verilog HDL語(yǔ)言得到迅速發(fā)展。1989年,Cadence公司收購了GDA公司,Verilog HDL語(yǔ)言成為Cadence公司的私有財產(chǎn)。1990年,Cadence公司決定公開(kāi)Verilog HDL語(yǔ)言,于是成立了OVI(Open Verilog International)組織,負責促進(jìn)Verilog HDL語(yǔ)言的發(fā)展?;赩erilog HDL的優(yōu)越性,IEEE于1995年制定了Verilog HDL的IEEE標準,即Verilog HDL 1364-1995;2001年發(fā)布了Verilog HDL 1364-2001標準。在這個(gè)標準中,加入了Verilog HDL-A標準,使Verilog有了模擬設計描述的能力。
2.3 Superlog
開(kāi)發(fā)一種新的硬件設計語(yǔ)言,總是有些冒險,而且未必能夠利用原來(lái)對硬件開(kāi)發(fā)的經(jīng)驗。能不能在原有硬件描述語(yǔ)言的基礎上,結合高級語(yǔ)言C、C++甚至Java等語(yǔ)言的特點(diǎn),進(jìn)行擴展,達到一種新的系統級設計語(yǔ)言標準呢?
Superlog就是在這樣的背景下研制開(kāi)發(fā)的系統級硬件描述語(yǔ)言。Verilog語(yǔ)言的首創(chuàng )者Phil Moorby和Peter Flake等硬件描述語(yǔ)言專(zhuān)家,在一家叫Co-Design Automation的EDA公司進(jìn)行合作,開(kāi)始對Verilog進(jìn)行擴展研究。1999年,Co-Design公司發(fā)布了SUPERLOGTM系統設計語(yǔ)言,同時(shí)發(fā)布了兩個(gè)開(kāi)發(fā)工具:SYSTEMSIMTM和SYSTEMEXTM。一個(gè)用于系統級開(kāi)發(fā),一個(gè)用于高級驗證。2001年,Co-Design公司向電子產(chǎn)業(yè)標準化組織Accellera發(fā)布了SUPERLOG擴展綜合子集ESS,這樣它就可以在今天Verilog語(yǔ)言的RTL級綜合子集的基礎上,提供更多級別的硬件綜合抽象級,為各種系統級的EDA軟件工具所利用。
至今為止,已超過(guò)15家芯片設計公司用Superlog來(lái)進(jìn)行芯片設計和硬件開(kāi)發(fā)。Superlog是一種具有良好前景的系統級硬件描述語(yǔ)言。但是不久前,由于整個(gè)IT產(chǎn)業(yè)的滑坡,EDA公司進(jìn)行大的整合,Co-Design公司被Synopsys公司兼并,形勢又變得撲朔迷離。
2.4 SystemC
隨著(zhù)半導體技術(shù)的迅猛發(fā)展,SoC已經(jīng)成為當今集成電路設計的發(fā)展方向。在系統芯片的各個(gè)設計中,像系統定義、軟硬件劃分、設計實(shí)現等,集成電路設計界一直在考慮如何滿(mǎn)足SoC的設計要求,一直在尋找一種能同時(shí)實(shí)現較高層次的軟件和硬件描述的系統級設計語(yǔ)言。
SystemC正是在這種情況下,由Synopsys公司和CoWare公司積極響應目前各方對系統級設計語(yǔ)言的需求而合作開(kāi)發(fā)的。1999年9月27日,40多家世界著(zhù)名的EDA公司、IP公司、半導體公司和嵌入式軟件公司宣布成立“開(kāi)放式SystemC聯(lián)盟”。著(zhù)名公司Cadence也于2001年加入了SystemC聯(lián)盟。SystemC從1999年9月聯(lián)盟建立初期的0.9版本開(kāi)始更新,從1.0版到1.1版,一直到2001年10月推出了最新的2.0版。
3 各種HDL語(yǔ)言的體系結構和設計方法
3.1 SystemC
所有的SystemC都是基于C++的;圖1中的上層構架都是很明確地建立在下層的基礎上;SystemC內核提供一個(gè)用于系統體系結構、并行、通信和同步時(shí)鐘描述的模塊;完全支持內核描繪以外的數據類(lèi)型、用戶(hù)定義數據類(lèi)型;通常的通信方式,如信號、FIFO,都可以在內核的基礎上建立,經(jīng)常使用的計算模塊也可以在內核基礎上建立;如果需要,圖1中較低層的內容不依賴(lài)上層就可以直接使用。
實(shí)際使用中,SystemC由一組描述類(lèi)庫和一個(gè)包含仿真核的庫組成。在用戶(hù)的描述程序中,必須包括相應的類(lèi)庫,可以通過(guò)通常的ANSI C++編譯器編譯該程序。SystemC提供了軟件、硬件和系統模塊。用戶(hù)可以在不同的層次上自由選擇,建立自己的系統模型,進(jìn)行仿真、優(yōu)化、驗證、綜合等等。
3.2 Superlog
Superlog集合了Verilog的簡(jiǎn)潔、C語(yǔ)言的強大、功能驗證和系統級結構設計等特征,是一種高速的硬件描述語(yǔ)言。其體系結構如圖2。
?、?Verilog 95和Verilog 2K。Superlog是Verilog HDL的超集,支持最新的Verilog 2K的硬件模型。
?、?C和C++語(yǔ)言。Superlog提供C語(yǔ)言的結構、類(lèi)型、指針,同時(shí)具有C++面對對象的特性。
?、?Superlog擴展綜合子集ESS。ESS提供一種新的硬件描述的綜合抽象級。
?、?強大的驗證功能。自動(dòng)測試基準,如隨機數據產(chǎn)生、功能覆蓋、各種專(zhuān)有檢查等。
Superlog的系統級硬件開(kāi)發(fā)工具主要有Co- Design Automation公司的SYSTEMSIMTM和SYSTEMEXTM,同時(shí)可以結合其它的EDA工具進(jìn)行開(kāi)發(fā)。
3.3 Verilog和VHDL
這兩種語(yǔ)言是傳統硬件描述語(yǔ)言,有很多的書(shū)籍和資料可以查閱參考,這里不多介紹。
4 目前可取可行的策略和方式
按傳統方法,我們將硬件抽象級的模型類(lèi)型分為以下五種:
◇ 系統級(system)――用語(yǔ)言提供的高級結構實(shí)現算法運行的模型;
◇ 算法級(algorithm)――用語(yǔ)言提供的高級結構實(shí)現算法運行的模型;
◇ RTL級(Register Transfer Level)――描述數據在寄存器之間流動(dòng)和如何處理、控制這些數據流動(dòng)的模型。(以上三種都屬于行為描述,只有RTL級才與邏輯電路有明確的對應關(guān)系。)
◇ 門(mén)級(gate-level)――描述邏輯門(mén)以及邏輯門(mén)之間的連接模型。(與邏輯電路有確切的連接關(guān)系。以上四種,數字系統設計工程師必須掌握。)
◇ 開(kāi)關(guān)級(switch-level)――描述器件中三極管和存儲節點(diǎn)以及它們之間連接的模型。(與具體的物理電路有對應關(guān)系,工藝庫元件和宏部件設計人員必須掌握。)
根據目前芯片設計的發(fā)展趨勢,驗證級和綜合抽象級也有可能成為一種標準級別。因為它們適合于IP核復用和系統級仿真綜合優(yōu)化的需要,而軟件(嵌入式、固件式)也越來(lái)越成為一個(gè)和系統密切相關(guān)的抽象級別。
目前,對于一個(gè)系統芯片設計項目,可以采用的方案包括以下幾種:
?、?最傳統的辦法是,在系統級采用VHDL,在軟件級采用C語(yǔ)言,在實(shí)現級采用Verilog。目前,VHDL與Verilog的互操作性已經(jīng)逐步走向標準化,但軟件與硬件的協(xié)調設計還是一個(gè)很具挑戰性的工作,因為軟件越來(lái)越成為SOC設計的關(guān)鍵。該方案的特點(diǎn)是:風(fēng)險小,集成難度大,與原有方法完全兼容,有現成的開(kāi)發(fā)工具;但工具集成由開(kāi)發(fā)者自行負責完成。
?、?系統級及軟件級采用Superlog,硬件級和實(shí)現級均采用Verilog HDL描述,這樣和原有的硬件設計可以兼容。只要重新采購兩個(gè)Superlog開(kāi)發(fā)工具SYSTEMSIMTM和SYSTEMEXTM即可。該方案特點(diǎn)是風(fēng)險較小,易于集成,與原硬件設計兼容性好,有集成開(kāi)發(fā)環(huán)境。
?、?系統級和軟件級采用SystemC,硬件級采用SystemC與常規的Verilog HDL互相轉換,與原來(lái)的軟件編譯環(huán)境完全兼容。開(kāi)發(fā)者只需要一組描述類(lèi)庫和一個(gè)包含仿真核的庫,就可以在通常的ANSI C++編譯器環(huán)境下開(kāi)發(fā);但硬件描述與原有方法完全不兼容。該方案特點(diǎn)是風(fēng)險較大,與原軟件開(kāi)發(fā)兼容性好,硬件開(kāi)發(fā)有風(fēng)險。
5 未來(lái)發(fā)展和技術(shù)方向
微電子設計工業(yè)的設計線(xiàn)寬已經(jīng)從0.25μm向 0.18μm變遷,而且正在向0.13μm和90nm的目標努力邁進(jìn)。到0.13μm這個(gè)目標后,90%的信號延遲將由線(xiàn)路互連所產(chǎn)生。為了設計工作頻率近2GHz的高性能電路,就必須解決感應、電遷移和襯底噪聲問(wèn)題(同時(shí)還有設計復雜度問(wèn)題)。
未來(lái)幾年的設計中所面臨的挑戰有哪些?標準組織怎樣去面對?當設計線(xiàn)寬降到0.13μm,甚至更小時(shí),將會(huì )出現四個(gè)主要的趨勢:
◇ 設計再利用;
◇ 設計驗證(包括硬件和軟件);
◇ 互連問(wèn)題將決定對時(shí)間、電源及噪聲要求;
◇ 系統級芯片設計要求。
滿(mǎn)足未來(lái)設計者需要的設計環(huán)境將是多家供應商提供解決方案的模式,因為涉及的問(wèn)題面太廣且太復雜,沒(méi)有哪個(gè)公司或實(shí)體可以獨立解決。實(shí)際上,人們完全有理由認為,對下一代設計問(wèn)題解決方案的貢獻,基礎研究活動(dòng)與獨立產(chǎn)業(yè)的作用將同等重要。
以后,EDA界將在以下三個(gè)方面開(kāi)展工作。
?、?互用性標準。所有解決方案的基礎,是設計工具開(kāi)發(fā)過(guò)程的組件――互用性標準。我們知道,EDA工業(yè)采用的是工業(yè)上所需要的標準,而不管標準是誰(shuí)制定的。但是,當今市場(chǎng)的迅速發(fā)展正在將優(yōu)勢轉向那些提供標準時(shí)能做到快速適應和技術(shù)領(lǐng)先的組織。處于領(lǐng)先的公司正在有目的地向這方面投資,那些沒(méi)有參加開(kāi)發(fā)這些標準的公司則必須獨自承擔風(fēng)險。
?、?擴展其高級庫格式(ALF)標準,使其包含物理領(lǐng)域的信息,是EDA開(kāi)發(fā)商可以致力于解決互連問(wèn)題的算法,從而使電路設計者在解決設計收尾工作時(shí),不再受到這個(gè)問(wèn)題的困擾。
?、?制定新的系統級設計語(yǔ)言標準。標準化系統芯片的設計工具和語(yǔ)言,使SoC真正達到第三次微電子設計革命浪潮。
6 國內發(fā)展的戰略選擇
由于目前IT行業(yè)不景氣,以及ASIC設計復雜程度不斷增加,各EDA公司出現了合并調整的趨勢。Synopsys合了Avant!和Co-Design,Cadence合了GDA等,形成了幾大巨頭的局面。而各可編程器件廠(chǎng)商,像Xilinx和Altera,也積極與EDA緊密合作,因此,我們必須抓住這個(gè)時(shí)機,全力發(fā)展;不然,就要面對以后與壟斷巨頭進(jìn)行競爭的事倍功半的不利局面。
針對目前硬件描述語(yǔ)言的發(fā)展和國家芯片制造生產(chǎn)的發(fā)展戰略,國內如何在原EDA基礎薄弱的情況下迅速發(fā)展,使EDA成為一個(gè)合理、健康而必不可少的產(chǎn)業(yè);將基礎研究活動(dòng)與獨立產(chǎn)業(yè)的作用合理的結合,建議開(kāi)展如下方面的工作:
?、?為了實(shí)現我國的芯片設計自主化,必須夯實(shí)基礎,在結合VHDL的基礎上,推廣Verilog HDL設計語(yǔ)言,使硬件設計的底層單元庫可以自主研制;
?、?根據目前芯片系統的發(fā)展趨勢,對系統級語(yǔ)言進(jìn)行比較研究,在Suoerlog、SystemC等語(yǔ)言中做出選擇,并進(jìn)行相關(guān)工具的推廣,以及與相關(guān)企業(yè)進(jìn)行合作等;
?、?深入HDL語(yǔ)言的綜合和仿真等模型的研究,努力在與國外合作的基礎上,建立自主知識產(chǎn)權的EDA公司;
?、?積極加入EDA目前正在進(jìn)行的標準化工作,做到了解、學(xué)習、應用、吸收、參與并重;
?、?政府積極加入,重視產(chǎn)、學(xué)、研的合作,開(kāi)展卓有成效的發(fā)展模式。
評論