定義
數字硬體語言全稱為數字硬體描述語言,是電子系統硬體行為描述、結構描述、數據流描述的語言。利用這種語言,數字電路系統的設計可以從頂層到底層(從抽象到具體)逐層描述自己的設計思想,用一系列分層次的模組來表示極其複雜的數字系統。然後,利用電子設計自動化( EDA )工具,逐層進行仿真驗證,再把其中需要變為實際電路的模組組合,經過自動綜合工具轉換到門級電路網表。接下去,再用專用積體電路 ASIC 或現場可程式門系列FPGA 自動布局布線工具,把網錶轉換為要實現的具體電路布線結構。
簡介
數字硬體語言的發展至今已有很多年的歷史,並成功地套用於設計的各個階段:建模、仿真、驗證和綜合等。到20世紀80年代,已出現了上百種硬體描述語言,對設計自動化曾起到了極大的促進和推動作用。但是,這些語言一般各自面向特定的設計領域和層次,而且眾多的語言使用戶無所適從。因此,急需一種面向設計的多領域、多層次並得到普遍認同的標準硬體描述語言。20世紀80年代後期,VHDL和Verilog HDL語言適應了這種趨勢的要求,先後成為IEEE 標準。
現在,隨著系統級FPGA以及系統晶片的出現,軟硬體協調設計和系統設計變得越來越重要。傳統意義上的硬體設計越來越傾向於與系統設計和軟體設計結合。數字硬體語言為適應新的情況,迅速發展,出現了很多新的硬體描述語言,像Superlog、SystemC、Cynlib C++等等。究竟選擇哪種語言進行設計,整個業界正在進行激烈的討論。因此,完全有必要在這方面作一些比較研究,為EDA設計做一些有意義的工作,也為發展我們未來的晶片設計技術打好基礎。
代表
VHDL
早在1980年,因為美國軍事工業需要描述電子系統的方法,美國國防部開始進行VHDL的開發。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)將VHDL制定為標準。參考手冊為IEEE VHDL語言參考手冊標準草案1076/B版,於1987年批准,稱為IEEE 1076-1987。應當注意,起初VHDL只是作為系統規範的一個標準,而不是為設計而制定的。第二個版本是在1993年制定的,稱為VHDL-93,增加了一些新的命令和屬性。
對於特大型的系統級數字電路設計,VHDL是較為合適的。實質上,在底層的VHDL設計環境是由Verilog HDL描述的器件庫支持的,因此,它們之間的互操作性十分重要。目前,Verilog和VDHL的兩個國際組織OVI、VI正在籌劃這一工作,準備成立專門的工作組來協調VHDL和Verilog HDL語言的互操作性。OVI也支持不需要翻譯,由VHDL到Verilog的自由表達。
Verilog HDL
Verilog HDL是在1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首創的。Phil Moorby後來成為Verilog-XL的主要設計者和Cadence公司的第一合伙人。在1984~1985年,Phil Moorby設計出了第一個名為Verilog-XL的仿真器;1986年,他對Verilog HDL的發展又作出了另一個巨大的貢獻:提出了用於快速門級仿真的XL算法。隨著Verilog-XL算法的成功,Verilog HDL語言得到迅速發展。1989年,Cadence公司收購了GDA公司,Verilog HDL語言成為Cadence公司的私有財產。
隨著Verilog-XL算法的成功,Verilog HDL語言得到迅速發展。1989年,Cadence公司收購了GDA公司,Verilog HDL語言成為Cadence公司的私有財產。1990年,Cadence公司決定公開Verilog HDL語言,於是成立了OVI(Open Verilog International)組織,負責促進Verilog HDL語言的發展。基於Verilog HDL的優越性,IEEE於1995年制定了Verilog HDL的IEEE標準,即Verilog HDL 1364-1995;2001年發布了Verilog HDL 1364-2001標準。在這個標準中,加入了Verilog HDL-A標準,使Verilog有了模擬設計描述的能力。
Superlog
開發一種新的硬體設計語言,總是有些冒險,而且未必能夠利用原來對硬體開發的經驗。能不能在原有硬體描述語言的基礎上,結合高級語言C、C++甚至Java等語言的特點,進行擴展,達到一種新的系統級設計語言標準呢? Superlog就是在這樣的背景下研製開發的系統級硬體描述語言。Verilog語言的首創者Phil Moorby和Peter Flake等硬體描述語言專家,在一家叫Co-Design Automation的EDA公司進行合作,開始對Verilog進行擴展研究。1999年,Co-Design公司發布了SUPERLOGTM系統設計語言,同時發布了兩個開發工具:SYSTEMSIMTM和SYSTEMEXTM。一個用於系統級開發,一個用於高級驗證。2001年,Co-Design公司向電子產業標準化組織Accellera發布了SUPERLOG擴展綜合子集ESS,這樣它就可以在今天Verilog語言的RTL級綜合子集的基礎上,提供更多級別的硬體綜合抽象級,為各種系統級的EDA軟體工具所利用。 至今為止,已超過15家晶片設計公司用Superlog來進行晶片設計和硬體開發。Superlog是一種具有良好前景的系統級硬體描述語言。但是不久前,由於整個IT產業的滑坡,EDA公司進行大的整合,Co-Design公司被Synopsys公司兼併,形勢又變得撲朔迷離。
SystemC
隨著半導體技術的迅猛發展,SOC已經成為當今積體電路設計的發展方向。在系統晶片的各個設計中,像系統定義、軟硬體劃分、設計實現等,積體電路設計界一直在考慮如何滿足SOC的設計要求,一直在尋找一種能同時實現較高層次的軟體和硬體描述的系統級設計語言。
SystemC正是在這種情況下,由Synopsys公司和CoWare公司積極回響目前各方對系統級設計語言的需求而合作開發的。1999年9月27日,40多家世界著名的EDA公司、IP公司、半導體公司和嵌入式軟體公司宣布成立“開放式SystemC聯盟”。
特點
SystemC
所有的SystemC都是基於C++的;上層構架都是很明確地建立在下層的基礎上;SystemC核心提供一個用於系統體系結構、並行、通信和同步時鐘描述的模組;完全支持核心描繪以外的數據類型、用戶定義數據類型;通常的通信方式,如信號、FIFO,都可以在核心的基礎上建立,經常使用的計算模組也可以在核心基礎上建立;如果需要,圖1中較低層的內容不依賴上層就可以直接使用。
實際使用中,SystemC由一組描述類庫和一個包含仿真核的庫組成。在用戶的描述程式中,必須包括相應的類庫,可以通過通常的ANSI C++編譯器編譯該程式。SystemC提供了軟體、硬體和系統模組。用戶可以在不同的層次上自由選擇,建立自己的系統模型,進行仿真、最佳化、驗證、綜合等等。
Superlog
Superlog集合了Verilog的簡潔、C語言的強大、功能驗證和系統級結構設計等特徵,是一種高速的硬體描述語言。
1、Verilog 95和Verilog 2K。Superlog是Verilog HDL的超集,支持最新的Verilog 2K的硬體模型。
2、 C和C++語言。Superlog提供C語言的結構、類型、指針,同時具有C++面對對象的特性。
3、Superlog擴展綜合子集ESS。ESS提供一種新的硬體描述的綜合抽象級。 ④ 強大的驗證功能。自動測試基準,如隨機數據產生、功能覆蓋、各種專有檢查等。
Superlog的系統級硬體開發工具主要有Co- Design Automation公司的SYSTEMSIMTM和SYSTEMEXTM,同時可以結合其它的EDA工具進行開發。
VHDL
與傳統的電路設計方法相比較,採用VHDL語言進行數字邏輯電路和數字系統的硬體設計時,具有如下的特點:
1、採用自上而下的設計方法。即將設計的內容分塊細化,根據系統的總體要求,自上而下地逐步進行,最後完成系統硬體的整體設計。
2、大量套用可程式邏輯器件晶片。眾多晶片製造廠家晶片均支持VHDL語言的編程。所以目標器件有很大的選擇範圍,不必要受到通用元器件的限制。
3、隨時對系統進行模擬仿真,判斷設計系統功能的可行性。
4、降低了硬體電路設計難度。利用VHDL語言設計硬體電路時很大程度上減輕了設計者的工作強度,提高使設計效率和質量。
5、系統設計的主要程式均採用VHDL語言編寫。VHDL設計者的原始描述是非常簡練的硬體描述。其一是資料量小,易修改,易保存;其二是可繼承性好;其三是閱讀方便,再經過EDA工具綜合處理,根據不同的實現晶片,最終生成付諸生產的電路描述或版圖參數描述的工藝檔案。