六人搶答器設計報告_第1頁
六人搶答器設計報告_第2頁
六人搶答器設計報告_第3頁
六人搶答器設計報告_第4頁
六人搶答器設計報告_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上湖南人文科技學院課程設計報告課程名稱:VHDL語言與EDA課程設計設計題目: 六人搶答器 系 別: 通信與控制工程系 專 業: 電子信息工程 班 級: 電子信息一班 學生姓名: 學 號: 起止日期: 2009年12月21日 2009年12月30日 指導教師: 教研室主任: 專心-專注-專業指導教師評語: 指導教師簽名: 年 月 日成績評定項 目權重成績1、設計過程中出勤、學習態度等方面0.22、課程設計質量與答辯0.53、設計報告書寫及圖紙規范程度0.3總 成 績 教研室審核意見:教研室主任簽字: 年 月 日教學系審核意見: 主任簽字: 年 月 日摘 要本次設計在ED

2、A開發平臺QUARTUS6.0上利用VHDL語言設計六人搶答器電路。電路中設有六個搶答鍵,可供六人同時搶答;我們利用一個二十進制計數器,將其輸入頻率設定為一赫茲,成功實現了二十秒倒計時的功能;我們利用VHDL語言中的IF和CASE語句結合空操作語句NULL實現開始搶答與超前搶答的區別;各個模塊配以一時鐘頻率由蜂鳴器輸出可實現搶答成功、超前搶答犯規、超時搶答等各種情況的報警效果;本設計采用的是杭州康芯電子有限公司生產的GW48系列/SOPC/EDA實驗開發系統,FPGA目標芯片型號為Altera公司的Cyclone系列中的EPIC6Q240C8。芯片配置成功后鎖定引腳下載即可進行硬件測試:選擇實

3、驗電路結構圖NO.5,使CLK1與CLKOCK5相接(接受1024Hz時鐘頻率),CLK 與CLOCK0相接(接受1Hz時鐘頻率),報警輸出接SPEAK,六位選手分別對應實驗箱上的16鍵,鍵7為搶答開始鍵,當其未按下就進行搶答則為超前犯規,按下后二十秒倒計時開始,選手進行搶答,按實驗箱上的復位鍵則可重新開始下一輪的搶答。關鍵詞:六人搶答器;數碼顯示;信號封鎖;犯規報警。目 錄六人搶答器設計要求搶答臺數為6;具有搶答開始后20秒倒計時,20秒倒計時后六人搶答顯示超時,并報警;能顯示超前搶答臺號并顯示犯規報警;系統復位后進入搶答狀態,當有一路搶答按鍵按下,該路搶答信號將其余各路搶答信號封鎖,同時鈴

4、聲響起,直至該路按鍵松開,顯示牌顯示該路搶答臺號。1 總體設計方案論論證與對比1.1 方案一 該方案方框圖如圖1:二十秒倒計時模塊數碼管蜂鳴器鎖存器模塊搶答鑒別模塊按鍵輸入圖1 方案一方框圖在該方案中,由二十秒倒計時模塊、搶答鑒別模塊、鎖存器模塊等模塊組成3。蜂鳴器和數碼管分別起報警和顯示臺號的作用。但該方案中的數碼管顯示是由七段顯示器的形式來顯示臺號的,由于實驗箱電路結構與按鍵數目的限定,使得我們沒有采用該方案。1.2 方案二 該方案方框圖如圖2:圖2 方案二方框圖搶答成功按鍵判別模塊蜂鳴器搶答報警模塊數碼管 超前搶答判別模塊譯碼器二十秒倒計時 模塊按鍵輸入此方案中整個電路主要由超前搶答判別

5、模塊、二十秒倒計時模塊、搶答成功按鍵模塊、搶答報警模塊四個模塊組成4。其臺號的顯示都是將信號送入譯碼器譯碼之后再由數碼管顯示出來,結合前面六位選手的按鍵及開始鍵可得實驗箱上模式5的電路結構滿足硬件測試的要求。所以我們選定該方案來進行我們這次的課程設計。2頂層電路VHDL程序設計頂層電路VHDL程序如下USE ieee.std_logic_1164.all; LIBRARY work;ENTITY jinaghu IS port(rst : IN STD_LOGIC;-搶答開始鍵clk : IN STD_LOGIC;-計數器時鐘輸入clk1 : IN STD_LOGIC;-蜂鳴器時鐘輸入AIN

6、: IN STD_LOGIC_VECTOR(6 downto 1);-選手按鍵speak : OUT STD_LOGIC;-蜂鳴器cout : OUT STD_LOGIC; -超時搶答報警 shuma : OUT STD_LOGIC_VECTOR(3 downto 0);-搶答成功顯示臺號數碼管shuma1 : OUT STD_LOGIC_VECTOR(3 downto 0);shuma2 : OUT STD_LOGIC _VECTOR(3 downto 0); shuma3 : OUT STD_LOGIC_VECTOR(3 downto 0);shuma4 : OUT STD_LOGIC_V

7、ECTOR(3 downto 0);shuma5 : OUT STD_LOGIC_VECTOR(3 downto 0);shuma6 : OUT STD_LOGIC_VECTOR(3 downto 0);END jinaghu;ARCHITECTURE bdf_type OF jinaghu IS component anjian -元件U1例化PORT(rst : IN STD_LOGIC; AIN6 : IN STD_LOGIC_VECTOR(6 downto 1); shuma : OUT STD_LOGIC_VECTOR(3 downto 0);end component;compon

8、ent chaoqian -元件U2例化PORT(clk1 : IN STD_LOGIC; rst : IN STD_LOGIC; AIN6 : IN STD_LOGIC_VECTOR(6 downto 1); speak : OUT STD_LOGIC; shuma1 : OUT STD_LOGIC_VECTOR(3 downto 0); shuma2 : OUT STD_LOGIC_VECTOR(3 downto 0); shuma3 : OUT STD_LOGIC_VECTOR(3 downto 0); shuma4 : OUT STD_LOGIC_VECTOR(3 downto 0);

9、 shuma5 : OUT STD_LOGIC_VECTOR(3 downto 0); shuma6 : OUT STD_LOGIC_VECTOR(3 downto 0);end component;component daojishi -元件U3例化PORT(clk : IN STD_LOGIC; clk1 : IN STD_LOGIC; rst : IN STD_LOGIC; shuma : IN STD_LOGIC_VECTOR(3 downto 0); speak : OUT STD_LOGIC; cout : OUT STD_LOGIC);end component;componen

10、t qiangdabao -元件U3例化PORT(rst : IN STD_LOGIC; clk1 : IN STD_LOGIC; AIN6 : IN STD_LOGIC_VECTOR(6 downto 1); speak : OUT STD_LOGIC);end component;signalSYNTHESIZED_WIRE_17 : STD_LOGIC_VECTOR(3 downto 0);signalSYNTHESIZED_WIRE_1 : STD_LOGIC;signalSYNTHESIZED_WIRE_2 : STD_LOGIC;signalSYNTHESIZED_WIRE_3 :

11、 STD_LOGIC;signalSYNTHESIZED_WIRE_4 : STD_LOGIC;signalSYNTHESIZED_WIRE_18 : STD_LOGIC_VECTOR(3 downto 0);signalSYNTHESIZED_WIRE_19 : STD_LOGIC_VECTOR(3 downto 0);signalSYNTHESIZED_WIRE_20 : STD_LOGIC_VECTOR(3 downto 0);BEGIN shuma3 = SYNTHESIZED_WIRE_17(3);shuma2 = SYNTHESIZED_WIRE_17(2);shuma1 = SY

12、NTHESIZED_WIRE_17(1);shuma0 = SYNTHESIZED_WIRE_17(0);shuma13 = SYNTHESIZED_WIRE_18(3);shuma12 = SYNTHESIZED_WIRE_18(2);shuma11 = SYNTHESIZED_WIRE_18(1);shuma10 = SYNTHESIZED_WIRE_18(0);shuma23 = SYNTHESIZED_WIRE_19(3);shuma22 = SYNTHESIZED_WIRE_19(2);shuma21 = SYNTHESIZED_WIRE_19(1);shuma20 = SYNTHE

13、SIZED_WIRE_19(0);shuma33 = SYNTHESIZED_WIRE_20(3);shuma32 = SYNTHESIZED_WIRE_20(2);shuma31 = SYNTHESIZED_WIRE_20(1);shuma30 rst, AIN6 = AIN, shuma = SYNTHESIZED_WIRE_17); -參數傳遞映射語句b2v_inst1 : chaoqian PORT MAP(clk1 = clk1, rst = rst, AIN6 = AIN, speak = SYNTHESIZED_WIRE_1, shuma1 = SYNTHESIZED_WIRE_

14、18, shuma2 = SYNTHESIZED_WIRE_19, shuma3 = SYNTHESIZED_WIRE_20, shuma4 = shuma4, shuma5 = shuma5, shuma6 = shuma6);b2v_inst2 : daojishi PORT MAP(clk = clk, clk1 = clk1, rst = rst, shuma = SYNTHESIZED_WIRE_17, speak = SYNTHESIZED_WIRE_3, cout = cout);b2v_inst3 : qiangdabao PORT MAP(rst = rst, clk1 =

15、clk1, AIN6 = AIN, speak = SYNTHESIZED_WIRE_2);SYNTHESIZED_WIRE_4 = SYNTHESIZED_WIRE_1 OR SYNTHESIZED_WIRE_2 OR SYNTHESIZED_WIRE_3;speak = NOT(SYNTHESIZED_WIRE_4);END;3 單元模塊程序設計根據頂層原理圖,共分為anjian模塊、chaoqian模塊、daojishi模塊、qiangdabao模塊這四個模塊。其中anjian模塊的功能是鎖定搶答成功的選手的臺號并顯示,chaoqian模塊可將超前搶答了的選手臺號顯示出來并伴隨報警,da

16、ojishi模塊進行二十秒倒計時并顯示超時報警,qiangdabao模塊主要是為搶答成功之后提供報警功能2。3.1 二十秒倒計時模塊 3.1.1二十秒倒計時模塊原理圖圖3 二十秒倒計時模塊3.1.2二十秒倒計時模塊VHDL程序設計1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity daojishi isport (clk,clk1,rst: in std_logic; shuma: inout std_logic_vector(3 downto 0);-主數碼管 speak : out

17、 std_logic; cout: inout std_logic);-進位,可用于超時顯示 end daojishi;architecture one of daojishi isbeginprocess(clk,rst)variable cqi : std_logic_vector(7 downto 0);begin if (rst=1) and (clkevent and clk=1) then if cqi0); end if; end if; if (cqi20) and (cqi23) then cout=1; else cout=0; end if; if (cout=1) an

18、d (shuma=0000) and (rst=1)then speak=clk1;-無人搶答,超時報警else speak=0;end if;end process;end one;3.2 搶答成功選手按鍵模塊 3.2.1搶答成功選手按鍵模塊原理圖圖4 搶答成功選手按鍵模塊 3.2.2 搶答成功選手按鍵模塊VHDL程序設計library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity anjian isport (rst: in std_logic; AIN6: in std_logic_vect

19、or(6 downto 1);-六位選手搶答輸入 shuma:out std_logic_vector(3 downto 0);-主數碼管 end anjian ;architecture one of anjian isbeginprocess(AIN6,rst)variable temp: std_logic_vector(3 downto 0); beginif rst=1 then if AIN6= then temp:=0000; elsif AIN6= then temp:=0001 ; -1 elsif AIN6= then temp:=0010 ; -2 elsif AIN6=

20、 then temp:=0011 ; -3 elsif AIN6= then temp:=0100 ; -4 elsif AIN6= then temp:=0101 ; -5 elsif AIN6= then temp:=0110 ; -6 else null; end if;end if;shuma=temp;end process;end one;3.3 超前搶答犯規模塊 3.3.1超前搶答犯規模塊原理圖圖5 超前搶答犯規模塊3.3.2超前搶答犯規模塊VHDL程序設計library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_un

21、signed.all;entity chaoqian isport (clk1,rst: in std_logic; AIN6:in std_logic_vector(6 downto 1); speak : out std_logic; shuma1,shuma2,shuma3:out std_logic_vector(3 downto 0); shuma4,shuma5,shuma6:out std_logic_vector(3 downto 0); end chaoqian;architecture one of chaoqian issignal abc:std_logic_vecto

22、r(6 downto 0);begin abcshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0000;shuma3=0011;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=

23、0100;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=

24、0011;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0000;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=

25、0010;shuma3=0011;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=

26、0000;shuma2=0000;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0000;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0000;shuma2=0000;shuma3=0011;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0000;

27、speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=0000;shuma5=0000;shuma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0000;s

28、huma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=0011;shuma4=0000;s

29、huma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=0011;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=0000;s

30、huma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0000;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=0010;s

31、huma3=0000;shuma4=0100;shuma5=0101;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0000;shuma2=0000;shuma3=0011;shuma4=0100;shuma5=0101;shuma6=0000; speakshuma1=0000;s

32、huma2=0000;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0000;shuma2=0000;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0000;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0110; speakshuma1=0000;shuma2=0000;shuma3=0011;shuma4=0100;shuma5=0101;shuma6=0110; speaks

33、huma1=0000;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0110; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0100;shuma6=0110; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0101;shuma6=

34、0000; speakshuma1=0001;shuma2=0000;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=0011;shuma4=0100;shuma5=

35、0101;shuma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=

36、0000;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0000; speakshuma1=0000;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0000;shuma3=

37、0011;shuma4=0100;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0000;shuma4=0100;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=0000;shuma5=0101;shuma6=0110; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0000;shuma6=0110; speakshuma1=0001;shuma2=

38、0010;shuma3=0011;shuma4=0100;shuma5=0101;shuma6=0000; speakshuma1=0001;shuma2=0010;shuma3=0011;shuma4=0100;shuma5=0101;shuma6=0110; speak shuma1=0000;shuma2=0000;shuma3=0000;shuma4=0000;shuma5=0000;shuma6=0000; speak=0; end case; end process;end one;3.4 搶答成功報警模塊3.4.1搶答成功報警模塊原理圖圖6 搶答成功報警模塊3.4.2搶答成功報警

39、模塊VHDL程序設計5library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qiangdabao isport (rst,clk1: in std_logic; AIN6: in std_logic_vector(6 downto 1); speak : out std_logic); end qiangdabao;architecture one of qiangdabao isbeginprocess(rst,AIN6(1),AIN6(2),AIN6(3),AIN6(4),AIN6(5

40、),AIN6(6) beginif (rst=1) and (AIN6(1) or AIN6(2) or AIN6(3) or AIN6(4) or AIN6(5) or AIN6(6)=1) then speak=clk1;-有人搶答成功,報警 else speak=0;end if; end process;end one;4 六人搶答器電路系統仿真及功能分析與調試4.1 分立模塊的仿真4.1.1二十秒倒計時模塊的仿真 (1)波形仿真將所編寫的二十秒倒計時模塊daojishi的程序設為工程,選用Altera公司的Cyclone系列中的EPIC6Q240C8為目標芯片進行仿真。仿真結果如下圖

41、:圖7 二十秒倒計時模塊仿真結果(2)模塊功能分析當搶答開始后(rst為1),若二十秒內無人搶答,則報警燈亮(cout為1),同時蜂鳴器進行報警(speak的輸出頻率為clk1的頻率),綜上可得二十秒倒計時并超時報警的功能要求。 4.1.2搶答成功選手按鍵模塊的仿真(1)波形仿真 將編寫的搶答成功選手按鍵模塊anjian的程序設為工程,選用Altera公司的Cyclone系列中的EPIC6Q240C8為目標芯片進行仿真。仿真結果如下圖:圖8 搶答成功選手按鍵模塊仿真結果(2)模塊功能分析搶答開始后,各位選手可進行搶答,其中最先搶答的選手的臺號將顯示于數碼管shuma上,從仿真波形圖上我們可以看出當1號選手最先搶答后,其它選手再按搶答鍵無效,顯示臺只顯示1號選手的臺號。4.1.3超前搶答犯規模塊的仿真(1)波形仿真將編寫的超前搶答犯規模塊chaoqian的程序設為工程,選用Altera公司的Cyclone系列中的EPIC6Q240C8為目標芯片進行仿真。仿真結果如下圖9:圖9 超前搶答犯規模塊仿真結果(2)模塊功能分析當開始鍵為0(未開始)時,無論哪位選手搶答即為超前搶答犯規,其臺號將分別顯示于各自的數碼管上,同時蜂鳴器進行報警。4.1.4搶答成功報警模塊(1)波形仿真將編寫的搶答成功報警模塊qiangdabao的程序設為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論