国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VHD 的四路搶答器的設(shè)計(jì)實(shí)現(xiàn)

2015-06-02 12:14董小瓊
電腦知識(shí)與技術(shù) 2015年9期
關(guān)鍵詞:EDA技術(shù)搶答器設(shè)計(jì)

董小瓊

摘要:VHDL 是一種標(biāo)準(zhǔn)的硬件描述語言,是當(dāng)今電子設(shè)計(jì)自動(dòng)化( EDA) 的核心技術(shù),越來越多的硬件設(shè)計(jì)者使用VHDL描述數(shù)字系統(tǒng)。本文通過四路搶答器的設(shè)計(jì)實(shí)例,介紹了利用VHDL設(shè)計(jì)電路的流程和方法,突出了它與傳統(tǒng)的電子電路設(shè)計(jì)方法相比較而表現(xiàn)出的優(yōu)越性。

關(guān)鍵詞:EDA技術(shù);數(shù)字系統(tǒng);VHDL語言;搶答器;設(shè)計(jì)

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)09-0093-03

Abstract: VHDL is a standard hardware description language, is the core of the modern electronic design automation (EDA) technology, more and more designers using VHDL hardware description number system. In this paper, by the example of the design of four way responder, introduces the process and method of VHDL circuit design, highlighting its advantages and electronic circuit design method of the traditional comparison shows.

Key words: EDA technology; Digital system; VHDL language; Responder; Design

EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫,如今EDA技術(shù)已成為電子設(shè)計(jì)領(lǐng)域里一種重要的電子系統(tǒng)設(shè)計(jì)手段,通過EDA技術(shù)能夠?qū)崿F(xiàn)利用軟件的方式來設(shè)計(jì)硬件系統(tǒng)。而傳統(tǒng)的電子系統(tǒng)設(shè)計(jì)方案一般是選擇具有固定功能的標(biāo)準(zhǔn)集成電路和分立元器件,構(gòu)建單元電路,最后將各單元電路連接在一起進(jìn)行整機(jī)調(diào)試,從而實(shí)現(xiàn)系統(tǒng)功能。這種設(shè)計(jì)方法因其手工設(shè)計(jì)占有很大比重,調(diào)試工作也較復(fù)雜,故不便于進(jìn)行復(fù)雜電路的設(shè)計(jì)與調(diào)試,例外,查找和修改電路中的錯(cuò)誤也不方便,可移植性差,且只能在生產(chǎn)出樣機(jī)后才能進(jìn)行實(shí)測。而以EDA軟件為平臺(tái),以VHDL硬件描述語言來編程設(shè)計(jì)數(shù)字系統(tǒng),只需要經(jīng)過設(shè)計(jì)輸入、項(xiàng)目編譯、項(xiàng)目校驗(yàn)、項(xiàng)目編程配置四步,在這四步中只有設(shè)計(jì)輸入過程由設(shè)計(jì)者完成,其他三步則采用EDA軟件平臺(tái)自動(dòng)完成,且在設(shè)計(jì)的各個(gè)階段均可用計(jì)算機(jī)仿真驗(yàn)證,這樣極大地簡化了設(shè)計(jì)的工作量,縮短了系統(tǒng)開發(fā)周期,提高了工作效率。

目前,硬件描述語言以VHDL、Verilog HDL最為流行,它們都是IEEE的標(biāo)準(zhǔn)語言。我國以VHDL作為電子設(shè)計(jì)自動(dòng)化硬件描述語言的國家標(biāo)準(zhǔn)。VHDL進(jìn)行復(fù)雜電路設(shè)計(jì)時(shí),往往采用自頂向下結(jié)構(gòu)化的設(shè)計(jì)方法,先對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì), 按功能劃分成若干單元模塊, 然后對(duì)每個(gè)單元模塊進(jìn)一步細(xì)分編程。在程序結(jié)構(gòu)上,VHDL包含實(shí)體和結(jié)構(gòu)體兩個(gè)基本部分,完整的VHDL結(jié)構(gòu)還包括配置、程序包和庫。下面介紹基于VHDL的簡易四路搶答器的設(shè)計(jì)過程。

1 系統(tǒng)功能與要求

搶答器可容納四組參賽者同時(shí)搶答,每組設(shè)置一個(gè)按鈕供搶答者使用。搶答器設(shè)置使能端(即主持人發(fā)出搶答開始指令端),當(dāng)此信號(hào)有效時(shí),如參賽者按下?lián)尨痖_關(guān),搶答器判斷第一搶答者并指示該組搶答成功,其他組搶答開關(guān)失效,若提前搶答,發(fā)出警報(bào)。系統(tǒng)具有清零功能。當(dāng)清零端有效時(shí),搶答器對(duì)前一輪搶答的判斷清零,恢復(fù)為初始狀態(tài)。

2 系統(tǒng)的設(shè)計(jì)分析

根據(jù)系統(tǒng)要求,我們需要設(shè)置四個(gè)按鈕分別為a,b,c,d作為搶答器的四組輸入信號(hào),當(dāng)按鈕按下時(shí)其值對(duì)應(yīng)為“1”表示有搶答信號(hào),否則無搶答信號(hào), a,b,c,d為標(biāo)準(zhǔn)邏輯類型,搶答成功者用數(shù)碼管顯示其編號(hào),同時(shí)對(duì)應(yīng)的指示燈亮。

根據(jù)系統(tǒng)要求我們還需要設(shè)置主持人搶答開始指令按鈕G,當(dāng)按鈕按下其值為“1”,表明可以開始搶答,提前搶答則報(bào)警信號(hào)False為“1”發(fā)出報(bào)警。清零按鈕K,按下時(shí)其值為“1”,系統(tǒng)清零。

3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

我們?cè)贛AX+plussII的環(huán)境中進(jìn)行本任務(wù)的設(shè)計(jì),MAX+plussII是美國ALtera公司提供的FPGA、CPLD開發(fā)集成環(huán)境,其界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。其對(duì)電子系統(tǒng)進(jìn)行設(shè)計(jì)的第一步就是設(shè)計(jì)輸入,這里我們采用VHDL硬件描述語言輸入。硬件描述語言邏輯描述能力強(qiáng),在描述復(fù)雜設(shè)計(jì)時(shí),非常簡潔,具有很強(qiáng)的邏輯描述和仿真功能。

3.1 VHDL的實(shí)體設(shè)計(jì)

一個(gè)VHDL程序必須包括實(shí)體(ENTITY)和結(jié)構(gòu)體(ARCHITECTURE),設(shè)計(jì)實(shí)體是用來定義電路模塊或系統(tǒng)的外部輸入輸出端口,描述它與其他部分(模塊)之間的連接關(guān)系,這一部分如同是一個(gè)“黑匣子”,描述時(shí)并不需要考慮電路內(nèi)部的性能和具體工作。根據(jù)本設(shè)計(jì)的要求及分析,本設(shè)計(jì)的實(shí)體部分定義輸入端口為:一個(gè)清零輸入端口、一個(gè)主持人搶答指令輸入端口,另外還有四個(gè)搶答者搶答按鈕的輸入端口。輸出端口為:一個(gè)提前搶答報(bào)警信號(hào)輸出端口、搶答成功對(duì)應(yīng)的指示燈信號(hào)輸出端口4個(gè),搶答成功者編號(hào)的七段數(shù)碼管顯示的對(duì)應(yīng)輸出端口。

實(shí)體部分的VHDL代碼如下:

entity qiangda is

port(K: in std_logic; --清零端口

G : in std_logic; --搶答指令端

a,b,c,d: in std_logic; --搶答按鈕

false: out std_logic_; --提前搶答警報(bào)

q: out std_logic_vector(3 downto 0));

Dout:out std_logic_vector(6 downto 0); --搶答成功顯示

end qiangda;

3.2 VHDL的結(jié)構(gòu)體設(shè)計(jì)

VHDL的結(jié)構(gòu)體主要用來描述電路模塊或系統(tǒng)的邏輯功能,是程序設(shè)計(jì)的核心部分。在利用VHDL 語言進(jìn)行編程時(shí)只需要描述清楚各信號(hào)或變量之間的邏輯關(guān)系, 而不需要受到實(shí)際信號(hào)流向的約束。因此在對(duì)四路搶答器進(jìn)行編程時(shí), 我們只需要判斷幾個(gè)特殊的狀態(tài), 并給出結(jié)果, 不符合特殊狀態(tài)則正常顯示搶答者編號(hào)。這里特殊狀態(tài)是:主持人有清零信號(hào)時(shí),結(jié)果是均無顯示。在主持人沒發(fā)搶答指令前,如有搶答信號(hào),其結(jié)果是發(fā)出報(bào)警。否則,正常搶答時(shí),哪組先搶答,對(duì)應(yīng)指示燈亮,并且數(shù)碼管顯示其編號(hào),其他組搶答無效。在結(jié)構(gòu)體里,我們只需將上述的邏輯關(guān)系描述清楚就可以了。

結(jié)構(gòu)體部分的VHDL代碼如下:

architecture ab of qiangda is

signal tmp :std_logic_vector(3 downto 0);

signal tag: std_logic; --設(shè)置鎖存信號(hào)

signal D :std_logic_vector(3 downto 0);

begin

tmp<=a&b&c&d;

process(K, G, a,b,c,d)

begin

if K=‘1 then -- 清零

D<="0000";

false<='0';

tag<='0';

elsif G=‘0 then --提前搶答警報(bào)

if (tmp/=“0000”) then

false<='1'; end if;

Else --開始搶答

false<=‘0; --警報(bào)信號(hào)清零

if tag=‘0 then --判斷是否有人搶答成功

if tmp=“1000” then --A搶答成功

D<=“1000”; --顯示搶答成功

tag<=‘1; --搶答成功,鎖存此狀態(tài)

elsif tmp="0100" then

D<="0100";

tag<='1';

elsif tmp="0010" then

D<="0010";

tag<='1';

elsif tmp="0001" then

D<="0001";

tag<='1';

end if;

end if;

end if;

q<= D;

end process;

process(D) --顯示搶答成功者號(hào)碼

begin

case D is

when “0000” =>Dout<= “0111111”;

when “0001” =>Dout<= “0000110”;

when “0010” =>Dout<= “1011011”;

when “0100” =>Dout<= “1001111”;

when “1000” =>Dout<= “1100110”;

when others =>Dout<= “0000000”;

end case;

end process;

end ab;

3.3 項(xiàng)目的編譯

完成程序輸入后,可開始對(duì)其進(jìn)行編譯。在“MAX+plus II”菜單中選擇“Compiler”,即可打開編譯器。選擇“Start” 就可開始編譯。編譯的目的是驗(yàn)證設(shè)計(jì)結(jié)果是否符合規(guī)則, 若有錯(cuò)誤,編譯器將停止編譯,并在下面的信息框中給出錯(cuò)誤信息,雙擊錯(cuò)誤信息條,一般可給出錯(cuò)誤之處。將錯(cuò)誤排除后再編譯。編譯成功后可生成時(shí)序模擬文件及器件編程文件。

3.4 項(xiàng)目的校驗(yàn)

編輯的程序文件編譯成功后即可進(jìn)行時(shí)序仿真和定時(shí)分析,定時(shí)分析是利用項(xiàng)目管理窗口下的定時(shí)分析器分析當(dāng)前設(shè)計(jì)項(xiàng)目的性能。時(shí)序仿真通過建立波形文件觀察仿真波形是否符合要求以檢驗(yàn)設(shè)計(jì)項(xiàng)目的邏輯是否正確,是進(jìn)一步對(duì)設(shè)計(jì)功能實(shí)現(xiàn)狀況的檢驗(yàn),仿真過程不涉及具體的硬件特性,但它是接近真實(shí)器件運(yùn)行特性的仿真,仿真精度非常高。

3.5 器件的編程或配置

通過仿真和定時(shí)分析后,如符合系統(tǒng)要求則可以通過編程器或下載電纜將設(shè)計(jì)下載到PLD器件中。對(duì)CPLD結(jié)構(gòu)的器件下載稱為編程,對(duì)FPGA結(jié)構(gòu)的器件下載常稱為配置。下載結(jié)束后,PLD器件即是一個(gè)符合邏輯要求的四路搶答器,就可以進(jìn)行硬件測試和驗(yàn)證了。

4 結(jié)束語

本文通過簡易四路搶答器的設(shè)計(jì)實(shí)例, 說明了利用VHDL 語言設(shè)計(jì)數(shù)字系統(tǒng)的基本方法和流程。這是一個(gè)以軟件設(shè)計(jì)為主, 可以將整個(gè)數(shù)字系統(tǒng)實(shí)現(xiàn)在一個(gè)可編程芯片上的設(shè)計(jì), 并且在多個(gè)步驟中都可以進(jìn)行檢測排除錯(cuò)誤,相對(duì)于傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法而言,其優(yōu)越性已經(jīng)越來越明顯,而且這種技術(shù)已滲透到各行各業(yè),對(duì)于復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì),我們應(yīng)優(yōu)先考慮此種設(shè)計(jì)方法。

參考文獻(xiàn):

[1] 萬春迎. 基于VHDL的數(shù)字時(shí)鐘設(shè)計(jì)[J]. 科技信息,2008(12).

[2] 詹仙寧.VHDL開發(fā)精解與實(shí)例剖析[M].北京:電子工業(yè)出版社,2009.

[3] 于潤偉.EDA基礎(chǔ)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2010.

[4] 關(guān)吉.基于VHDL 語言的交通控制器設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù),2014(10).

[5] 郭勇.EDA技術(shù)基礎(chǔ)[M] .2版.北京.機(jī)械工業(yè)出版社,2012.9.

猜你喜歡
EDA技術(shù)搶答器設(shè)計(jì)
瞞天過?!律O(shè)計(jì)萌到家
4路搶答器的設(shè)計(jì)與研發(fā)
設(shè)計(jì)秀
有種設(shè)計(jì)叫而專
基于STC12C5A60S2單片機(jī)的6路搶答器設(shè)計(jì)
EDA技術(shù)在數(shù)字電子技術(shù)教學(xué)中的探索
多路競賽搶答器電路的仿真設(shè)計(jì)
設(shè)計(jì)之味