版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> XXXXXX學院</b></p><p><b> 課 程 設 計</b></p><p> 題 目:EDA拔河游戲機課程設計 </p><p> 作 者: XXX </p><p> 專 業(yè): 自動化
2、 </p><p> 班 級: XXX</p><p> 學 號: XXXXX </p><p> 指導老師: XXX </p><p> 2012年12月15日</p><p> 主要內(nèi)容、基本要求、主要參考資料等</p>&
3、lt;p><b> 主要內(nèi)容:</b></p><p> 電子拔河游戲機是一種能容納甲乙雙方參賽游戲電路。由一排發(fā)光二極管表示拔河的“電子繩”。由甲乙雙方通過按紐開關使發(fā)光二極管向一方的終點延伸,當延伸到某方的最后一個發(fā)光二極管時, 則該方獲勝,連續(xù)比賽多局以定勝負。</p><p><b> 基本要求:</b></p>
4、<p> 1、設計一個能進行拔河游戲的電路。</p><p> 2、電路使用9個發(fā)光二極管,開機后只有中間一個發(fā)亮,此即拔河的中心點。</p><p> 3、游戲雙方各持一個按鈕,迅速地、不斷地按動,產(chǎn)生脈沖,誰按得快,亮點就向誰的方向移動,每按一次,亮點移動一次。</p><p> 4、亮點移到任一方終端二極管時,這一方就獲勝,此時雙方按鈕均無
5、作用,輸出保持,只有復位后才使亮點恢復到中心。</p><p> 5、用數(shù)碼管顯示獲勝者的盤數(shù)。</p><p><b> 主要參考資料:</b></p><p> [1] 潘松著.EDA技術實用教程(第二版). 北京:科學出版社,2005.</p><p> [2] 康華光主編.電子技術基礎 模擬部分. 北京:
6、高教出版社,2006.</p><p> [3] 閻石主編.數(shù)字電子技術基礎. 北京:高教出版社,2003.</p><p><b> 一、總體設計思想</b></p><p><b> 1.基本原理</b></p><p> 由設計內(nèi)容可知,需要一個十進制的計數(shù)器,用于對雙方按鈕的次數(shù)計數(shù)
7、,并通過譯碼器顯示在數(shù)碼管上。顯視控制部分設計要求在發(fā)光二極管上顯示游戲狀態(tài),雙方每按十次,亮點向先按十次移動一次,對脈沖進行計數(shù),每十次移一位。需接入一個清零端,用于復位。將以上程序組裝起來。</p><p><b> 2.設計框圖</b></p><p> 圖1. 拔河機游戲機框圖</p><p> 二、設計步驟和調(diào)試過程</p
8、><p><b> 1、總體設計電路</b></p><p> 總體電路圖和仿真圖如圖(25)所示,由仿真圖可知,此電路設計無誤,可以實現(xiàn)按動A、B兩個按鍵時,分別產(chǎn)生兩個脈沖信號,經(jīng)整形后分別加到可逆計數(shù)器上,可逆計數(shù)器輸出的代碼經(jīng)譯碼器譯碼后驅動電平指示燈點亮并產(chǎn)生位移,當亮點移到任何一方終端后,由于控制電路的作用,使這一狀態(tài)被鎖定,雙方按鍵產(chǎn)生的輸入脈沖不起作用
9、。如按動復位鍵C,亮點又回到中點位置,再次按C鍵則比賽又可重新開始。</p><p><b> 圖2. 電路圖</b></p><p> 2、模塊設計和相應模塊程序</p><p><b> 1.頂層文件</b></p><p> library IEEE;</p><p
10、> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> entity bahe is</p><p><b> port(</b></p><p> player1,player2:in std_l
11、ogic;--玩家1,2輸入</p><p> clk_in:in std_logic;--clk_in(1MHZ)</p><p> reset:in std_logic;--重置鍵</p><p> row : out std_logic_vector(7 downto 0);</p><p> col : out
12、 std_logic_vector(7 downto 0);</p><p> led:out std_logic_vector(7 downto 0);--繩子</p><p> cats:out std_logic_vector(6 downto 0);--比分</p><p> q:out std_logic_vector(5 downto 0);
13、--數(shù)碼管控制</p><p> mus:out std_logic);--蜂鳴輸出</p><p><b> end bahe;</b></p><p> architecture body_bahe of bahe is</p><p><b> --計數(shù)模塊</b><
14、;/p><p> component count</p><p><b> port(</b></p><p> clk_1:in std_logic;--1HZ輸入</p><p> sw:in std_logic;--狀態(tài)開關</p><p> player1,player2:
15、in std_logic;--選手輸入</p><p> sum1,sum2:out std_logic_vector(4 downto 0));--計數(shù)結果輸出</p><p> end component;</p><p><b> --比較模塊</b></p><p> component cmp&l
16、t;/p><p><b> port(</b></p><p> clk_100:in std_logic;--100hz</p><p> clk_1:in std_logic;--1hz</p><p> sw:out std_logic;--狀態(tài)開關輸出</p><p> r
17、eset:in std_logic;--重置</p><p> start:in std_logic;--開始</p><p> sum1,sum2:in std_logic_vector(4 downto 0);--計數(shù)結果輸入</p><p> music_begin:out std_logic;--音樂</p><p
18、> record1,record2:out std_logic_vector(1 downto 0);--比分輸出</p><p> lights:out std_logic_vector(2 downto 0));--拔河繩子顯示</p><p> end component;</p><p><b> --音樂模塊</b>
19、;</p><p> component music</p><p><b> port(</b></p><p> reset:in std_logic;--重置</p><p> clk:in std_logic;--1MHz</p><p> clk_5
20、:in std_logic;--5hz</p><p> music_begin:in std_logic;--音樂開始</p><p> mus:out std_logic);</p><p> end component;</p><p><b> --譯碼模塊</b><
21、/p><p> component decode</p><p><b> port(</b></p><p> clk_in:in std_logic;--1mHZ</p><p> record1,record2:in std_logic_vector(1 downto 0);--比分輸入</p>
22、;<p> lights:in std_logic_vector(2 downto 0);--拔河繩子輸入</p><p> led:out std_logic_vector(7 downto 0);--輸出到LED</p><p> q:buffer std_logic_vector(5 downto 0);--數(shù)碼管控制</p><p&g
23、t; cats:out std_logic_vector(6 downto 0)--數(shù)碼管顯示比分</p><p><b> );</b></p><p> end component;</p><p><b> --倒計時模塊 </b></p><p> component daoj
24、ishi</p><p><b> port(</b></p><p> clk_in,clk_1,reset:in std_logic;</p><p> row : out std_logic_vector(7 downto 0);</p><p> col : out std_logic_vector(7
25、downto 0);</p><p> start: out std_logic</p><p><b> );</b></p><p> end component;</p><p><b> --分頻器輸出</b></p><p> signal clk_10
26、0,clk_5,clk_1:std_logic;--時鐘信號</p><p><b> --計數(shù)器輸出</b></p><p> signal sum1,sum2:std_logic_vector(4 downto 0);--計數(shù)結果</p><p><b> --比較器輸出</b></p>&l
27、t;p> signal sw:std_logic;--狀態(tài)開關</p><p> signal record1,record2:std_logic_vector(1 downto 0);--比分</p><p> signal lights:std_logic_vector(2 downto 0);--繩子</p><p> signal
28、 music_begin:std_logic;</p><p><b> --解碼器輸出</b></p><p> signal tmp_led:std_logic_vector(7 downto 0);--LED顯示</p><p> signaltmp_q:std_logic_vector(5 downto 0);--數(shù)碼管控
29、制</p><p> signal tmp_cat:std_logic_vector(6 downto 0);--數(shù)碼管顯示比分</p><p><b> --倒計時器輸出</b></p><p> signal tmp_start:std_logic;</p><p><b> begin<
30、/b></p><p> cats<=tmp_cat;</p><p><b> q<=tmp_q;</b></p><p> led<=tmp_led;</p><p> div:division port map(clk_in=>clk_in,clk_100=>clk_1
31、00,clk_5=>clk_5,clk_1=>clk_1);</p><p> cnt:count port map(</p><p> clk_1=>clk_1,sw=>sw,player1=>player1,player2=>player2,</p><p> sum1=>sum1,sum2=>sum2);
32、</p><p> com:cmp port map(</p><p> clk_100=>clk_100,clk_1=>clk_1,sw=>sw,reset=>reset,</p><p> start=>tmp_start,sum1=>sum1,sum2=>sum2,music_begin=>music_b
33、egin,</p><p> record1=>record1,record2=>record2,lights=>lights);</p><p> dec:decode port map(</p><p> clk_in=>clk_in,record1=>record1,record2=>record2,</p&g
34、t;<p> lights=>lights,led=>tmp_led,q=>tmp_q,cats=>tmp_cat);</p><p> mu:music port map(</p><p> reset=>reset,clk=>clk_in,clk_5=>clk_5,</p><p> music
35、_begin=>music_begin,mus=>mus);</p><p> dao:daojishi port map(</p><p> clk_in=>clk_in,clk_1=>clk_1,reset=>reset,</p><p> start=>tmp_start,col=>col,row=>ro
36、w);</p><p> end body_bahe;</p><p><b> 2.CMP模塊</b></p><p> library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_un
37、signed.all;</p><p> entity cmp is</p><p> port(clk_100:in std_logic;--100HZ輸入</p><p> clk_1:in std_logic;--1HZ輸入</p><p> reset:in std_logic;
38、--重置</p><p> start:in std_logic;--開始</p><p> sum1,sum2:in std_logic_vector(4 downto 0);--計數(shù)輸入</p><p> record1,record2:out std_logic_vector(1 downto 0);--比分輸出</p&g
39、t;<p> music_begin:out std_logic;--音樂開始</p><p> sw:out std_logic;--狀態(tài)輸出</p><p> lights:out std_logic_vector(2 downto 0));--繩子狀態(tài)</p><p><b> end c
40、mp;</b></p><p> architecture body_cmp of cmp is</p><p> signal tmp_record1:std_logic_vector(1 downto 0);--比分</p><p> signal tmp_record2:std_logic_vector(1 downto 0);</
41、p><p> signal tmp:std_logic_vector(2 downto 0);--繩子狀態(tài)</p><p> signal tmp_sta:std_logic;--狀態(tài)</p><p> signal s1,s2:std_logic_vector(4 downto 0);--計數(shù)</p><p&g
42、t;<b> begin </b></p><p> record1<=tmp_record1;</p><p> record2<=tmp_record2;</p><p> lights<=tmp;</p><p> sw<=tmp_sta;</p><p>
43、 process(clk_100)--判斷比賽狀態(tài)</p><p><b> begin</b></p><p> if(start='1') then</p><p> if(clk_100'event and clk_100='1') then</p>&l
44、t;p> tmp_sta<='1';</p><p><b> end if;</b></p><p><b> end if;</b></p><p> if(clk_100'event and clk_100='1') then--任意比分到3,比賽結
45、束,開始播放音樂</p><p> if(tmp_record1="11" or tmp_record2="11") then</p><p> tmp_sta<='0';</p><p> music_begin<='1';</p><p><
46、b> end if;</b></p><p> if(tmp="001" or tmp="111") then --繩子到頭,進入等待狀態(tài)</p><p> tmp_sta<='0';</p><p><b> end if;</b></p&g
47、t;<p> if(reset='1') then--復位,狀態(tài)歸零</p><p> tmp_sta<='0';</p><p> music_begin<='0';</p><p><b> end if;</b></p><
48、p><b> end if;</b></p><p> end process;</p><p><b> s1<=sum1;</b></p><p> s2<=sum2;</p><p> process(clk_1,reset)--控制繩子移位&l
49、t;/p><p><b> begin</b></p><p> if(reset='1') then</p><p> tmp<="100";--繩子初始狀態(tài)為100</p><p> tmp_record1<="00";&
50、lt;/p><p> tmp_record2<="00";</p><p><b> else</b></p><p> if(clk_1'event and clk_1='1') then</p><p> if(tmp_sta='1') t
51、hen</p><p> if(s1>s2) then tmp<=tmp-'1';--繩子左移</p><p> elsif(s1=s2) then tmp<=tmp;--繩子保持原狀</p><p> else tmp<=tmp+'1';--繩子右移</p><p
52、><b> end if;</b></p><p><b> else</b></p><p> if(tmp="001") then--繩子到左盡頭,左計分器加1</p><p> tmp_record1<=tmp_record1+'1';</p&g
53、t;<p> tmp<="100";</p><p> elsif(tmp="111") then--繩子到右盡頭,右記分器加1,</p><p> tmp_record2<=tmp_record2+'1';</p><p> tmp<="100&qu
54、ot;;</p><p><b> end if;</b></p><p> end if;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process
55、;</p><p> end body_cmp;</p><p><b> 3.COUT模塊</b></p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> enti
56、ty count is</p><p> library IEEE;</p><p> port(clk_1:in std_logic;--1HZ輸入 </p><p> sw:in std_logic;--狀態(tài)判斷輸入</p><p> player1,player2:in std_logic;
57、--選手輸入</p><p> sum1,sum2:out std_logic_vector(4 downto 0));--計數(shù)輸出</p><p> end count;</p><p> architecture body_count of count is</p><p> signal p1,p2:std_logic
58、_vector(4 downto 0);--計數(shù)輸出</p><p><b> begin</b></p><p><b> sum1<=p1;</b></p><p><b> sum2<=p2;</b></p><p> process(playe
59、r1,player2,sw,clk_1)</p><p><b> begin</b></p><p> if(sw='1') then--處于比賽狀態(tài)</p><p> if(clk_1='0') then</p><p> if(player1'even
60、t and player1='1') then</p><p> p1<=p1+'1';</p><p><b> end if;</b></p><p> if(player2'event and player2='1') then</p><p>
61、 p2<=p2+'1';</p><p><b> end if;</b></p><p><b> else</b></p><p> p1<="00000";</p><p> p2<="00000";</
62、p><p> end if;--比賽狀態(tài)結束</p><p> else p1<="00000";</p><p> p2<="00000";</p><p><b> end if;</b></p><p> end p
63、rocess;</p><p> end body_count;</p><p> 4.daojishi模塊</p><p> library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.al
64、l;</p><p> entity daojishi is</p><p> port(clk_1,clk_in,reset: in std_logic;</p><p> row : out std_logic_vector(7 downto 0);</p><p> col : out std_logic_vector(7 do
65、wnto 0);</p><p> start : out std_logic);</p><p> end daojishi;</p><p> architecture body_daojishi of daojishi is</p><p> type state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s
66、9,s10);</p><p> signal present_state:state:=s10; </p><p> signal num:std_logic_vector(2 downto 0):="000";</p><p><b> begin</b></p><p> p3:proc
67、ess(clk_in)</p><p><b> begin</b></p><p> if clk_in'event and clk_in='1' then</p><p> if num="101" then num<="000";</p><p
68、> else num<=num+1;</p><p> case present_state is</p><p><b> when s9=></b></p><p> case num is</p><p> when "000"=> col<="
69、11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01110100";</p><p> when "010"=> col<="1110
70、1111"; row<="01010100";</p><p> when "011"=> col<="11110111"; row<="01010100";</p><p> when "100"=> col<="11111011
71、"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> w
72、hen s8=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<=
73、"11011111"; row<="01111100";</p><p> when "010"=> col<="11101111"; row<="01010100";</p><p> when "011"=> col<=&quo
74、t;11110111"; row<="01010100";</p><p> when "100"=> col<="11111011"; row<="01111100";</p><p> when others=> col<="00000000&qu
75、ot;; row<="00000000";</p><p><b> end case;</b></p><p><b> when s7=></b></p><p> case num is</p><p> when "000"=>
76、; col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01000000";</p><p> when "010"=> co
77、l<="11101111"; row<="01000000";</p><p> when "011"=> col<="11110111"; row<="01000000";</p><p> when "100"=> col<
78、;="11111011"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p
79、><b> when s6=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001&quo
80、t;=> col<="11011111"; row<="01111100";</p><p> when "010"=> col<="11101111"; row<="01010100";</p><p> when "011"=&
81、gt; col<="11110111"; row<="01010100";</p><p> when "100"=> col<="11111011"; row<="01011100";</p><p> when others=> col<=&
82、quot;00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> when s5=></b></p><p> case num is</p><p> when &qu
83、ot;000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01110100";</p><p> when "0
84、10"=> col<="11101111"; row<="01010100";</p><p> when "011"=> col<="11110111"; row<="01010100";</p><p> when "100&q
85、uot;=> col<="11111011"; row<="01011100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b>&
86、lt;/p><p><b> when s4=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> wh
87、en "001"=> col<="11011111"; row<="01110000";</p><p> when "010"=> col<="11101111"; row<="00010000";</p><p> when &
88、quot;011"=> col<="11110111"; row<="00010000";</p><p> when "100"=> col<="11111011"; row<="01111100";</p><p> when other
89、s=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> when s3=></b></p><p> case num is</p><
90、;p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="01010100";</p><p&g
91、t; when "010"=> col<="11101111"; row<="01010100";</p><p> when "011"=> col<="11110111"; row<="01010100";</p><p>
92、when "100"=> col<="11111011"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end
93、case;</b></p><p><b> when s2=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111";</p>
94、;<p> when "001"=> col<="11011111"; row<="01011100";</p><p> when "010"=> col<="11101111"; row<="01010100";</p>&
95、lt;p> when "011"=> col<="11110111"; row<="01010100";</p><p> when "100"=> col<="11111011"; row<="01110100";</p><p
96、> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p><b> when s1=></b></p><p> case num i
97、s</p><p> when "000"=> col<="11111111"; row<="11111111";</p><p> when "001"=> col<="11011111"; row<="00000000";<
98、;/p><p> when "010"=> col<="11101111"; row<="00000000";</p><p> when "011"=> col<="11110111"; row<="00000000";</p&
99、gt;<p> when "100"=> col<="11111011"; row<="01111100";</p><p> when others=> col<="00000000"; row<="00000000";</p><p>
100、;<b> end case;</b></p><p><b> when s0=></b></p><p> case num is</p><p> when "000"=> col<="11111111"; row<="11111111
101、";</p><p> when "001"=> col<="11011111"; row<="01111100";</p><p> when "010"=> col<="11101111"; row<="01000100&quo
102、t;;</p><p> when "011"=> col<="11110111"; row<="01000100";</p><p> when "100"=> col<="11111011"; row<="01111100";&
103、lt;/p><p> when others=> col<="00000000"; row<="00000000";</p><p><b> end case;</b></p><p> when others=></p><p> case num
104、is</p><p> when "000"=> col<="00000000"; row<="00000000";</p><p> when "001"=> col<="00000000"; row<="00000000";&l
105、t;/p><p> when "010"=> col<="00000000"; row<="00000000";</p><p> when "011"=> col<="00000000"; row<="00000000";</p
106、><p> when "100"=> col<="00000000"; row<="00000000";</p><p> when others=> col<="00000000"; row<="00000000";</p><p&g
107、t;<b> end case;</b></p><p><b> end case;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p3;&
108、lt;/p><p> p4:process(clk_1)</p><p><b> begin</b></p><p> if reset='1' then present_state<=s10;start<='0';</p><p><b> else <
109、/b></p><p> if clk_1'event and clk_1='1' then</p><p> case present_state is</p><p> when s10=> present_state<=s9;start<='0';</p><p>
110、 when s9=> present_state<=s8;start<='0';</p><p> when s8=> present_state<=s7;start<='0';</p><p> when s7=> present_state<=s6;start<='0';&
111、lt;/p><p> when s6=> present_state<=s5;start<='0';</p><p> when s5=> present_state<=s4;start<='0';</p><p> when s4=> present_state<=s3;star
112、t<='0';</p><p> when s3=> present_state<=s2;start<='0';</p><p> when s2=> present_state<=s1;start<='0';</p><p> when s1=> prese
113、nt_state<=s0;start<='1';</p><p> when s0=> present_state<=present_state;</p><p> when others=>null;start<='1';</p><p><b> end case;</b&
114、gt;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process p4;</p><p> end body_daojishi;</p><p> library IEEE;<
115、/p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_unsigned.all;</p><p> entity decode is</p><p> port(clk_in:in std_logic;--1MHz</p><p
116、> record1,record2:in std_logic_vector(1 downto 0);--比分狀態(tài)輸入</p><p> lights:in std_logic_vector(2 downto 0);--繩子狀態(tài)輸入</p><p> led:out std_logic_vector(7 downto 0);--繩子解碼后輸出</p>
117、<p> q:buffer std_logic_vector(5 downto 0);--數(shù)碼管控制</p><p> cats:out std_logic_vector(6 downto 0));--數(shù)碼管顯示</p><p> end decode;</p><p> architecture body_decode of d
118、ecode is</p><p> signal tmp_led:std_logic_vector(7 downto 0);--繩子輸出</p><p> signal tmp_da1:std_logic_vector(6 downto 0);--比分1</p><p> signal tmp_da2:std_logic_vector(6 down
119、to 0);--比分2</p><p> signal tmp:std_logic_vector(6 downto 0);--比分顯示</p><p><b> begin</b></p><p> led<=tmp_led;</p><p> cats<=tmp;</p>
120、<p> process(clk_in,lights,record1,record2,q,tmp_da2,tmp_da1,tmp)</p><p><b> begin</b></p><p> case lights is--繩子狀態(tài)</p><p> when "100"=>
121、tmp_led<="00010000";</p><p> when "011"=> tmp_led<="00001000";</p><p> when "010"=> tmp_led<="00000100";</p><p>
122、when "001"=> tmp_led<="00000010";</p><p> when "101"=> tmp_led<="00100000";</p><p> when "110"=> tmp_led<="01000000&quo
123、t;;</p><p> when "111"=> tmp_led<="10000000";</p><p> when others =>tmp_led<="00010000";</p><p><b> end case;</b></p>
124、<p> case record1 is--比分狀態(tài)</p><p> when "00"=> tmp_da1<="1111110";</p><p> when "01"=> tmp_da1<="0110000";</p><p&
125、gt; when "10"=> tmp_da1<="1101101";</p><p> when "11"=> tmp_da1<="1111001";</p><p><b> end case;</b></p><p> case
126、 record2 is--比分狀態(tài)</p><p> when "00"=> tmp_da2<="1111110";</p><p> when "01"=> tmp_da2<="0110000";</p><p> when "
127、10"=> tmp_da2<="1101101";</p><p> when "11"=> tmp_da2<="1111001";</p><p> end case;</p><p> if(clk_in='1') then</p>
128、<p> q<="111110";</p><p><b> end if;</b></p><p> if(clk_in='0') then</p><p> q<="011111";</p><p><b> end
129、 if;</b></p><p> case q is--數(shù)碼管顯示控制</p><p> when "011111"=> tmp<=tmp_da2;</p><p> when "111110"=> tmp<=tmp_da1;</p><p
130、> when others=> tmp<="0000000";</p><p><b> end case;</b></p><p> end process;</p><p> end body_decode;</p><p> 3、仿真及仿真結果分析</p>
131、<p> 創(chuàng)建一個仿真波形文件,輸入引腳,并對所有input引腳付出值,保存仿真波形文件。開始仿真,若仿真沒有出錯,則可觀察仿真得到的波形圖。仿真波形圖如下:</p><p> (1)當a輸入的頻率大于b時,可觀察到led:低電平有規(guī)則的向左移動。即向a方向移動,符合設計要求。見仿真圖1。</p><p> (2)改變輸入a b的大小,b的輸入頻率大于a,得到的波形如下
132、,由波形圖可知低電平向右邊移動,即向b方向移動,符合設計要求。見仿真圖2。</p><p><b> 仿真圖1</b></p><p><b> 仿真圖2</b></p><p><b> 4、實驗調(diào)試結果</b></p><p> 編程下載及配置,選擇Assignme
133、nts —Assignments Editor ,在Assignments Edito窗口中選擇pin標簽頁,按下圖分配引腳。重編譯,并進行編程下載到SOPC開發(fā)板進行功能驗證。驗證,按key 1和key10,觀察led燈和數(shù)碼管的顯示變化是否符合設計要求,如果和設計不符合對程序進行更改,知道符合設計要求。</p><p><b> 三、結論及心得體會</b></p>&l
134、t;p> EDA課程設計要求做一個拔河游戲機,電路使用9個發(fā)光二極管,開后只有中間一個發(fā)亮,此即拔河的中心點。游戲雙方各持一個按鈕,迅速地、不斷地按動,產(chǎn)生脈沖,誰按得快,亮點就向誰的方向移動,每按十次,亮點移動一次。亮點移到任一方終端二極管時,這一方就獲勝,此時雙方按鈕均無作用,輸出保持,只有復位后才使亮點恢復到中心。用數(shù)碼管顯示雙方按鍵的次數(shù)。</p><p> 通過這次課程設計,我更加感到理論和實
135、際之間的差異很大。我也越來越強烈地感到要掌握一門技術,唯一的辦法也是最好的辦法就是實踐。只有通過實踐才能將書本上的知識應用,也只有實踐才能發(fā)現(xiàn)很多問題,真正掌握知識,學以致用。雖然遇到的問題很多,但是同時得到很多有用的經(jīng)驗。這些對于以后的學習和工作都是很有用的。</p><p><b> 四、參考資料</b></p><p> [1] 潘 松,EDA技術實用教程
136、(第二版). 北京:科學出版社,2005.</p><p> [2] 譚京生,EDA技術及應用[M],西安:西安電子科技大學出版社,2001</p><p> [3] 徐志軍,CPLD/FPGA的開發(fā)與應用[M],北京:電子工業(yè)出版社,2001</p><p> [4] 朱正偉,EDA技術與應用[M],北京:清華大學出版社,2005</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論