豆曉東 倪春偉 周振
摘 要:針對(duì)實(shí)際應(yīng)用的需要,利用可編程邏輯器件設(shè)計(jì)了搶答器。該搶答器單元電路的軟件設(shè)計(jì)利用硬件描述語(yǔ)言設(shè)計(jì)完成。設(shè)計(jì)了控制主電路、數(shù)字顯示電路、編碼譯碼電路功能,并利用Quartus工具軟件完成了編譯仿真驗(yàn)證;硬件選擇FLEX10K系列的EPF10K10LC84-4芯片來(lái)實(shí)現(xiàn)搶答器的系統(tǒng)功能。該搶答器具有很強(qiáng)的功能擴(kuò)充性,應(yīng)用效果良好。
關(guān)鍵詞:可編程邏輯器件;搶答器;硬件描述語(yǔ)言;仿真;系統(tǒng)可編程
中圖分類(lèi)號(hào):TM571.61
1 FLEX10K
FLEX10K系列器件首次采用嵌入式陣列,其容量高達(dá)25萬(wàn)門(mén)。由于它的高密度和易于在設(shè)計(jì)中實(shí)現(xiàn)復(fù)雜宏函數(shù)和存儲(chǔ)器,因此可以把一個(gè)子系集成在單一芯片上,而每個(gè)FLEX10K器件都包含一個(gè)嵌入式陣列,每個(gè)嵌入式陣列可以實(shí)現(xiàn)專(zhuān)用的功能,因此嵌入式陣列可以減少芯片的體積,使其運(yùn)行速度更快,使用更靈活。
2 VHLD硬件描述語(yǔ)言簡(jiǎn)介
VHDL最早是由美國(guó)國(guó)防部提出的。作為硬件描述語(yǔ)言的第一個(gè)國(guó)際標(biāo)準(zhǔn),VHDL描述電路行為的算法有很多優(yōu)點(diǎn):
(1)設(shè)計(jì)層次較高,用于較復(fù)雜的計(jì)算時(shí),能盡早發(fā)現(xiàn)存在的問(wèn)題,縮短設(shè)計(jì)周期。(2)獨(dú)立實(shí)現(xiàn)、修改方便。(3)移植性強(qiáng),其源代碼已成為一種輸入標(biāo)準(zhǔn),可用于各種不同的EDA工具。(4)VHDL類(lèi)型眾多而且支持用戶(hù)自定義類(lèi)型,支持自頂而下的設(shè)計(jì)方法和多種電路的設(shè)計(jì)。
3 QuartusⅡ簡(jiǎn)介
Altera的QuartusⅡ設(shè)計(jì)軟件繼承了MAX+plusⅡ的所有優(yōu)點(diǎn),是更加完善的PLD設(shè)計(jì)工具。它提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿(mǎn)足特定設(shè)計(jì)需要,為可編程芯片系統(tǒng)(SOPC)提供全面的設(shè)計(jì)環(huán)境。
4 設(shè)計(jì)思路
設(shè)計(jì)制作一個(gè)競(jìng)賽搶答器,每組受控于一個(gè)搶答按鍵,分別為s0、s1、s2、s3,設(shè)置主持人控制鍵rst,用于控制整個(gè)系統(tǒng)清零和搶答有效控制。按下復(fù)位鍵時(shí),系統(tǒng)清零;抬起復(fù)位鍵時(shí),搶答開(kāi)始;系統(tǒng)具有第一搶答信號(hào)鑒別和鎖存功能。在主持人將系統(tǒng)復(fù)位并使搶答有效開(kāi)始后,第一搶答者按下?lián)尨鸢粹o,電路應(yīng)記憶下第一搶答者的組別,并封鎖其他各組的按鈕,即其他任何一組按鍵都不會(huì)使電路響應(yīng);系統(tǒng)以?xún)煞N方式指示第一搶答者:一是通過(guò)對(duì)應(yīng)的輸出引腳讓數(shù)碼管顯示組別號(hào);二是在第一搶答者產(chǎn)生時(shí),蜂鳴器響起。
5 原理分析
5.1 搶答器鑒別模塊
在這個(gè)模塊中主要實(shí)現(xiàn)搶答過(guò)程中的搶答功能,還能記錄搶答者的臺(tái)號(hào),并且能實(shí)現(xiàn)當(dāng)有一路搶答按鍵按下時(shí),其余各路被封鎖的功能。其中有四個(gè)搶答信號(hào)s0、s1、s2、s3;搶答使能信號(hào)s;搶答狀態(tài)顯示信號(hào)states;搶答與警報(bào)時(shí)鐘信號(hào)clk2;系統(tǒng)復(fù)位信號(hào)rst;警報(bào)信號(hào)tmp。
5.2 報(bào)警模塊(已包含在搶答鑒別模塊里)
在這個(gè)模塊中主要實(shí)現(xiàn)搶答過(guò)程中的報(bào)警功能,當(dāng)主持人按下控制鍵,有人搶答時(shí)蜂鳴器開(kāi)始報(bào)警,有效電平輸入信號(hào)i;狀態(tài)輸出信號(hào)q;計(jì)數(shù)脈沖clk2。
5.3 譯碼模塊
在這個(gè)模塊中主要實(shí)現(xiàn)搶答過(guò)程中將選手的臺(tái)號(hào)轉(zhuǎn)換成二進(jìn)制碼并送給數(shù)碼管顯示。
各模塊程序如下:
搶答鑒別模塊:
library ieee;--搶答鑒別模塊
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity qdjb is
port(rst,clk2:in std_logic;
s0,s1,s2,s3:in std_logic;
states:buffer std_logic_vector(3 downto 0);
tmp:out std_logic);
end qdjb;
architecture one of qdjb is
signal st:std_logic_vector(3 downto 0);
begin
p1:process(s0,rst,s1,s2,s3,clk2)
begin
if rst='0' then
tmp<='0';st<="0000";
elsif clk2'event and clk2='1' then
if (s0='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' ) then st(0)<='1';
end if ;
if (s1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' ) then st(1)<='1';
end if ;
if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' ) then st(2)<='1';
end if ;
if (s3='1' or st(3)='1')and not( st(0)='1' or st(1)='1' or st(2)='1' ) then st(3)<='1';
end if ;
tmp<=s0 or s1 or s2 or s3;
end if ;
end process p1;
p2:process(states(0),states(1),states(2),states(3))
begin
if (st="0000") then states<="0000";
elsif (st<="0001") then states<="0001";
elsif (st<="0010") then states<="0010";
elsif (st<="0100") then states<="0011";
elsif (st<="1000") then states<="0100";
end if;
end process p2;
end one;
譯碼模塊:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY YMQ IS
PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END YMQ;
ARCHITECTURE ART OF YMQ IS
BEGIN
PROCESS(AIN4)
BEGIN
CASE AIN4 IS
WHEN "0001"=>DOUT7<="0110000"; --1
WHEN "0010"=>DOUT7<="1101101" --2
WHEN "0011"=>DOUT7<="1111001"; --3
WHEN "0100"=>DOUT7<="0110011"; --4
WHEN OTHERS=>DOUT7<="0000000";
END CASE;
END PROCESS;
END ARCHITECTURE ART;
6 結(jié)束語(yǔ)
本文利用硬件描述高級(jí)語(yǔ)言VHDL設(shè)計(jì)的優(yōu)點(diǎn)完成了對(duì)應(yīng)單元的電路設(shè)計(jì),使系統(tǒng)較為簡(jiǎn)潔合理。利用復(fù)雜可編程器件實(shí)現(xiàn)了搶答器的系統(tǒng)功能,使電路引腳定義自如,實(shí)際印板布線(xiàn)靈活,應(yīng)用可靠。通過(guò)以實(shí)例可以看出,用VHDL語(yǔ)言設(shè)計(jì)數(shù)字系統(tǒng),是自上至下地進(jìn)行設(shè)計(jì),十分方便靈活。由于VHDL具有并行同時(shí)語(yǔ)句,設(shè)計(jì)的電路延遲小。
參考文獻(xiàn):
[1]譚會(huì)生,瞿遂春.EDA技術(shù)綜合應(yīng)用實(shí)例與分析[M].西安:西安電子科技大學(xué)出版社,2004.
[2]李國(guó)洪,胡輝,沈明山.EDA技術(shù)與實(shí)驗(yàn)[M].北京:機(jī)械工業(yè)出版社,2008.
[3]王道憲,賀名臣,劉偉.VHDL電路設(shè)計(jì)技術(shù)[M].北京:國(guó)防工業(yè)出版社,2004.
計(jì)算機(jī)光盤(pán)軟件與應(yīng)用2013年10期