三防平板方案硬件描述語言(HDL)是電子系統(tǒng)硬件行為描述、結(jié)構(gòu)描述、數(shù)據(jù)流描述的語言。利用這種語言,數(shù)字電路系統(tǒng)的設(shè)計可以從頂層到底層(從抽象到具體)逐層描述自己的設(shè)計思想,用一系列分層次的模塊來表示極其復雜的數(shù)字系統(tǒng)。然后利用電子設(shè)計自動化(EDA)工具,逐層進行仿真驗證,再把其中需要變?yōu)閷嶋H電路的模塊組合,經(jīng)過自動綜合工具轉(zhuǎn)換為門一級電路網(wǎng)絡(luò)表。最后用ASIC、CPLD和FPGA自動布局布線工具,把網(wǎng)絡(luò)表轉(zhuǎn)換為要實現(xiàn)的具體電路布線結(jié)構(gòu)。
硬件描述語言(HDL)發(fā)展至今已有近30多年的歷史,它已被成功地應(yīng)用于各種設(shè)計領(lǐng)域,主流的HDL有VHDL和Verilog HDL等。
1 三防平板方案VHDL描述語言
VHDL(Very High Speed Hardware Description Language)是1985年在美國國防部支持下推出的。1987年,IEEE(Institute of Electrical and Electronics Engineers,電氣電子工程師協(xié)會)將VHDL制定為標準。
自IEEE公布了VHDL的標準版本之后,各EDA公司相繼推出了自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具支持VHDL。此后,VHDL在電子設(shè)計領(lǐng)域得到了廣泛的應(yīng)用,并逐步取代了原有的非標準硬件描述語言。
VHDL作為一種規(guī)范語言和建模語言,隨著VHDL的標準化,出現(xiàn)了一些支持該語言的行為仿真器。由于創(chuàng)建VHDL的最初目標是用于標準文檔的建立和電路功能模擬,其基本想法是在高層次上描述系統(tǒng)和元件的行為。但到了20世紀90年代初,人們發(fā)現(xiàn)VHDL不僅可以作為系統(tǒng)模擬的建模工具,而且可以作為電路系統(tǒng)的設(shè)計工具,可以利用軟件工具將VHDL源碼自動地轉(zhuǎn)化為用文本方式表達的基本邏輯元件連接圖,即網(wǎng)絡(luò)表文件。這種方法顯然對于電路自動設(shè)計是一個極大的推進,隨后電子設(shè)計領(lǐng)域出現(xiàn)了第一個軟件設(shè)計工具—VHDL邏輯綜合器,它可以把標準VHDL的部分語句描述轉(zhuǎn)化為具體電路實現(xiàn)的網(wǎng)絡(luò)表文件。
目前,VHDL和Verilog HDL作為IEEE的工業(yè)標準硬件描述語言,得到眾多EDA公司的支持,在電子工程領(lǐng)域已成為事實上的通用硬件描述語言。VHDL語言具有很強的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進行建模和描述,從而大大簡化硬件設(shè)計任務(wù),提高設(shè)計效率和可靠性。
VHDL具有與具體硬件電路無關(guān),以及與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,在語言易讀性、層次化、結(jié)構(gòu)化設(shè)計方面表現(xiàn)出了強大的生命力和應(yīng)用潛力。VHDL支持自頂向下、自底向上或混合設(shè)計等多種設(shè)計方法,在面對當今許多電子產(chǎn)品生命周期縮短、需要多次重新設(shè)計以融入最新技術(shù)、改變工藝等方面,VHDL具有良好的適應(yīng)性。用VHDL進行電子系統(tǒng)設(shè)計的一個很大的優(yōu)點是設(shè)計者可以專注于其功能的實現(xiàn),而不需要對不影響功能的、與工藝有關(guān)的因素花費過多的時間和精力。
傳統(tǒng)的電子設(shè)計技術(shù)通常是自底向上的,即首先確定構(gòu)成系統(tǒng)底層的電路模塊或元件的結(jié)構(gòu)和功能,然后根據(jù)主系統(tǒng)的功能要求,將它們組合成更大的功能塊,使它們的結(jié)構(gòu)和功能滿足高層系統(tǒng)的要求。以此流程,逐步向上遞推,直至完成整個目標系統(tǒng)的設(shè)計。
三防平板方案應(yīng)用VHDL進行自上而下的設(shè)計,就是指使用VHDL模型在所有綜合級別上對硬件設(shè)計進行說明、建模和仿真測試。主系統(tǒng)及子系統(tǒng)最初的功能要求在VHDL中體現(xiàn)為可以被VHDL仿真程序驗證的可執(zhí)行程序。由于綜合工具可以將高級別的模型轉(zhuǎn)化為邏輯門一級的模型,所以整個設(shè)計過程基本是由計算機自動完成的。人為介入的方式主要是根據(jù)仿真的結(jié)果和優(yōu)化的指標,控制邏輯綜合的方式和指向。因此,在設(shè)計周期中,要根據(jù)仿真的結(jié)果進行優(yōu)化和升級,以及對模型進行及時的修改,改進系統(tǒng)或子系統(tǒng)的功能,更正設(shè)計錯誤,提高目標系統(tǒng)的工作速度,減小面積耗用,降低功耗和成本等。在這些過程中,由于設(shè)計的下一步是基于當前的設(shè)計的,即使當發(fā)現(xiàn)問題或進行新的修改而需從頭開始設(shè)計時,也不妨礙整體的設(shè)計效率。此外,VHDL 設(shè)計的可移植性、EDA 平臺的通用性,以及與具體硬件結(jié)構(gòu)的無關(guān)性,使得前期的設(shè)計可以很容易地應(yīng)用于新的設(shè)計項目,而且可以顯著縮短項目設(shè)計的周期。
采用自頂向下的設(shè)計方法將系統(tǒng)分解為各個模塊的集合后,可以對設(shè)計的每個獨立模塊指派不同的工作小組。這些小組可以工作在不同地點,甚至可以分屬不同的單位,最后將不同的模塊集成為最終的系統(tǒng)模型,并對其進行綜合測試和評價。
三防平板方案自頂向下設(shè)計流程包括以下設(shè)計階段。
(1)提出設(shè)計說明書,即用自然語言表達系統(tǒng)項目的功能特點和技術(shù)參數(shù)等。
(2)建立 VHDL 行為模型,這一步是將設(shè)計說明書轉(zhuǎn)化為VHDL 行為模型。在這一項目的表達中,可以使用滿足IEEE標準的VHDL的所有語句而不必考慮可綜合性,這一建模行為的目標是通過VHDL仿真器對整個系統(tǒng)進行系統(tǒng)行為仿真和性能評估。
(3)VHDL行為仿真。這一階段可以利用VHDL仿真器對頂層系統(tǒng)的行為模型進行仿真測試,檢查模擬結(jié)果,繼而進行修改和完善。這一過程與最終實現(xiàn)的硬件沒有任何關(guān)系,也不考慮硬件實現(xiàn)中的技術(shù)細節(jié),測試結(jié)果主要是對系統(tǒng)功能行為的考察,其中許多VHDL的語句表達主要為了方便了解系統(tǒng)各種條件下的功能特性,而不可能用真實的硬件來實現(xiàn)。
(4)VHDL RTL級建模。如上所述,VHDL只有部分語句集合可用于硬件功能行為的建模。因此在這一階段,必須將VHDL的行為模型表達為VHDL行為代碼(或稱為VHDL RTL級模型)。這里應(yīng)該注意的是,VHDL行為代碼是用VHDL中可綜合子集中的語句完成的,即可以最終實現(xiàn)目標器件的描述。因為利用VHDL的可綜合的語句同樣可以方便地對電路進行行為描述,而目前許多主流的 VHDL 綜合器都能將其綜合成 RTL 級,甚至門一級模型。在第(3)步和第(4)步,人為介入的因素比較多,設(shè)計者需要給予更多的關(guān)注。
(5)前端功能仿真。在這一階段對 VHDL RTL 級模型進行仿真,稱為功能仿真。盡管VHDL RTL級模型是可綜合的,但對它的功能仿真仍然與硬件無關(guān),仿真結(jié)果表達的是可綜合模型的邏輯功能。
(6)邏輯綜合。使用邏輯綜合工具將VHDL行為級描述轉(zhuǎn)化為結(jié)構(gòu)化的門一級電路。
(7)功能仿真。利用獲得的測試向量對ASIC的設(shè)計系統(tǒng)和子系統(tǒng)的功能進行仿真。
(8)結(jié)構(gòu)綜合。主要將綜合產(chǎn)生的表達邏輯連接關(guān)系的網(wǎng)絡(luò)表文件,結(jié)合具體的目標硬件環(huán)境進行標準單元調(diào)用、布局、布線,以及滿足約束條件的結(jié)構(gòu)優(yōu)化配置,即結(jié)構(gòu)綜合。
(9)門級時序仿真。在這一級中將使用門級仿真器或仍然使用VHDL仿真器(因為結(jié)構(gòu)綜合后能同步生成VHDL格式的時序仿真文件)進行門級時序仿真,在計算機上了解更接近硬件目標器件工作的功能時序。在這一步,將帶有從布局布線得到的精確時序信息映射到門級電路重新進行仿真,以檢查電路時序,并對電路功能進行最后檢查。
(10)硬件測試。這是對最后完成的硬件系統(tǒng)進行的檢查和測試。
與其他的硬件描述語言相比,VHDL具有較強的行為仿真級與綜合級的建模功能,這種能遠離具體硬件、基于行為描述方式的硬件描述語言恰好滿足典型的自頂向下設(shè)計方法,因而能順應(yīng)EDA技術(shù)發(fā)展的趨勢,解決現(xiàn)代電子設(shè)計應(yīng)用中出現(xiàn)的各類問題。
7.2.2 Verilog HDL描述語言
Verilog HDL 是硬件描述語言的一種,主要用于數(shù)字電子系統(tǒng)設(shè)計,設(shè)計者可用它進行各種級別的邏輯設(shè)計,以及進行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析、邏輯綜合,是目前應(yīng)用最廣泛的一種硬件描述語言。
Verilog HDL是1983年由GDA(Gateway Design Automation)公司為其模擬器產(chǎn)品開發(fā)的硬件描述語言?;赩erilog HDL的優(yōu)越性,IEEE于2001年發(fā)布了Verilog HDL 1364—2001標準。
(1)自頂向下(Top-Down)的設(shè)計概念。自頂向下的設(shè)計是指從系統(tǒng)級開始,把系統(tǒng)劃分為若干基本單元,然后把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接用EDA元件庫中的基本元件來實現(xiàn)為止。
(2)三防平板方案具體模塊的設(shè)計編譯和仿真的過程。在不同的層次進行具體模塊的設(shè)計所用的方法也有所不同,在高層次上往往編寫一些行為級的模塊并通過仿真加以驗證,其主要目的是考慮系統(tǒng)總體的性能和各模塊的指標分配,并非實現(xiàn)具體的電路,往往不需進行綜合及其以后的步驟。而當設(shè)計的層次比較接近底層時,行為描述往往需要用電路邏輯來實現(xiàn),這時的模塊不僅需要通過仿真加以驗證,還需進行綜合、優(yōu)化、布線和后仿真??傊?,具體電路是從底向上逐步實現(xiàn)的。EDA工具往往不僅支持HDL描述,也支持電路圖輸入,有效地利用這兩種方法是提高設(shè)計效率的辦法之一。
模塊設(shè)計流程主要由兩大主要功能部分組成。
● 設(shè)計開發(fā):即編寫設(shè)計文件→綜合布局布線→投片生成這樣一系列步驟。
● 設(shè)計驗證:也就是進行各種仿真的一系列步驟,如果在仿真過程中發(fā)現(xiàn)問題就返回設(shè)計輸入編輯器進行修改。
(3)對應(yīng)具體工藝器件的優(yōu)化、映像和布局布線。由于各種ASIC、CPLD和FPFA器件的工藝各不相同,因而當采用不同廠家的不同器件來實現(xiàn)已驗證的邏輯網(wǎng)絡(luò)表文件(EDIF文件)時,需要不同的基本單元庫與布線延時模型與之對應(yīng)才能進行準確的優(yōu)化、映像和布局布線?;締卧獛炫c布線延時模型由熟悉本廠工藝的工程師提供,再由EDA 廠商的工程師編入相應(yīng)的處理程序。而三防平板方案邏輯電路設(shè)計師只需用文件說明所用的工藝器件和約束條件,EDA 工具就會自動根據(jù)這一文件選擇相應(yīng)的庫和模型進行準確的處理,從而大大提高設(shè)計效率。
2 三防平板方案Verilog HDL和VHDL的比較
Verilog HDL和VHDL都是用于邏輯設(shè)計的硬件描述語言,并且都已成為IEEE標準。VHDL于1987年成為IEEE標準,Verilog HDL則在1995年才正式成為IEEE標準。之所以VHDL比Verilog HDL早成為IEEE標準,這是因為VHDL是美國軍方組織開發(fā)的,而Verilog HDL則是由一個普通的民間公司開發(fā)的,基于Verilog HDL的優(yōu)越性,才成為IEEE標準,因而具有更強的生命力。
這里的比較不是要判斷哪一種語言好些,因為這樣的判斷沒有實際意義,且不同的語言有其特定的適用環(huán)境,必須要將語言和它的使用領(lǐng)域相結(jié)合才能得出有意義的結(jié)論。
一般的硬件描述語言可以在三個層次上進行電路描述,其描述層次依次可分為行為級、RTL級和門電路級。VHDL的特點決定了它更適合于行為級(包括RTL級)的描述,有人稱它為行為描述語言;而Verilog HDL屬于RTL級硬件描述語言,通常更適合RTL級和更低層次的門電路級描述。
由于任何一種硬件描述語言源程序最終都要轉(zhuǎn)換成門電路級,才能被布局布線器或適配器所接收,因此 VHDL 源程序的綜合通常要經(jīng)過行為級→RTL 級→門電路級的轉(zhuǎn)化。而Verilog HDL源程序的綜合過程要略簡單一些,只需要經(jīng)過RTL級→門電路級的轉(zhuǎn)化。
與Verilog HDL相比,VHDL是一種高級描述語言,適用于電路高級建模,比較適合于FPGA/CPLD目標器件的設(shè)計,或間接方式的ASIC設(shè)計。而Verilog HDL語言則是一種較低級的描述語言,更適用于描述門電路,易于控制電路資源,因此,更適合于直接的集成電路或ASIC設(shè)計。
三防平板方案VHDL和Verilog HDL的共同特點是:能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計中層次與領(lǐng)域的描述,可借用高級語言的精巧結(jié)構(gòu)來簡化電路的描述,具有電路仿真與驗證機制,以保證電路設(shè)計的正確性,支持電路描述由高層到低層的綜合轉(zhuǎn)換,便于文檔管理,易于理解和設(shè)計重用。VHDL和Verilog HDL的主要區(qū)別在于邏輯表達的描述級別。
三防平板方案VHDL雖然也可以直接描述門電路,但這方面的能力卻不如Verilog HDL語言,而Verilog HDL語言在高級描述方面不如VHDL。Verilog HDL的描述風格接近于電路原理圖,從某種意義上說,它是電路原理圖的高級文本表示方式;VHDL最適于描述電路的行為,然后由綜合器根據(jù)功能要求來生成符號要求的電路網(wǎng)絡(luò)表文件。
三防平板方案Verilog HDL的最大優(yōu)點是易學易用,入門容易,只要有C語言編程的基礎(chǔ),設(shè)計者就可以在2~3個月的時間內(nèi)掌握這種設(shè)計技術(shù)。VHDL 語言入門相對較難,一般很難在較短的時間內(nèi)真正掌握其設(shè)計技術(shù),但在熟悉以后其設(shè)計效率明顯高于 Verilog HDL。兩者生成的電路性能也不相上下。由于VHDL和Verilog HDL各有所長,市場占有量也相差不多。
目前,大多數(shù)高檔EDA軟件都支持VHDL和Verilog HDL混合設(shè)計,因而在工程應(yīng)用中,有些電路模塊可以用VHDL設(shè)計,其他電路模塊則可以用Verilog HDL設(shè)計,各取所長,已成為EDA應(yīng)用技術(shù)發(fā)展的一個重要趨勢。