傳統(tǒng)的硬件電路設(shè)計(jì)方法是采用自下而上的設(shè)計(jì)方法,即根據(jù)系統(tǒng)對(duì)硬件的要求,詳細(xì)編制技術(shù)規(guī)格書(shū),并畫(huà)出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書(shū)和系統(tǒng)控制流圖,對(duì)系統(tǒng)的功能進(jìn)行細(xì)化,合理地劃分功能模塊,并畫(huà)出系統(tǒng)的功能框圖;接著就進(jìn)行各功能模塊的細(xì)化和電路設(shè)計(jì);各功能模塊電路設(shè)計(jì)、調(diào)試完成后,將各功能模塊的硬件電路連接起來(lái)再進(jìn)行系統(tǒng)的調(diào)試,最后完成整個(gè)系統(tǒng)的硬件設(shè)計(jì)。采用傳統(tǒng)方法設(shè)計(jì)數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時(shí),設(shè)計(jì)者必須具備較好的設(shè)計(jì)經(jīng)驗(yàn),而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計(jì)者帶來(lái)諸多的不便。
為了提高開(kāi)發(fā)的效率,增加已有開(kāi)發(fā)成果的可繼承性以及縮短開(kāi)發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開(kāi)發(fā)了具有自己特色的電路硬件描述語(yǔ)言(Hardware Description Language,簡(jiǎn)稱HDL)。但這些硬件描述語(yǔ)言差異很大,各自只能在自己的特定設(shè)計(jì)環(huán)境中使用,這給設(shè)計(jì)者之間的相互交流帶來(lái)了極大的困難。因此,開(kāi)發(fā)一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語(yǔ)言作為可相互交流的設(shè)計(jì)環(huán)境已勢(shì)在必行。于是,美國(guó)于1981年提出了一種新的、標(biāo)準(zhǔn)化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,簡(jiǎn)稱VHDL。這是一種用形式化方法來(lái)描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語(yǔ)言。設(shè)計(jì)者可以利用這種語(yǔ)言來(lái)描述自己的設(shè)計(jì)思想,然后利用電子設(shè)計(jì)自動(dòng)化工具進(jìn)行仿真,再自動(dòng)綜合到門級(jí)電路,最后用PLD實(shí)現(xiàn)其功能。
vhdl特點(diǎn)
與其他硬件描述語(yǔ)言相比,VHDL具有以下特點(diǎn):
功能強(qiáng)大、設(shè)計(jì)靈活
VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。
支持廣泛、易于修改
由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過(guò)程中,主要的設(shè)計(jì)文件是用VHDL編寫(xiě)的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。
強(qiáng)大的系統(tǒng)硬件描述能力
VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來(lái)較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。
獨(dú)立于器件的設(shè)計(jì)、與工藝無(wú)關(guān)
設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能。
很強(qiáng)的移植能力
VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。
易于共享和復(fù)用
VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。
vhdl20秒倒計(jì)時(shí)源代碼
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity js is
port(clk_1s,rst,s:in std_logic;
ta,tb:out integer range 0 to 9);
end js;
architecture one of js is signal co:std_logic;
signal ta1,tb1:integer range 0 to 9;
begin
p1:process(clk_1s,rst,s,ta1) begin
if rst=‘0’ then
ta1<=4;
elsif clk_1s‘event and clk_1s=’1‘ then
co<=’0‘;
if s=’1‘ then
if ta1= 0 then
ta1<=9;
co<=’1‘;
else ta1<=ta1-1;
end if;
end if;
end if;
end process p1;
p2:process(co,rst,s,tb1)
begin
if rst=’0‘ then
tb1<=1;
elsif co’event and co=‘1’ then
if s=‘1’ then
if tb1=0 then
tb1<=1;
else tb1<=tb1-1;
end if; end if;
end if;
end process p2;
ta<=ta1;
tb<=tb1;
end one;
評(píng)論