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

下載本文檔

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

文檔簡介

1、<p><b>  多</b></p><p><b>  功</b></p><p><b>  能</b></p><p><b>  電</b></p><p><b>  子</b></p><p

2、><b>  時</b></p><p><b>  鐘 </b></p><p><b>  報</b></p><p><b>  告</b></p><p><b>  一、實驗目的</b></p>

3、<p>  1.學習數(shù)字系統(tǒng)設計的自頂向下設計法及控制器的設計。 </p><p>  2.加深利用EDA技術實現(xiàn)數(shù)字系統(tǒng)的體會。</p><p><b>  二、實驗儀器及器件</b></p><p>  1.EDA 開發(fā)軟件(Quartus7.2)(1套) 2.電腦(1臺)</p><p> 

4、 3.實驗板(1個) </p><p>  三、實驗要求及設計方案</p><p>  1.設計一個具有24進制計時、顯示、整點報時、時間設置和鬧鐘功能的數(shù)字鐘,要求時鐘的最小分辨率時間為1s。</p><p>  2.數(shù)字鐘的設計方案如下:</p><p>  系統(tǒng)輸入:mode為計時顯示和鬧鐘定時顯示轉換輸入;set為校時和定時

5、設置的時、分、秒轉換輸入;k為校時的時、分、秒手動加1輸入;4*4矩陣鍵盤為鬧鐘設置調(diào)節(jié)鬧鐘的時、分、秒、時鐘的清零以及暫停;clk40M為板載時鐘信號;reset為系統(tǒng)復位信號。輸入信號均由按鍵和4*4矩陣鍵盤產(chǎn)生。</p><p>  系統(tǒng)輸出:七段數(shù)碼管顯示輸出;蜂鳴器(bell)聲音信號輸出(用LED燈代替)。</p><p>  3.多功能數(shù)字鐘系統(tǒng)功能的具體描述如下:</

6、p><p>  計時:正常工作狀態(tài)下,每日按24小時計時制計時并顯示,蜂鳴器逢整點報時。</p><p>  校時:在計時顯示狀態(tài)下,按下“set鍵”,進入“小時”校時狀態(tài),再次按下“set鍵”,進入“分”校時狀態(tài),繼續(xù)按下“set鍵”,進入“秒”校時狀態(tài),第四次按下“set鍵”又回復到正常計時顯示狀態(tài)。</p><p>  1)“小時”校時狀態(tài):進入“小時”校時狀態(tài)后

7、,顯示“小時”的數(shù)碼管閃爍,每按動“k” 鍵一次,“小時”+1,若不按動“k”鍵則小時數(shù)不變,一直按下“k” 鍵則小時數(shù)以4Hz的頻率遞增計數(shù)。</p><p>  2)“分”校時狀態(tài):進入“分”校時狀態(tài)后,顯示“分”的數(shù)碼管閃爍,每按動“k” 鍵一次,“分”+1,若不按動“k”鍵則分數(shù)不變,一直按下“k” 鍵則分數(shù)以4Hz的頻率遞增計數(shù)。</p><p>  3)“秒”校時狀態(tài):進入“秒

8、”校時狀態(tài)后,顯示“秒”的數(shù)碼管閃爍,每按動“k” 鍵一次,“秒”+1,若不按動“k”鍵則秒數(shù)不變,一直按下“k” 鍵則秒數(shù)以4Hz的頻率遞增計數(shù)。</p><p>  整點報時:蜂鳴器在“59”分鐘的第51、53、55、57秒發(fā)出頻率為512Hz的低音,在“59”秒發(fā)出頻率為1024Hz的高音,結束時為整點。</p><p>  顯示:采用6個LED數(shù)碼管分別顯示時、分、秒。</p

9、><p>  鬧鐘:鬧鐘定時時間到,蜂鳴器發(fā)出周期為1s的滴、滴聲,持續(xù)時間為10秒;鬧鐘定時顯示。</p><p>  鬧鐘定時設置:在鬧鐘顯示狀態(tài)下,按下“set鍵”,進入“小時”校時狀態(tài),再次按下“set鍵”,進入“分”校時狀態(tài),繼續(xù)按下“set鍵”,進入“秒”校時狀態(tài),第四次按下“set鍵”又回復到鬧鐘顯示狀態(tài)。</p><p>  鬧鐘的時、分、秒設置過程和計

10、時設置有所不同,在鬧鐘閃爍的狀態(tài)下,可以直接在4*4的矩陣鍵盤上輸入想要調(diào)整的時間即可。</p><p>  計時顯示和鬧鐘顯示之間的轉換:按動“mode”鍵,數(shù)字鐘將在計時顯示和鬧鐘定時顯示之間轉換。</p><p>  4)多功能數(shù)字鐘系統(tǒng)結構邏輯框圖如下:</p><p>  5)控制器的MDS圖如下:</p><p>  四、各功能模

11、塊的源程序代碼:</p><p>  -- fenpin 模塊</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all; </p>

12、<p>  entity fenpin is</p><p><b>  port(</b></p><p>  clk40M,pause: in std_logic;</p><p>  clk1000hz,clk1hz,clk4hz,clk500hz: out std_logic</p><p><

13、;b>  );</b></p><p>  end fenpin;</p><p>  architecture one of fenpin is </p><p>  signal a: integer range 0 to 20970 :=0;</p><p>  signal clk1000,clk1,clk4,clk

14、500: std_logic;</p><p>  signal s:std_logic:='1';</p><p><b>  begin</b></p><p>  process(clk40M,pause)</p><p><b>  begin</b></p>

15、<p>  if rising_edge(clk40M) then </p><p>  if a=20970 then </p><p>  clk1000<=not clk1000; a<=0;</p><p>  else a<=a+1; </p><p>  end if ; e

16、nd if;</p><p>  end process; </p><p>  clk1000hz<=clk1000; </p><p>  process(clk1000)</p><p>  variable a1: integer range 0 to 249 :=0;</p><p><b>

17、;  begin</b></p><p>  if rising_edge(clk1000) then </p><p>  if a1=249 then clk4<=not clk4;a1:=0;</p><p>  else a1:=a1+1; </p><p>  end if;end if;<

18、;/p><p>  end process;</p><p>  clk4hz<=clk4;</p><p>  process(clk1000)</p><p>  variable a1: integer range 0 to 2 :=0;</p><p><b>  begin</b>&

19、lt;/p><p>  if rising_edge(clk1000) then </p><p>  if a1=2 then clk500<=not clk500;a1:=0;</p><p>  else a1:=a1+1; </p><p>  end if;end if;</p><p>

20、;  end process;</p><p>  clk500hz<=clk500;</p><p>  process(clk1000)</p><p>  variable a1: integer range 0 to 499 :=0;</p><p><b>  begin</b></p>

21、<p>  if rising_edge(clk1000) then </p><p>  if a1=499 then clk1<=not clk1;a1:=0;</p><p>  else a1:=a1+1; </p><p>  end if;end if;</p><p>  if rising_

22、edge(pause) then</p><p><b>  s<=not s;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  clk1hz<=clk1 and s; </p><

23、p>  end one; </p><p>  -- CONTOR 模塊</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all; </p><p>  

24、use ieee.std_logic_arith.all;</p><p>  entity contor is </p><p>  port(clk,k,set,reset,mode : in std_logic;</p><p>  chs,cht,cms,cmt,css,cst,flashh,flashm,flashs,sel_show:out std_lo

25、gic);</p><p>  end contor;</p><p>  architecture contor_arch of contor is</p><p>  type states is(s0,s1,s2,s3,s4,s5,s6,s7);</p><p>  signal current_state,next_state :st

26、ates;</p><p><b>  begin</b></p><p>  process(reset,clk,next_state,mode)</p><p><b>  begin</b></p><p>  if (reset='1')then</p><

27、;p>  current_state<=s0;</p><p>  elsif (clk'event and clk='1')then</p><p>  current_state<=next_state;</p><p><b>  end if;</b></p><p> 

28、 end process;</p><p>  process(current_state,k,set,mode)</p><p><b>  begin</b></p><p>  case current_state is</p><p><b>  when s0=></b></p

29、><p>  flashh<='0';flashm<='0';flashs<='0';cht<='0';cmt<='0';cst<='0'; chs<='0';cms<='0';css<='0';sel_show<=

30、'1';</p><p>  if(mode='1')then next_state<=s4;</p><p>  elsif(k='0'and set='1' ) then</p><p>  next_state<=s1;</p><p><b>  e

31、lse</b></p><p>  next_state<=s0;</p><p><b>  end if;</b></p><p><b>  when s1=></b></p><p>  flashh<='1';flashm<='0

32、';flashs<='0';cht<='1';cmt<='0';cst<='0'; chs<='0';cms<='0';css<='0';sel_show<='1';</p><p>  if (set='1' )

33、then</p><p>  next_state<=s2;</p><p><b>  else</b></p><p>  next_state<=s1;</p><p><b>  end if;</b></p><p><b>  when s2

34、=></b></p><p>  flashh<='0';flashm<='1';flashs<='0';cht<='0';cmt<='1';cst<='0'; chs<='0';cms<='0';css<='

35、;0';sel_show<='1';</p><p>  if (set='1') then </p><p>  next_state<=s3;</p><p><b>  else</b></p><p>  next_state<=s2;</p>

36、<p><b>  end if;</b></p><p><b>  when s3=></b></p><p>  flashh<='0';flashm<='0';flashs<='1';cht<='0';cmt<='0&

37、#39;; cst<='1';chs<='0';cms<='0';css<='0';sel_show<='1';</p><p>  if ( set='1' ) then </p><p>  next_state<=s0;</p><

38、p><b>  else</b></p><p>  next_state<=s3;</p><p><b>  end if;</b></p><p><b>  when s4=></b></p><p>  flashh<='0';

39、flashm<='0';flashs<='0';cht<='0';cmt<='0';cst<='0';</p><p>  chs<='0';cms<='0';css<='0';sel_show<='0';</p

40、><p>  if ( mode='1' ) then</p><p>  next_state<=s0;</p><p>  elsif ( k='0'and set='1' ) then </p><p>  next_state<=s5;</p><p>

41、<b>  else</b></p><p>  next_state<=s4;</p><p><b>  end if;</b></p><p><b>  when s5=></b></p><p>  flashh<='1';flash

42、m<='0';flashs<='0';cht<='0';cmt<='0';cst<='0';</p><p>  chs<='1';cms<='0';css<='0';sel_show<='0';</p>

43、<p>  if (set='1') then</p><p>  next_state<=s6;</p><p><b>  else</b></p><p>  next_state<=s5;</p><p><b>  end if;</b></p

44、><p><b>  when s6=></b></p><p>  flashh<='0';flashm<='1';flashs<='0';cht<='0';cmt<='0';</p><p>  cst<='0

45、9;;chs<='0';cms<='1';css<='0';sel_show<='0';</p><p>  if (set='1' ) then</p><p>  next_state<=s7;</p><p><b>  else</b

46、></p><p>  next_state<=s6;</p><p><b>  end if;</b></p><p><b>  when s7=></b></p><p>  flashh<='0';flashm<='0';fla

47、shs<='1';cht<='0';cmt<='0';</p><p>  cst<='0';chs<='0';cms<='0';css<='1';sel_show<='0';</p><p>  If (set=

48、'1') then</p><p>  next_state<=s4;</p><p><b>  else</b></p><p>  next_state<=s7;</p><p><b>  end if;</b></p><p><

49、b>  end case;</b></p><p>  end process;</p><p>  end contor_arch;</p><p>  ********TIMER模塊****</p><p>  --********MUX2-1 模塊********</p><p>  libra

50、ry ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity mux2_1 is</p><p>  port(d0,d1,en :in std_logic;</p><p>  sel :in std_logic;</p><p>  y :out

51、 std_logic);</p><p>  end mux2_1;</p><p>  architecture mux2_1_arch of mux2_1 is</p><p><b>  begin </b></p><p>  process(d0,d1,sel)</p><p><

52、b>  begin</b></p><p>  if(sel='0')then</p><p><b>  y<=d0;</b></p><p>  elsif(sel='1'and en='0')then</p><p><b>  y&

53、lt;=d1 ;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  end mux2_1_arch;</p><p>  --*************cnt24模塊*****</p><p>  librar

54、y ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity cnt24 is</p><p>  port(clkin,rst:in std_logic;</p><p&

55、gt;  mh,ml:buffer std_logic_vector(3 downto 0);</p><p>  co:buffer std_logic);</p><p>  end cnt24;</p><p>  architecture cnt24x of cnt24 is</p><p><b>  begin</

56、b></p><p>  process(clkin)</p><p><b>  begin</b></p><p>  if(rising_edge(clkin))then</p><p>  if(mh="0010"and ml="0011")then</p>

57、;<p>  mh<="0000";co<='1';ml<="0000";</p><p>  elsif(ml="1001")then</p><p>  ml<="0000";mh<=mh+1;co<='0';</p&g

58、t;<p>  else ml<=ml+1;co<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if rst='1' then</p><p>  mh

59、<="0000";ml<="0000";</p><p><b>  end if;</b></p><p>  end process;</p><p>  end cnt24x;</p><p>  --*************TIMER總的模塊*****<

60、/p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  entity

61、timer is</p><p>  port(rst,chs,f4,cms,k,clk1hz,css:in std_logic;</p><p>  hh,hl,mh,ml,sh,sl:out std_logic_vector(3 downto 0)</p><p><b>  );</b></p><p>  end

62、 entity;</p><p>  architecture one of timer is</p><p>  component mux2_1 is</p><p>  port(d0,d1,en :in std_logic;</p><p>  sel :in std_logic;</p><p>  y

63、:out std_logic);</p><p>  end component;</p><p>  component cnt60 is</p><p>  port(clkin,rst:in std_logic;</p><p>  mh,ml:buffer std_logic_vector(3 downto 0);</p>

64、<p>  co :buffer std_logic);</p><p>  end component;</p><p>  component cnt24 is</p><p>  port(clkin,rst:in std_logic;</p><p>  mh,ml:buffer std_logic_vector(3 d

65、ownto 0);</p><p>  co:buffer std_logic);</p><p>  end component;</p><p>  signal co1,co2,y1,y2,y3:std_logic;</p><p><b>  begin</b></p><p>  U1:

66、mux2_1 port map(clk1hz,f4,k,css,y1);</p><p>  U2:mux2_1 port map(co1,f4,k,cms,y2);</p><p>  U3:mux2_1 port map(co2,f4,k,chs,y3);</p><p>  U4:cnt60 port map(y1,rst,sh,sl,co1);</p&

67、gt;<p>  U5:cnt60 port map(y2,rst,mh,ml,co2);</p><p>  U6:cnt24 port map(y3,rst,hh,hl);</p><p><b>  end one;</b></p><p>  ――*****************Time_com 模塊*********&

68、lt;/p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all; </p><p>  ent

69、ity time_com is</p><p>  port(r,hh,mh,sh,hl,ml:in std_logic_vector(3 downto 0);</p><p>  test,chs,cms,css,f4,k:in std_logic;</p><p>  bsg,bmg,bhg,bsd,bmd,bhd :buffer std_logic_vecto

70、r(3 downto 0);</p><p>  comout:out std_logic);</p><p>  end time_com;</p><p>  architecture time_comx of time_com is</p><p>  signal choose,choose1,choose2:std_logic;&l

71、t;/p><p><b>  begin</b></p><p>  com:process(hh,mh,sh,hl,ml,bhd,bhg,bmg,bmd,bsg)</p><p><b>  begin</b></p><p>  if(bhg=hh and bhd=hl and bmg=mh and

72、 bmd=ml and bsg=sh)then</p><p>  comout<='1';</p><p><b>  else</b></p><p>  comout<='0';</p><p><b>  end if;</b></p>

73、<p>  end process;</p><p>  --set:process(f4)</p><p>  process(chs)</p><p><b>  begin</b></p><p>  if rising_edge(test) then</p><p>  ch

74、oose<=not choose;</p><p>  if chs='1' then </p><p>  if choose='1' then</p><p>  if r>"0010" then</p><p>  bhg<="0000"; els

75、e</p><p><b>  bhg<=r;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if choose='0' then</p><p>

76、;  if r>"0011" then</p><p>  bhd<="0000"; else</p><p>  bhd<=r; end if;</p><p><b>  end if;</b></p><p><b>  end if;</b

77、></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(cms)</p><p><b>  begin</b></p><p>  if rising_edge(test) then&l

78、t;/p><p>  choose1<=not choose1;</p><p>  if cms='1' then </p><p>  if choose1='1' then</p><p>  if r>"0101" then</p><p>  bmg

79、<="0000"; else</p><p><b>  bmg<=r;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  if choose1='0

80、9; then</p><p>  if r>"1001" then</p><p>  bmd<="0000"; else</p><p>  bmd<=r; end if;</p><p><b>  end if;</b></p><p&

81、gt;<b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(css)</p><p><b>  begin</b></p><p>  

82、if rising_edge(test) then</p><p>  choose2<=not choose2;</p><p>  if css='1' then </p><p>  if choose2='1' then</p><p>  if r>"0101" the

83、n</p><p>  bsg<="0000"; else</p><p><b>  bsg<=r;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><

84、p>  if choose2='0' then</p><p>  if r>"1001" then</p><p>  bsd<="0000"; else</p><p>  bsd<=r; end if;</p><p><b>  end if;&

85、lt;/b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  end time_comx;</p><p>  --****************

86、*Show_contor模塊****************************</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_log

87、ic_unsigned.all;</p><p>  entity show_contor is</p><p>  port(hh,mh,sh,bhh,bmh,bsh,hl,ml,sl,bhl,bml,bsl :in std_logic_vector(3 downto 0);</p><p>  flashh,flashm,flashs,clk1,sel_show

88、 :in std_logic;</p><p>  sld0,shd1,mld3,mhd4,hld6,hhd7:out std_logic_vector(3 downto 0));</p><p>  end show_contor;</p><p>  architecture show_contor_arch of show_contor is</p>

89、;<p><b>  begin</b></p><p>  process(clk1)</p><p><b>  begin</b></p><p>  if sel_show='1'then</p><p><b>  sld0<=sl;</

90、b></p><p><b>  shd1<=sh;</b></p><p><b>  mld3<=ml;</b></p><p><b>  mhd4<=mh;</b></p><p><b>  hld6<=hl;</b>

91、;</p><p><b>  hhd7<=hh;</b></p><p>  elsif sel_show='0'then</p><p>  sld0<=bsl;</p><p>  shd1<=bsh;</p><p>  mld3<=bml;<

92、/p><p>  mhd4<=bmh;</p><p>  hld6<=bhl;</p><p>  hhd7<=bhh;</p><p><b>  end if;</b></p><p>  if(clk1='1' and flashs='1')t

93、hen</p><p>  sld0<="1111";shd1<="1111";</p><p><b>  end if;</b></p><p>  if(clk1='1' and flashm='1')then</p><p>  

94、mld3<="1111";mhd4<="1111";</p><p><b>  end if;</b></p><p>  if(clk1='1' and flashh='1')then</p><p>  hld6<="1111";

95、hhd7<="1111";</p><p><b>  end if;</b></p><p>  end process;</p><p>  end show_contor_arch;</p><p>  --****************decode模塊代碼***************

96、******</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all; </p><p>  entity decode is</p><p><b>  

97、port(</b></p><p>  clk1000hz: in std_logic;</p><p>  mg,ms,fg,fs,sg,ss: in std_logic_vector(3 downto 0);</p><p>  atog: out std_logic_vector(6 downto 0);</p><p> 

98、 sel: out std_logic_vector(5 downto 0)</p><p><b>  );</b></p><p>  end decode;</p><p>  architecture one of decode is </p><p>  signal q: std_logic_vector(

99、3 downto 0) ; </p><p>  signal count : integer range 0 to 5:=0;</p><p><b>  begin</b></p><p>  process(clk1000hz)</p><p><b>  begin</b></p>

100、;<p>  if rising_edge(clk1000hz) then</p><p>  count<=count+1;</p><p><b>  end if;</b></p><p>  end process;</p><p>  process(count,mg,ms,fg,fs,s

101、g,ss)</p><p><b>  begin</b></p><p>  if count=0 then q<=mg;sel<="000001";</p><p>  elsif count=1 then q<=ms;sel<="000010";</p>

102、<p>  elsif count=2 then q<=fg;sel<="000100";</p><p>  elsif count=3 then q<=fs;sel<="001000";</p><p>  elsif count=4 then q<=sg;sel<="010000

103、";</p><p>  elsif count=5 then q<=ss;sel<="100000";</p><p><b>  end if;</b></p><p>  end process;</p><p>  process(q)</p><p

104、><b>  begin</b></p><p>  case q is --段碼選擇輸出</p><p>  when "0000"=> atog<="0111111"; --0</p><p>  when "0001"=>

105、; atog<="0000110"; --1</p><p>  when "0010"=> atog<="1011011"; --2</p><p>  when "0011"=> atog<="1001111"

106、;; --3</p><p>  when "0100"=> atog<="1100110"; --4</p><p>  when "0101"=> atog<="1101101"; --5</p><p

107、>  when "0110"=> atog<="1111101"; --6</p><p>  when "0111"=> atog<="0100111"; --7</p><p>  when "1000"=>

108、 atog<="1111111"; --8</p><p>  when "1001"=> atog<="1101111"; --9</p><p>  when others=> atog<="0000000";

109、 --0</p><p><b>  end case;</b></p><p>  end process;</p><p><b>  end one;</b></p><p>  --*************Bell模塊************************************

110、********</p><p>  library ieee; </p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity bel is</p><p>  port(mh,sh

111、,ml,sl :in std_logic_vector(3 downto 0);</p><p>  comout,f512hz,f1024hz,clk :in std_logic; </p><p>  bell :out std_logic);</p><p><b>  end bel;</b></p><p&

112、gt;  architecture bel_arch of bel is</p><p><b>  begin</b></p><p>  process(clk,mh,ml,sh,sl,f1024hz,f512hz)</p><p><b>  begin</b></p><p>  if(co

113、mout='1')then</p><p>  bell<=clk;</p><p>  elsif(mh="0101"and ml="1001" )then</p><p>  if(sh="0101") then</p><p>  if(sl="

114、1001") then</p><p>  bell<=f1024hz;</p><p>  elsif(sl="0001" or sl="0011" or sl="0101" or sl="0111")then</p><p>  bell<=f500hz;<

115、;/p><p><b>  end if;</b></p><p><b>  else</b></p><p>  bell<='0';</p><p><b>  end if;</b></p><p>  elsif(ml<

116、"1001"or mh<"0101"or sh<"0101" )then</p><p>  bell<='0';</p><p><b>  end if;</b></p><p>  end process;</p><p>

117、;  end bel_arch;</p><p>  --*************key模塊********************************************</p><p>  library ieee;</p><p>  use ieee.std_logic_arith.all; </p><p>  use i

118、eee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity key is</p><p>  port (clk:in std_logic;test,rst,pause:out std_logic;</p><p>  a:in std

119、_logic_vector(3 downto 0);</p><p>  b,r:out std_logic_vector(3 downto 0));</p><p>  end entity key;</p><p>  architecture one of key is</p><p>  signal c:std_logic_vect

120、or(1 downto 0);</p><p>  signal ba:std_logic_vector(7 downto 0);</p><p>  signal e:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  ba<=e&

121、;a;b<=e;</p><p>  process(a,clk) begin</p><p>  if rising_edge(clk) then c<=c+1;</p><p><b>  case c is</b></p><p>  when "00"=> e<=&qu

122、ot;0111";when "01"=>e<="1011";</p><p>  when "10"=>e<="1101";when "11"=>e<="1110";</p><p>  when others=>nul

123、l;</p><p><b>  end case;</b></p><p>  case ba is</p><p>  when "01111110"=>r<="0001";test<='1';when "10111110" => r<

124、="0010";test<='1';</p><p>  when "11011110"=>r<="0011";test<='1';when "01111101" => r<="0100";test<='1';</p&g

125、t;<p>  when "10111101"=>r<="0101";test<='1';when "11011101" => r<="0110";test<='1';</p><p>  when "01111011"=>r&

126、lt;="0111";test<='1';when "10111011" => r<="1000";test<='1';</p><p>  when "11011011"=>r<="1001";test<='1';when

127、"01110111" => r<="0000";test<='1';</p><p>  when "10110111"=>r<="1101";when "11101110" => r<="1001";rst<='1'

128、;;</p><p>  when "11010111"=>r<="1110";pause<='1';when "11100111" => r<="1111";</p><p>  when others=>rst<='0';pause&

129、lt;='0';test<='0';</p><p>  end case; end if;</p><p>  end process;</p><p><b>  end;</b></p><p>  --************* debance模塊**************

130、******************************</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all; </p><p>  use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith

131、.all;</p><p>  entity debance1 is</p><p>  port(clk,kin:in std_logic;</p><p>  kout:out std_logic);</p><p><b>  end;</b></p><p>  architecture

132、one of debance1 is</p><p>  signal kl:std_logic_vector(3 downto 0);</p><p>  signal kh:std_logic;</p><p><b>  begin</b></p><p>  process(clk,kin) begin</

133、p><p>  if rising_edge(clk) then</p><p>  if kin='1' then kh<='1';</p><p>  else kh<='0';end if;end if;</p><p>  end process;</p><

134、p>  process(clk,kin) begin</p><p>  if rising_edge(clk) then</p><p>  if kin='0' then kl<=kl+1;</p><p>  else kl<="0000";end if;end if;</p><p&g

135、t;  end process;</p><p>  process(clk,kh) begin</p><p>  if rising_edge(clk) then</p><p>  if kl>"1100" then kout<='0';</p><p>  elsif kh='1

136、' then kout<='1';</p><p>  end if;end if;</p><p>  end process;</p><p><b>  end; </b></p><p>  --************* TRM0模塊********************

137、************************</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity trm0 is</p><p

138、>  port(clk,kin:in std_logic;</p><p>  kout: out std_logic);</p><p><b>  end trm0;</b></p><p>  architecture behav of trm0 is</p><p>  signal kh,kl:std_l

139、ogic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  process(clk,kin) begin</p><p>  if rising_edge(clk) then </p><p>  if(kin='0') then kl<=k

140、l+1;</p><p>  else kl<="0000"; end if; end if;</p><p>  end process;</p><p>  process(clk,kin) begin</p><p>  if rising_edge(clk) then</p><p>

141、  if(kin='1') then kh<=kh+1;</p><p>  else kh<="0000"; </p><p><b>  end if; </b></p><p><b>  end if;</b></p><p>  end pr

142、ocess;</p><p>  process(clk,kh,kl) begin</p><p>  if rising_edge(clk) then</p><p>  if(kh>"1100") then kout<='1';</p><p>  elsif (kl>"01

143、11") then kout<='0';</p><p><b>  end if; </b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end;</b><

144、/p><p>  --************* multi主程序********************************************</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsi

145、gned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  entity multi is</p><p>  port (m1,k1,set1,reset1,mode1,clk:in std_logic;</p><p>  a_1:in std_logic_vector(3 do

溫馨提示

  • 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

提交評論