劉文君
摘要:文章介紹了VHDL語言及其基本特點,討論了VHDL語言在數(shù)字電路設(shè)計中的諸多優(yōu)點,通過十位計數(shù)器的實例介紹了在MAX+plusⅡ環(huán)境下運用VHDL語言設(shè)計實際電路的具體方法和步驟。結(jié)果表明VHDL語言應(yīng)用于數(shù)字電路仿真的靈活性及直觀性。
關(guān)鍵詞:VHDL 數(shù)字電路 MAX+plusⅡ 仿真
0 引言
VHDL是70年代末和80年代初,由美國國防部為超高速集成電路VHSIC(Very Hight Speed Intergrated Circuit)計劃提出的硬件描述語言VHDL(VHSIC Hardware Description Language)。1983年7月,由Intermetrics公司和Texas Instruments公司組成開發(fā)小組,承擔(dān)了提出語言版本并開發(fā)其軟件環(huán)境的任務(wù)。其目的在于所開發(fā)的硬件描述語言具有功能強大、嚴格、可讀性好、通用性好、移植性好等特點,避免重復(fù)勞動,省時省力并能降低開發(fā)電子新產(chǎn)品的費用。利用計算機輔助設(shè)計自上而下的逐層完成相應(yīng)的描述,并與大規(guī)??删幊唐骷嘟Y(jié)合,使設(shè)計出的電路系統(tǒng)速度更快、體積更小、重量更輕、功耗更小、穩(wěn)定性更高,大大提高了產(chǎn)品的競爭能力。VHDL語言已日益成為一種通用的硬件設(shè)計交換媒介, MAX+PLUSⅡ計算機輔助工程軟件,提供了全面的邏輯設(shè)計能力,從編輯、綜合、布線到仿真、下載驗證一氣呵成,十分方便。
1 VHDL語言特點:
傳統(tǒng)的設(shè)計方法是基于中小規(guī)模集成電路器件進行設(shè)計(如74系列及其改進系列、CC4000系列、74HC系列等都屬于通用型數(shù)字集成電路),而且是采用自底向上進行設(shè)計:①首先確定可用的元器件;②根據(jù)這些器件進行邏輯設(shè)計,完成各模塊;③將各模塊進行連接,最后形成系統(tǒng);④而后經(jīng)調(diào)試、測量觀察整個系統(tǒng)是否達到規(guī)定的性能指標。
VHDL與電路圖設(shè)計電路的方式不同,和電路圖設(shè)計方式相比,具有以下特點:①易于修改;②設(shè)計能力更強;③VHDL語言很方便:獨立于器件設(shè)計;相同的程序代碼可以用于不同廠家生產(chǎn)的器件。④VHDL具有電路仿真與驗證功能,仿真結(jié)果直觀、形象。
2 VHDL程序的基本結(jié)構(gòu):
VHDL程序的基本結(jié)構(gòu)可分為:①LIBRARY和PACHAGE聲明區(qū);②ENTITY定義區(qū);③ARCHITECTURE定義區(qū);④CONFIGURATION定義區(qū)。
2.1 LIBRARY和PACKAGE聲明區(qū):Library(庫)是用于存放預(yù)先編譯好的Package(程序包)。Package(程序包)中定義了基本的常數(shù),數(shù)據(jù)類型,元件及子程序等。作用:聲明在實體和結(jié)構(gòu)體定義中將用到的數(shù)據(jù)類型、元件或子程序等。
聲明格式:Library 庫名;Use 庫名. PACKAGE名.All;
2.2 ENTITY定義區(qū):ENTITY(實體)用于定義電路的外觀,即I/O端口的類型和數(shù)量。
定義格式:Entity 實體名 is。Port(a:inbit;b:in bit;c:out bit);
End 實體名;其中a、b、c是端口名,in、out是端口模式,bit是數(shù)據(jù)類型。
2.3 ARCHITECTURE定義區(qū):定義了實體的實現(xiàn)。即電路的具體描述,說明電路執(zhí)行什么動作或?qū)崿F(xiàn)功能。
定義格式:Architecture 結(jié)構(gòu)體名 of 實體名 is
[聲明語句;(內(nèi)部信號、變量、常數(shù),元件,子程序聲明)]
Begin并行描述語句;End 結(jié)構(gòu)體名;
2.4 CONFIGURATION定義區(qū):當實體有多個結(jié)構(gòu)體時,系統(tǒng)默認實體選用最后一個結(jié)構(gòu)體,利用CONFIGURATION語句可以任意選擇采用哪一個結(jié)構(gòu)體。
定義格式:Configuration 配置名 of 實體名 is
for選用的結(jié)構(gòu)體名end for;end configuration 配置名;
3 十進制計數(shù)器的VHDL程序設(shè)計:
下面以十進制計數(shù)器為例簡單的介紹一下,用VHDL語言進行電路設(shè)計的具體過程。
3.1 功能:此十進制計數(shù)器的有一時鐘使能輸入端ENA,用于鎖定計數(shù)值。當高電平時計數(shù)允許,低電平時禁止計數(shù)。
3.2 語言程序設(shè)計:library ieee;use ieee.std_logic_1164.all;→library聲明區(qū);entity cnt10 isport(clk,clr,ena:in std_logic;—計數(shù)、清零、計數(shù)使能信號;co:out std_logic;—計數(shù)進位;cq:out integer range 0 to 15);—4位計數(shù)結(jié)果輸出end cnt10;entity定義區(qū)architecture behav of cnt10 is signal cqi:integer range 0 to 15;begin process(clk,clr,ena)begin if clk=‘1 then cqi<=0;—計數(shù)器異步清零elsif clk'event and clk=‘1 then if ena='1' then if cqi<9 then cqi<=cqi+1;—等于9,則清零else cqi<=0;end if;end if;end if;end process;process(cqi)beginif cqi=9 then co<=‘1;—進位輸出else co<=‘0;end if;end process;cq<=cqi;end behav;architecture定義區(qū)
3.3 VHDL語言的開發(fā)環(huán)境:以MAX+plusⅡ作為運行環(huán)境,支持原理圖、VHDL和Verilog語言文本文件,以及波形與EDIF等格式的文件作為設(shè)計輸入,并支持這些文件的任意混合設(shè)計。MAX+plusⅡ具有門級仿真器,可以進行功能仿真和時序仿真,能夠產(chǎn)生精確的仿真結(jié)果。在MAX+plusⅡ環(huán)境下用VHDL語言設(shè)計電路的全過程包括以下幾個步驟:①源文件的編輯:點擊“新建文件夾”在對話框中選擇“Text Editor file ”,按 “OK”按鈕,即選中了文本編輯方式。然后將上述程序輸入。輸入完畢后,選擇菜單“File→Save”,出現(xiàn)對話框,然后在“File Name”框中輸入文件名,然后按“OK”,文件即被存入。②系統(tǒng)的編譯:在編譯系統(tǒng)文件F_ADDER.GDF前,需要設(shè)置該文件為頂層文件Project。選擇菜單“File”→“Project”→“Set Project to Current File”,當前的工程即被設(shè)為F_ADDER。選擇“MAX+plusⅡ”→“Compiler”菜單,可運行編譯器,檢驗程序是否正確。③系統(tǒng)仿真:選擇菜單“File”→“New”,在對話框中選擇“Waveform Editor File”,按“OK”后將出現(xiàn)波形編輯器子窗口。選擇菜單“Node”→“Enter Nodes from SNF”,在出現(xiàn)的對話框中選擇“l(fā)ist”鍵,然后按“=〉”按鈕,在按下“OK”鍵,選中的信號將出現(xiàn)在波形編輯器中。編輯好輸入信號保存,再按下“MAX+plusⅡ”→“simulator”出現(xiàn)仿真結(jié)果。
CNT10的仿真波形如圖1:
該仿真波形,很直觀的將十位計數(shù)器的計數(shù)過程展現(xiàn)出來,同時也驗證了vhdl程序設(shè)計的可實現(xiàn)性。④系統(tǒng)下載:程序設(shè)計成功后,就可以下載到芯片上進行實驗操作了。如果MAX+plusⅡ是安裝后第一次調(diào)用編程器,則MAX+plusⅡ講彈出對話框選擇型號,以便調(diào)用正確的編程器驅(qū)動程序。其選擇方法是啟動“Programmer”,選菜單“Options”→“Hardware Setup”,在“Hardware Type”下拉欄中選“ByteBlaster”,按“OK”即可。用鼠標雙擊編程器子窗口或者選擇“MAX+plusⅡ”→“Programmer”菜單,可調(diào)出編程器(Programmer)窗口。在將設(shè)計文件編程配置進硬件芯片前,需連接好硬件測試系統(tǒng)。一切連接就緒后,方可按下編程器窗口中的“Configure”按鈕,無誤后,即可將所涉及的內(nèi)容下載到芯片中。下載成功后彈出的小窗口中顯示“Configuration Complete”。接下去就可以在實驗系統(tǒng)上進行實驗驗證。
4 小結(jié)
通過對十進制計數(shù)器的VHDL的仿真實現(xiàn),簡單的介紹了用VHDL語言進行數(shù)字電路設(shè)計的方法、步驟,表明了VHDL在數(shù)字電子電路的設(shè)計中具有設(shè)計方法靈活、硬件描述能力強、仿真結(jié)果直觀等特點。隨著集成電路技術(shù)的高速發(fā)展,數(shù)字系統(tǒng)迅速朝著更高集成度、超小型化、高性能、高可靠性和低功耗的系統(tǒng)級芯片方向發(fā)展,從而使電路設(shè)計逐步向高層設(shè)計轉(zhuǎn)移。作為一種設(shè)計技術(shù),VHDL已成為數(shù)字電路設(shè)計時一種重要的方法,為我們的學(xué)習(xí)、工作提供了很大的幫助。
參考文獻:
[1]曾繁泰,陳美金編著.VHDL程序設(shè)計.清華大學(xué)出版社.2000.
[2]劉潤華,單亦先編著.電子設(shè)計自動化.石油大學(xué)出版社.2001.9:35-41.
[3]譚會生,張昌凡編著.EDA技術(shù)與應(yīng)用.西安電子科技大學(xué)出版社.2001.
[4]王振紅編著.VHDL數(shù)字電路設(shè)計與應(yīng)用實踐教程.機械工業(yè)出版社.2003.6.
[5]潘松,王國棟編著.VHDL實用教程.清華大學(xué)出版社.2000.