2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  XXXXXX學(xué)院</b></p><p><b>  課 程 設(shè) 計(jì)</b></p><p>  題 目:EDA拔河游戲機(jī)課程設(shè)計(jì) </p><p>  作 者: XXX </p><p>  專 業(yè): 自動(dòng)化

2、 </p><p>  班 級(jí): XXX</p><p>  學(xué) 號(hào): XXXXX </p><p>  指導(dǎo)老師: XXX </p><p>  2012年12月15日</p><p>  主要內(nèi)容、基本要求、主要參考資料等</p>&

3、lt;p><b>  主要內(nèi)容:</b></p><p>  電子拔河游戲機(jī)是一種能容納甲乙雙方參賽游戲電路。由一排發(fā)光二極管表示拔河的“電子繩”。由甲乙雙方通過按紐開關(guān)使發(fā)光二極管向一方的終點(diǎn)延伸,當(dāng)延伸到某方的最后一個(gè)發(fā)光二極管時(shí), 則該方獲勝,連續(xù)比賽多局以定勝負(fù)。</p><p><b>  基本要求:</b></p>

4、<p>  1、設(shè)計(jì)一個(gè)能進(jìn)行拔河游戲的電路。</p><p>  2、電路使用9個(gè)發(fā)光二極管,開機(jī)后只有中間一個(gè)發(fā)亮,此即拔河的中心點(diǎn)。</p><p>  3、游戲雙方各持一個(gè)按鈕,迅速地、不斷地按動(dòng),產(chǎn)生脈沖,誰按得快,亮點(diǎn)就向誰的方向移動(dòng),每按一次,亮點(diǎn)移動(dòng)一次。</p><p>  4、亮點(diǎn)移到任一方終端二極管時(shí),這一方就獲勝,此時(shí)雙方按鈕均無

5、作用,輸出保持,只有復(fù)位后才使亮點(diǎn)恢復(fù)到中心。</p><p>  5、用數(shù)碼管顯示獲勝者的盤數(shù)。</p><p><b>  主要參考資料:</b></p><p>  [1] 潘松著.EDA技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.</p><p>  [2] 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:

6、高教出版社,2006.</p><p>  [3] 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.</p><p><b>  一、總體設(shè)計(jì)思想</b></p><p><b>  1.基本原理</b></p><p>  由設(shè)計(jì)內(nèi)容可知,需要一個(gè)十進(jìn)制的計(jì)數(shù)器,用于對(duì)雙方按鈕的次數(shù)計(jì)數(shù)

7、,并通過譯碼器顯示在數(shù)碼管上。顯視控制部分設(shè)計(jì)要求在發(fā)光二極管上顯示游戲狀態(tài),雙方每按十次,亮點(diǎn)向先按十次移動(dòng)一次,對(duì)脈沖進(jìn)行計(jì)數(shù),每十次移一位。需接入一個(gè)清零端,用于復(fù)位。將以上程序組裝起來。</p><p><b>  2.設(shè)計(jì)框圖</b></p><p>  圖1. 拔河機(jī)游戲機(jī)框圖</p><p>  二、設(shè)計(jì)步驟和調(diào)試過程</p

8、><p><b>  1、總體設(shè)計(jì)電路</b></p><p>  總體電路圖和仿真圖如圖(25)所示,由仿真圖可知,此電路設(shè)計(jì)無誤,可以實(shí)現(xiàn)按動(dòng)A、B兩個(gè)按鍵時(shí),分別產(chǎn)生兩個(gè)脈沖信號(hào),經(jīng)整形后分別加到可逆計(jì)數(shù)器上,可逆計(jì)數(shù)器輸出的代碼經(jīng)譯碼器譯碼后驅(qū)動(dòng)電平指示燈點(diǎn)亮并產(chǎn)生位移,當(dāng)亮點(diǎn)移到任何一方終端后,由于控制電路的作用,使這一狀態(tài)被鎖定,雙方按鍵產(chǎn)生的輸入脈沖不起作用

9、。如按動(dòng)復(fù)位鍵C,亮點(diǎn)又回到中點(diǎn)位置,再次按C鍵則比賽又可重新開始。</p><p><b>  圖2. 電路圖</b></p><p>  2、模塊設(shè)計(jì)和相應(yīng)模塊程序</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>  --計(jì)數(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)開關(guān)</p><p>  player1,player2:

15、in std_logic;--選手輸入</p><p>  sum1,sum2:out std_logic_vector(4 downto 0));--計(jì)數(shù)結(jié)果輸出</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)開關(guān)輸出</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);--計(jì)數(shù)結(jié)果輸入</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>  --倒計(jì)時(shí)模塊 </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;--時(shí)鐘信號(hào)</p><p><b>  --計(jì)數(shù)器輸出</b></p><p>  signal sum1,sum2:std_logic_vector(4 downto 0);--計(jì)數(shù)結(jié)果</p><p><b>  --比較器輸出</b></p>&l

27、t;p>  signal sw:std_logic;--狀態(tài)開關(guān)</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>  --倒計(jì)時(shí)器輸出</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);--計(jì)數(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);--計(jì)數(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,比賽結(jié)

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 --繩子到頭,進(jìn)入等待狀態(tài)</p><p>  tmp_sta<='0';</p><p><b>  end if;</b></p&g

47、t;<p>  if(reset='1') then--復(fù)位,狀態(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--繩子到左盡頭,左計(jì)分器加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));--計(jì)數(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);--計(jì)數(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)結(jié)束</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、仿真及仿真結(jié)果分析</p>

131、<p>  創(chuàng)建一個(gè)仿真波形文件,輸入引腳,并對(duì)所有input引腳付出值,保存仿真波形文件。開始仿真,若仿真沒有出錯(cuò),則可觀察仿真得到的波形圖。仿真波形圖如下:</p><p> ?。?)當(dāng)a輸入的頻率大于b時(shí),可觀察到led:低電平有規(guī)則的向左移動(dòng)。即向a方向移動(dòng),符合設(shè)計(jì)要求。見仿真圖1。</p><p> ?。?)改變輸入a b的大小,b的輸入頻率大于a,得到的波形如下

132、,由波形圖可知低電平向右邊移動(dòng),即向b方向移動(dòng),符合設(shè)計(jì)要求。見仿真圖2。</p><p><b>  仿真圖1</b></p><p><b>  仿真圖2</b></p><p><b>  4、實(shí)驗(yàn)調(diào)試結(jié)果</b></p><p>  編程下載及配置,選擇Assignme

133、nts —Assignments Editor ,在Assignments Edito窗口中選擇pin標(biāo)簽頁,按下圖分配引腳。重編譯,并進(jìn)行編程下載到SOPC開發(fā)板進(jìn)行功能驗(yàn)證。驗(yàn)證,按key 1和key10,觀察led燈和數(shù)碼管的顯示變化是否符合設(shè)計(jì)要求,如果和設(shè)計(jì)不符合對(duì)程序進(jìn)行更改,知道符合設(shè)計(jì)要求。</p><p><b>  三、結(jié)論及心得體會(huì)</b></p>&l

134、t;p>  EDA課程設(shè)計(jì)要求做一個(gè)拔河游戲機(jī),電路使用9個(gè)發(fā)光二極管,開后只有中間一個(gè)發(fā)亮,此即拔河的中心點(diǎn)。游戲雙方各持一個(gè)按鈕,迅速地、不斷地按動(dòng),產(chǎn)生脈沖,誰按得快,亮點(diǎn)就向誰的方向移動(dòng),每按十次,亮點(diǎn)移動(dòng)一次。亮點(diǎn)移到任一方終端二極管時(shí),這一方就獲勝,此時(shí)雙方按鈕均無作用,輸出保持,只有復(fù)位后才使亮點(diǎn)恢復(fù)到中心。用數(shù)碼管顯示雙方按鍵的次數(shù)。</p><p>  通過這次課程設(shè)計(jì),我更加感到理論和實(shí)

135、際之間的差異很大。我也越來越強(qiáng)烈地感到要掌握一門技術(shù),唯一的辦法也是最好的辦法就是實(shí)踐。只有通過實(shí)踐才能將書本上的知識(shí)應(yīng)用,也只有實(shí)踐才能發(fā)現(xiàn)很多問題,真正掌握知識(shí),學(xué)以致用。雖然遇到的問題很多,但是同時(shí)得到很多有用的經(jīng)驗(yàn)。這些對(duì)于以后的學(xué)習(xí)和工作都是很有用的。</p><p><b>  四、參考資料</b></p><p>  [1] 潘 松,EDA技術(shù)實(shí)用教程

136、(第二版). 北京:科學(xué)出版社,2005.</p><p>  [2] 譚京生,EDA技術(shù)及應(yīng)用[M],西安:西安電子科技大學(xué)出版社,2001</p><p>  [3] 徐志軍,CPLD/FPGA的開發(fā)與應(yīng)用[M],北京:電子工業(yè)出版社,2001</p><p>  [4] 朱正偉,EDA技術(shù)與應(yīng)用[M],北京:清華大學(xué)出版社,2005</p>&l

溫馨提示

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

評(píng)論

0/150

提交評(píng)論