小木蟲 2006年11月20日 硬件描述語言HDL的現(xiàn)狀與發(fā)展 硬件描述語言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語言。利用這種語言,,數(shù)字電路系統(tǒng)的設(shè)計(jì)可以從上層到下層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,,利用電子設(shè)計(jì)自動(dòng)化(EDA)工具,,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,,經(jīng)過自動(dòng)綜合工具轉(zhuǎn)換到門級(jí)電路網(wǎng)表,。接下去,再用專用集成電路ASIC或現(xiàn)場(chǎng)可編程門陣列FPGA自動(dòng)布局布線工具,,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu),。 目前,這種高層次(high-level-design)的方法已被廣泛采用,。據(jù)統(tǒng)計(jì),目前在美國(guó)硅谷約有90%以上的ASIC和FPGA采用硬件描述語言進(jìn)行設(shè)計(jì),。 硬件描述語言HDL的發(fā)展至今已有20多年的歷史,,并成功地應(yīng)用于設(shè)計(jì)的各個(gè)階段:建模、仿真,、驗(yàn)證和綜合等,。到20世紀(jì)80年代,已出現(xiàn)了上百種硬件描述語言,,對(duì)設(shè)計(jì)自動(dòng)化曾起到了極大的促進(jìn)和推動(dòng)作用,。但是,這些語言一般各自面向特定的設(shè)計(jì)領(lǐng)域和層次,,而且眾多的語言使用戶無所適從,。因此,急需一種面向設(shè)計(jì)的多領(lǐng)域,、多層次并得到普遍認(rèn)同的標(biāo)準(zhǔn)硬件描述語言,。20世紀(jì)80年代后期,VHDL和Verilog HDL語言適應(yīng)了這種趨勢(shì)的要求,,先后成為IEEE標(biāo)準(zhǔn),。 現(xiàn)在,隨著系統(tǒng)級(jí)FPGA以及系統(tǒng)芯片的出現(xiàn),,軟硬件協(xié)調(diào)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)變得越來越重要,。傳統(tǒng)意義上的硬件設(shè)計(jì)越來越傾向于與系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì)結(jié)合。硬件描述語言為適應(yīng)新的情況,,迅速發(fā)展,,出現(xiàn)了很多新的硬件描述語言,像Superlog,、SystemC,、Cynlib C++等等。究竟選擇哪種語言進(jìn)行設(shè)計(jì),,整個(gè)業(yè)界正在進(jìn)行激烈的討論,。因此,完全有必要在這方面作一些比較研究,,為EDA設(shè)計(jì)做一些有意義的工作,,也為發(fā)展我們未來的芯片設(shè)計(jì)技術(shù)打好基礎(chǔ) 1 目前HDL發(fā)展?fàn)顩r 目前,硬件描述語言可謂是百花齊放,,有VHDL,、Superlog、Verilog,、SystemC,、Cynlib C++、C Level等等,。雖然各種語言各有所長(zhǎng),,但業(yè)界對(duì)到底使用哪一種語言進(jìn)行設(shè)計(jì),卻莫衷一是,,難有定論,。 而比較一致的意見是,HDL和C/C++語言在設(shè)計(jì)流程中實(shí)現(xiàn)級(jí)和系統(tǒng)級(jí)都具有各自的用武之地,。問題出現(xiàn)在系統(tǒng)級(jí)和實(shí)現(xiàn)級(jí)相連接的地方:什么時(shí)候?qū)⑹褂弥械囊环N語言停下來,,而開始使用另外一種語言?或者干脆就直接使用一種語言,?現(xiàn)在看來得出結(jié)論仍為時(shí)過早,。 在2001年舉行的國(guó)際HDL會(huì)議上,與會(huì)者就使用何種設(shè)計(jì)語言展開了生動(dòng),、激烈的辯論,。最后,與會(huì)者投票表決:如果要啟動(dòng)一個(gè)芯片設(shè)計(jì)項(xiàng)目,,他們?cè)敢膺x擇哪種方案?結(jié)果,,僅有2票或3票贊成使用SystemC、Cynlib和C Level設(shè)計(jì),;而Superlog和Verilog各自獲得了約20票,。至于以后會(huì)是什么情況,連會(huì)議主持人John Cooley也明確表示:“5年后,,誰也不知道這個(gè)星球會(huì)發(fā)生什么事情,。” 各方人士各持己見:為Verilog辯護(hù)者認(rèn)為,,開發(fā)一種新的設(shè)計(jì)語言是一種浪費(fèi);為SystemC辯護(hù)者認(rèn)為,,系統(tǒng)級(jí)芯片SoC快速增長(zhǎng)的復(fù)雜性需要新的設(shè)計(jì)方法;C語言的贊揚(yáng)者認(rèn)為,,Verilog是硬件設(shè)計(jì)的匯編語言,而編程的標(biāo)準(zhǔn)很快就會(huì)是高級(jí)語言,,Cynlib C++是最佳的選擇,,它速度快,、代碼精簡(jiǎn),;Superlog的捍衛(wèi)者認(rèn)為,,Superlog是Verilog的擴(kuò)展,,可以在整個(gè)設(shè)計(jì)流程中僅提供一種語言和一個(gè)仿真器,與現(xiàn)有的方法兼容,,是一種進(jìn)化,而不是一場(chǎng)革命,。 當(dāng)然,,以上所有的討論都沒有提及模擬設(shè)計(jì)。如果想設(shè)計(jì)帶有模擬電路的芯片,,硬件描述語言必須有模擬擴(kuò)展部分,,像Verilog HDL-A,既要求能夠描述門級(jí)開關(guān)級(jí),,又要求具有描述物理特性的能力,。 2 幾種代表性的HDL語言 2.1 VHDL 早在1980年,因?yàn)槊绹?guó)軍事工業(yè)需要描述電子系統(tǒng)的方法,,美國(guó)國(guó)防部開始進(jìn)行VHDL的開發(fā),。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)將VHDL制定為標(biāo)準(zhǔn),。參考手冊(cè)為IEEE VHDL語言參考手冊(cè)標(biāo)準(zhǔn)草案1076/B版,于1987年批準(zhǔn),稱為IEEE 1076-1987,。應(yīng)當(dāng)注意,,起初VHDL只是作為系統(tǒng)規(guī)范的一個(gè)標(biāo)準(zhǔn),而不是為設(shè)計(jì)而制定的,。第二個(gè)版本是在1993年制定的,,稱為VHDL-93,增加了一些新的命令和屬性,。 雖然有“VHDL是一個(gè)4億美元的錯(cuò)誤”這樣的說法,,但VHDL畢竟是1995年以前唯一制訂為標(biāo)準(zhǔn)的硬件描述語言,這是它不爭(zhēng)的事實(shí)和優(yōu)勢(shì),;但同時(shí)它確實(shí)比較麻煩,,而且其綜合庫至今也沒有標(biāo)準(zhǔn)化,不具有晶體管開關(guān)級(jí)的描述能力和模擬設(shè)計(jì)的描述能力,。目前的看法是,,對(duì)于特大型的系統(tǒng)級(jí)數(shù)字電路設(shè)計(jì),VHDL是較為合適的,。 實(shí)質(zhì)上,,在底層的VHDL設(shè)計(jì)環(huán)境是由Verilog HDL描述的器件庫支持的,因此,,它們之間的互操作性十分重要,。目前,Verilog和VDHL的兩個(gè)國(guó)際組織OVI,、VI正在籌劃這一工作,,準(zhǔn)備成立專門的工作組來協(xié)調(diào)VHDL和Verilog HDL語言的互操作性。OVI也支持不需要翻譯,,由VHDL到Verilog的自由表達(dá),。 2.2 Verilog HDL Verilog HDL是在1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首創(chuàng)的,。Phil Moorby后來成為Verilog-XL的主要設(shè)計(jì)者和Cadence公司的第一合伙人,。在1984~1985年,Phil Moorby設(shè)計(jì)出了第一個(gè)名為Verilog-XL的仿真器,;1986年,,他對(duì)Verilog HDL的發(fā)展又作出了另一個(gè)巨大的貢獻(xiàn):提出了用于快速門級(jí)仿真的XL算法。 隨著Verilog-XL算法的成功,,Verilog HDL語言得到迅速發(fā)展,。1989年,Cadence公司收購(gòu)了GDA公司,,Verilog HDL語言成為Cadence公司的私有財(cái)產(chǎn),。1990年,Cadence公司決定公開Verilog HDL語言,于是成立了OVI(Open Verilog International)組織,,負(fù)責(zé)促進(jìn)Verilog HDL語言的發(fā)展,。基于Verilog HDL的優(yōu)越性,,IEEE于1995年制定了Verilog HDL的IEEE標(biāo)準(zhǔn),,即Verilog HDL 1364-1995;2001年發(fā)布了Verilog HDL 1364-2001標(biāo)準(zhǔn),。在這個(gè)標(biāo)準(zhǔn)中,,加入了Verilog HDL-A標(biāo)準(zhǔn),使Verilog有了模擬設(shè)計(jì)描述的能力,。 2.3 Superlog 開發(fā)一種新的硬件設(shè)計(jì)語言,,總是有些冒險(xiǎn),而且未必能夠利用原來對(duì)硬件開發(fā)的經(jīng)驗(yàn),。能不能在原有硬件描述語言的基礎(chǔ)上,,結(jié)合高級(jí)語言C、C++甚至Java等語言的特點(diǎn),,進(jìn)行擴(kuò)展,,達(dá)到一種新的系統(tǒng)級(jí)設(shè)計(jì)語言標(biāo)準(zhǔn)呢? Superlog就是在這樣的背景下研制開發(fā)的系統(tǒng)級(jí)硬件描述語言。Verilog語言的首創(chuàng)者Phil Moorby和Peter Flake等硬件描述語言專家,,在一家叫Co-Design Automation的EDA公司進(jìn)行合作,,開始對(duì)Verilog進(jìn)行擴(kuò)展研究。1999年,,Co-Design公司發(fā)布了SUPERLOGTM系統(tǒng)設(shè)計(jì)語言,,同時(shí)發(fā)布了兩個(gè)開發(fā)工具:SYSTEMSIMTM和SYSTEMEXTM。一個(gè)用于系統(tǒng)級(jí)開發(fā),,一個(gè)用于高級(jí)驗(yàn)證,。2001年,Co-Design公司向電子產(chǎn)業(yè)標(biāo)準(zhǔn)化組織Accellera發(fā)布了SUPERLOG擴(kuò)展綜合子集ESS,,這樣它就可以在今天Verilog語言的RTL級(jí)綜合子集的基礎(chǔ)上,提供更多級(jí)別的硬件綜合抽象級(jí),,為各種系統(tǒng)級(jí)的EDA軟件工具所利用,。 至今為止,已超過15家芯片設(shè)計(jì)公司用Superlog來進(jìn)行芯片設(shè)計(jì)和硬件開發(fā),。Superlog是一種具有良好前景的系統(tǒng)級(jí)硬件描述語言,。但是不久前,由于整個(gè)IT產(chǎn)業(yè)的滑坡,,EDA公司進(jìn)行大的整合,,Co-Design公司被Synopsys公司兼并,形勢(shì)又變得撲朔迷離。 2.4 SystemC 隨著半導(dǎo)體技術(shù)的迅猛發(fā)展,,SoC已經(jīng)成為當(dāng)今集成電路設(shè)計(jì)的發(fā)展方向,。在系統(tǒng)芯片的各個(gè)設(shè)計(jì)中,像系統(tǒng)定義,、軟硬件劃分,、設(shè)計(jì)實(shí)現(xiàn)等,集成電路設(shè)計(jì)界一直在考慮如何滿足SoC的設(shè)計(jì)要求,,一直在尋找一種能同時(shí)實(shí)現(xiàn)較高層次的軟件和硬件描述的系統(tǒng)級(jí)設(shè)計(jì)語言,。 SystemC正是在這種情況下,由Synopsys公司和CoWare公司積極響應(yīng)目前各方對(duì)系統(tǒng)級(jí)設(shè)計(jì)語言的需求而合作開發(fā)的,。1999年9月27日,,40多家世界著名的EDA公司、IP公司,、半導(dǎo)體公司和嵌入式軟件公司宣布成立“開放式SystemC聯(lián)盟”,。著名公司Cadence也于2001年加入了SystemC聯(lián)盟。SystemC從1999年9月聯(lián)盟建立初期的0.9版本開始更新,,從1.0版到1.1版,,一直到2001年10月推出了最新的2.0版。 3 各種HDL語言的體系結(jié)構(gòu)和設(shè)計(jì)方法 3.1 SystemC 所有的SystemC都是基于C++的,;圖1中的上層構(gòu)架都是很明確地建立在下層的基礎(chǔ)上,;SystemC內(nèi)核提供一個(gè)用于系統(tǒng)體系結(jié)構(gòu)、并行,、通信和同步時(shí)鐘描述的模塊,;完全支持內(nèi)核描繪以外的數(shù)據(jù)類型、用戶定義數(shù)據(jù)類型 |
|