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

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  一、課程設(shè)計(jì)的性質(zhì)、目的和任務(wù)………………………………3</p><p>  二、課程設(shè)計(jì)基本要求……………………………………………3</p><p>  三、設(shè)計(jì)課題要求…………………………………………………3</p><p>  四、課程設(shè)計(jì)所需要儀器…

2、………………………………………4</p><p>  五、設(shè)計(jì)步驟………………………………………………………4</p><p>  1、整體設(shè)計(jì)框圖…………………………………………………4</p><p>  2、各個模塊的設(shè)計(jì)與仿真………………………………………4</p><p>  2.1分頻模塊………………………………………………………

3、……4</p><p>  2.2計(jì)數(shù)器模塊…………………………………………………………6</p><p>  2.3控制模塊…………………………………………………………10</p><p>  2.4數(shù)碼管分配………………………………………………………13</p><p>  2.5顯示模塊…………………………………………………………14&

4、lt;/p><p>  2.6報時模塊…………………………………………………………16</p><p>  六、調(diào)試中遇到的問題及解決的方法……………………………18</p><p>  七、心得體會………………………………………………………18</p><p>  一、課程設(shè)計(jì)的性質(zhì)、目的和任務(wù)</p><p>  創(chuàng)新

5、精神和實(shí)踐能力二者之中,實(shí)踐能力是基礎(chǔ)和根本。這是由于創(chuàng)新基于實(shí)踐、源于實(shí)踐,實(shí)踐出真知,實(shí)踐檢驗(yàn)真理。實(shí)踐活動是創(chuàng)新的源泉,也是人才成長的必由之路。</p><p>  通過課程設(shè)計(jì)的鍛煉,要求學(xué)生掌握電路的一般設(shè)計(jì)方法,具備初步的獨(dú)立設(shè)計(jì)能力,提高綜合運(yùn)用所學(xué)的理論知識獨(dú)立分析和解決問題的能力,培養(yǎng)學(xué)生的創(chuàng)新精神。</p><p>  二、課程設(shè)計(jì)基本要求</p><

6、;p>  掌握現(xiàn)代大規(guī)模集成數(shù)字邏輯電路的應(yīng)用設(shè)計(jì)方法,進(jìn)一步掌握電子儀器的正確使用方法,以及掌握利用計(jì)算機(jī)進(jìn)行電子設(shè)計(jì)自動化(EDA)的基本方法。</p><p><b>  三、設(shè)計(jì)課題要求</b></p><p>  (1)構(gòu)造一個24小時制的數(shù)字鐘。要求能顯示時、分、秒。</p><p> ?。?)要求時、分、秒能各自獨(dú)立的進(jìn)行調(diào)

7、整。</p><p> ?。?)能利用喇叭作整點(diǎn)報時。從59分50秒時開始報時,每隔一秒報時一秒,到達(dá)00分00秒時,整點(diǎn)報時。整點(diǎn)報時聲的頻率應(yīng)與其它的報時聲頻有明顯區(qū)別。</p><p>  #設(shè)計(jì)提示(僅供參考):</p><p> ?。?)對頻率輸入的考慮</p><p>  數(shù)字鐘內(nèi)所需的時鐘頻率有:基準(zhǔn)時鐘應(yīng)為周期一秒的標(biāo)準(zhǔn)信號。

8、報時頻率可選用1KHz和2KHz左右(兩種頻率相差八度音,即頻率相差一倍)。另外,為防止按鍵反跳、抖動,微動開關(guān)輸入應(yīng)采用寄存器輸入形式,其時鐘應(yīng)為幾十赫茲。</p><p> ?。?)計(jì)時部分計(jì)數(shù)器設(shè)計(jì)的考慮</p><p>  分、秒計(jì)數(shù)器均為模60計(jì)數(shù)器。</p><p>  小時計(jì)數(shù)為模24計(jì)數(shù)器,同理可建一個24進(jìn)制計(jì)數(shù)器的模塊。</p>&

9、lt;p> ?。?)校時設(shè)計(jì)的考慮</p><p>  數(shù)字鐘校準(zhǔn)有3個控制鍵:時校準(zhǔn)、分校準(zhǔn)和秒校準(zhǔn)。</p><p>  微動開關(guān)不工作,計(jì)數(shù)器正常工作。按下微動開關(guān)后,計(jì)數(shù)器以8Hz頻率連續(xù)計(jì)數(shù)(若只按一下,則計(jì)數(shù)器增加一位),可調(diào)用元件庫中的邏輯門建一個控制按鍵的模塊,即建立開關(guān)去抖動電路(見書70頁)。</p><p> ?。?)報時設(shè)計(jì)的考慮<

10、;/p><p>  可以將高頻時鐘分頻得到約2KHz和1KHz的音頻,作為數(shù)字鐘的報時頻率。當(dāng)電子鐘顯示XX:59:50時,數(shù)字鐘開始報時“DO",持續(xù)一秒,而且每隔一秒報一下,直至顯示XX:00:00時報“DI",持續(xù)一秒后停止。最后輸出至喇叭。應(yīng)調(diào)用元件庫中的邏輯門建一個控制報時的模塊。</p><p> ?。?)建一個七段譯碼的模塊</p><p&

11、gt;  因在系統(tǒng)可編程器件實(shí)驗(yàn)箱上的數(shù)碼管沒有經(jīng)過譯碼,故要用AHDL語言寫一個七段譯碼的模塊,且應(yīng)考慮數(shù)碼管為共陽極。數(shù)碼管上的點(diǎn)(D2、D4、D6)應(yīng)置Vcc。</p><p>  四、課程設(shè)計(jì)所需要儀器</p><p><b>  1、計(jì)算機(jī)一臺</b></p><p>  2、quartusⅡ軟件</p><p&g

12、t;<b>  3、FPGA開發(fā)板</b></p><p><b>  五、設(shè)計(jì)步驟</b></p><p><b>  1、模塊介紹</b></p><p>  分頻模塊:產(chǎn)生1Hz、1KHz、2KHz頻率</p><p>  計(jì)數(shù)器模塊:生成60進(jìn)制、24進(jìn)制計(jì)數(shù)器<

13、/p><p>  控制模塊:按鍵控制、按鍵消抖</p><p>  顯示模塊:7段數(shù)碼管顯示器,分別顯示小時、分鐘、秒</p><p>  報時模塊:進(jìn)行整點(diǎn)報時</p><p>  2、各個模塊的設(shè)計(jì)與仿真</p><p><b>  2.1分頻模塊</b></p><p>

14、  CLK晶振頻率50MHZ,分成2KHZ,1KHZ,1HZ的信號。基準(zhǔn)1HZ信號作為時鐘計(jì)時的秒計(jì)數(shù)時鐘信號;分頻的1KHZ,2KHZ信號用于報時電路的不同聲訊。</p><p><b>  程序代碼:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;<

15、/p><p>  entity fre is</p><p><b>  port(</b></p><p>  clk ,sel: in std_logic;</p><p>  clk1hz,clk1khz,clk2khz:out std_logic);</p><p><b>  en

16、d fre;</b></p><p>  architecture beh of fre is</p><p>  signal data1khz,data2khz,data1hz : std_logic := '0';</p><p><b>  begin</b></p><p>  cl

17、k1hz <= data1hz;</p><p>  clk1khz <= data1khz;</p><p>  clk2khz <= data2khz;</p><p>  clk1khz_pro : process(clk) --產(chǎn)生1khz信號</p><p>  v

18、ariable cnt : integer range 0 to 24999;</p><p><b>  begin </b></p><p>  if clk'event and clk='1' then </p><p>  if cnt = 24999 then </p><p>  cn

19、t := 0 ; data1khz <= not data1khz;</p><p><b>  else </b></p><p>  cnt := cnt + 1;</p><p><b>  end if;</b></p><p><b>  end if;</b>

20、</p><p>  end process clk1khz_pro;</p><p>  clk2khz_pro : process(clk) --產(chǎn)生2khz信號</p><p>  variable cnt : integer range 0 to 12499;</p><p><

21、;b>  begin </b></p><p>  if clk'event and clk='1' then </p><p>  if cnt = 12499 then </p><p>  cnt := 0 ; data2khz <= not data2khz;</p><p><b

22、>  else </b></p><p>  cnt := cnt + 1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process clk2khz_pro;</p><

23、p>  clk1hz_pro : process(data1khz) --產(chǎn)生1hz 信號</p><p>  variable cnt : integer range 0 to 499;</p><p><b>  begin</b></p><p>  if data1khz'eve

24、nt and data1khz='1' then</p><p>  if sel='0' then cnt:=0;</p><p>  else if cnt = 499 then</p><p>  cnt := 0 ;data1hz <= not data1hz ;</p><p><b>

25、;  else</b></p><p>  cnt := cnt + 1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p

26、>  end process clk1hz_pro;</p><p><b>  end beh;</b></p><p><b>  輸入模塊電路圖:</b></p><p><b>  2.2計(jì)數(shù)器模塊</b></p><p>  由秒計(jì)數(shù)器,分計(jì)數(shù)器,時計(jì)數(shù)器組成了

27、最基本的數(shù)字鐘計(jì)時電路,兩個六十進(jìn)制計(jì)數(shù)器與二十四進(jìn)制計(jì)數(shù)器組合構(gòu)成。</p><p><b>  程序代碼:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.

28、all;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  entity shuzizhong is</p><p><b>  port(</b></p><p>  clk_change : in std_logic;</p><p>  s_

29、en,m_en,h_en:in std_logic;</p><p>  sel:in std_logic;</p><p>  secout,minout,hourout :out std_logic;</p><p>  sl,sh,ml,mh,hl,hh:out std_logic_vector(3 downto 0);</p><p>

30、;  a:out std_logic_vector(15downto 0)</p><p><b>  );</b></p><p>  end shuzizhong;</p><p>  architecture behav of shuzizhong is</p><p>  signal low_rega,high

31、_rega,low_regb,high_regb,low_regc,high_regc :std_logic_vector(3 downto 0):="0000";</p><p>  signal sout,mout,hout :std_logic :='0';</p><p><b>  begin</b></p>

32、<p>  --秒的60進(jìn)制進(jìn)制 </p><p>  counter_sec_l : process(clk_change,s_en)</p><p><b>  begin</b></p><p>  sl<=lo

33、w_rega;sh<=high_rega;ml<=low_regb;mh<=high_regb;hl<=low_regc;hh<=high_regc;</p><p>  if clk_change'event and clk_change='1' then</p><p>  if s_en='1' then <

34、/p><p>  if low_rega="1001" then</p><p>  low_rega <= "0000";</p><p><b>  else </b></p><p>  low_rega <= low_rega+'1';</

35、p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process counter_sec_l;</p><p>  counte

36、r_sec_h : process(clk_change,s_en,low_rega)</p><p><b>  begin</b></p><p>  if clk_change'event and clk_change='1' then</p><p>  if s_en='1' then</

37、p><p>  if low_rega="1001" then </p><p>  if high_rega ="0101"then</p><p>  high_rega <= "0000";</p><p><b>  else</b></p>

38、;<p>  high_rega <= high_rega+'1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>

39、<b>  end if;</b></p><p>  end process counter_sec_h;</p><p>  sout <= '1' when low_rega="1001" and high_rega="0101" else '0'; </p><p

40、>  ----分鐘的60進(jìn)制設(shè)置</p><p>  counter_min_l : process(clk_change,m_en)</p><p><b>  begin</b></p><p>  if clk_change'event and clk_change='1' then</p>&

41、lt;p>  if m_en='1' then</p><p>  if sout='1'or sel='0' then </p><p>  if low_regb="1001" then</p><p>  low_regb <= "0000";</p>

42、;<p><b>  else </b></p><p>  low_regb <= low_regb+'1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>&l

43、t;b>  end if;</b></p><p><b>  end if;</b></p><p>  end process counter_min_l;</p><p>  counter_min_h : process(clk_change,m_en,low_regb)</p><p><

44、;b>  begin</b></p><p>  if clk_change'event and clk_change='1' then</p><p>  if sout='1'or sel='0' then</p><p>  if m_en='1' then</p&

45、gt;<p>  if low_regb="1001" then</p><p>  if high_regb ="0101"then</p><p>  high_regb <= "0000";</p><p><b>  else </b></p>

46、<p>  high_regb <= high_regb+'1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>&l

47、t;b>  end if;</b></p><p><b>  end if;</b></p><p>  end process counter_min_h;</p><p>  mout <= '1' when low_regb="1001" and high_regb="

48、;0101"and sout='1' else '0'; </p><p>  --小時的24進(jìn)制設(shè)置</p><p>  counter_hour_l : process(clk_change,h_en)</p><p><b>  begin</b></p><p>  if

49、 clk_change'event and clk_change='1' then</p><p>  if h_en='1' then</p><p>  if mout='1'or sel='0' then </p><p>  if low_regc="1001"or

50、hout='1' then</p><p>  low_regc <= "0000";</p><p><b>  else </b></p><p>  low_regc <= low_regc+'1';</p><p><b>  end

51、if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process counter_hour_l;</p>

52、<p>  counter_hour_h : process(clk_change,h_en,hout)</p><p><b>  begin</b></p><p>  if clk_change'event and clk_change='1' then</p><p>  if mout='

53、1'or sel='0' then</p><p>  if h_en='1' then</p><p>  if hout='1' then</p><p>  high_regc<="0000"; </p><p>  else if low_regc=&q

54、uot;1001" then</p><p>  high_regc <= high_regc+'1';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;<

55、;/b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process counter_hour_h;</p><p>  hout <= '1' when low_regc="

56、;0011" and high_regc="0010" else '0';</p><p>  secout<=sout;minout<=mout;hourout<=hout;</p><p>  a<=high_regb&low_regb&high_rega&low_rega ;</p&g

57、t;<p>  end behav;</p><p><b>  輸入模塊電路圖:</b></p><p><b>  2.3控制模塊</b></p><p>  分五個狀態(tài)0狀態(tài)正常計(jì)時,按下按鍵進(jìn)入下一狀態(tài)開始調(diào)時模式1,按下按鍵進(jìn)入調(diào)秒模式2,按下按鍵進(jìn)入調(diào)分模式3,按下按鍵進(jìn)入調(diào)小時模式4.按下按鍵恢

58、復(fù)正常計(jì)時模式。</p><p><b>  程序代碼:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  

59、entity key_press is</p><p>  port( set ,mode: in std_logic;</p><p>  clk1khz,clk1hz: in std_logic;</p><p>  secout,minout: in std_logic;</p><p>  clk_change,clk2hz_en

60、:out std_logic ;</p><p>  sel,s_ce,m_ce,h_ce:out std_logic;</p><p>  s_en,m_en,h_en:out std_logic );</p><p>  end key_press;</p><p>  architecture beh of key_press i

61、s</p><p>  signal key1,key2:std_logic;</p><p>  signal sce_reg, mce_reg ,hce_reg:std_logic ;</p><p>  signal ssl,ssen,mmen,hhen:std_logic;</p><p>  signal con : integ

62、er range 0 to 4 :=0;</p><p>  --按鍵按下(延時)</p><p><b>  begin </b></p><p>  key_press2 : process(set,clk1khz)</p><p>  variable cnt :integer range 0 to 999;<

63、;/p><p><b>  begin </b></p><p>  if set='0' then</p><p>  if clk1khz'event and clk1khz='1'then</p><p>  if cnt=50 and set='0' then&

64、lt;/p><p>  cnt :=cnt+1; key2 <= '1';</p><p>  else cnt:=cnt+1;key2 <= '0';</p><p><b>  end if;</b></p><p><b>  end if;</b>&l

65、t;/p><p><b>  else </b></p><p>  cnt:=0; key2<='0';</p><p><b>  end if;</b></p><p>  end process key_press2; </p><p>  key_

66、press1 : process(mode,clk1khz)</p><p>  variable cnt :integer range 0 to 999;</p><p><b>  begin </b></p><p>  if mode='0' then</p><p>  if clk1khz&#

67、39;event and clk1khz='1'then</p><p>  if cnt=50 and mode='0' then</p><p>  cnt :=cnt+1; key1 <= '1';</p><p>  else cnt:=cnt+1;key1 <= '0';</

68、p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  else </b></p><p>  cnt:=0; key1<='0';</p><p><b&g

69、t;  end if;</b></p><p>  end process key_press1;</p><p>  count : process(key1,key2) </p><p><b>  begin </b></p><p>  if key1'event and key1='

70、;1' then</p><p>  if con=4 then</p><p><b>  con<=0;</b></p><p><b>  else </b></p><p>  con<=con+1;</p><p><b>  end

71、if;</b></p><p><b>  end if;</b></p><p>  end process count;</p><p>  con_pro : process(con)</p><p><b>  begin</b></p><p>  ca

72、se con is</p><p>  when 0 => ssl<='1';</p><p>  sce_reg <= '0';ssen <='1';</p><p>  mce_reg <= '0';mmen <='1';</p>&

73、lt;p>  hce_reg <= '0';hhen <='1';</p><p>  clk2hz_en <='0';</p><p>  when 1 => ssl<='0';</p><p>  sce_reg <= '0';ssen &l

74、t;='1';</p><p>  mce_reg <= '0';mmen <='1';</p><p>  hce_reg <= '0';hhen <='1';</p><p>  clk2hz_en <='1';</p>&

75、lt;p>  when 2 => ssl<='0';</p><p>  sce_reg <= '1';ssen <='1';</p><p>  mce_reg <= '0';mmen <='0';</p><p>  hce_reg <

76、= '0';hhen <='0';</p><p>  clk2hz_en <='1';</p><p>  when 3 => ssl<='0';</p><p>  sce_reg <= '0';ssen <='0';</p&

77、gt;<p>  mce_reg <= '1';mmen <='1';</p><p>  hce_reg <= '0';hhen <='0';</p><p>  clk2hz_en <='1';</p><p>  when 4 =>

78、 ssl<='0';</p><p>  sce_reg <= '0';ssen <='0';</p><p>  mce_reg <= '0';mmen <='0';</p><p>  hce_reg <= '1';hhen <

79、;='1';</p><p>  clk2hz_en <='1';</p><p>  when others => ssl<='0';</p><p>  sce_reg <= '0';ssen <='1';</p><p>  m

80、ce_reg <= '0';mmen <='1';</p><p>  hce_reg <= '0';hhen <='1';</p><p>  clk2hz_en <='0';</p><p><b>  end case;</b>&

81、lt;/p><p>  end process con_pro;</p><p>  sel_pro : process(ssl)</p><p><b>  begin </b></p><p>  case ssl is</p><p>  when '0'=> s_ce&l

82、t;=sce_reg;</p><p>  m_ce<=mce_reg;</p><p>  h_ce<=hce_reg;</p><p>  clk_change<=key2;</p><p>  when '1'=> s_ce<=ssen;</p><p>  m_ce

83、<=mmen;</p><p>  h_ce<=hhen;</p><p>  clk_change<=clk1hz;</p><p>  when others=> s_ce<=ssen;</p><p>  m_ce<=secout;</p><p>  h_ce<=min

84、out;</p><p>  clk_change<=clk1hz;</p><p><b>  end case;</b></p><p>  end process sel_pro;</p><p>  sel<=ssl;s_en<=ssen;m_en<=mmen;h_en<=hhen;

85、</p><p><b>  end beh;</b></p><p><b>  輸入模塊電路圖:</b></p><p><b>  2.4數(shù)碼管分配</b></p><p><b>  程序代碼:</b></p><p>  

86、library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity display is</p><p><b>  port(</b></p><p>  datain : in std_logic_vector(3 downto 0);<

87、/p><p>  dataout : out std_logic_vector(7 downto 0));</p><p>  end display;</p><p>  architecture duan of display is</p><p><b>  begin</b></p><p>

88、  process(datain)</p><p><b>  begin</b></p><p>  case datain is</p><p>  when "0000" => dataout <="11000000"; --dp,g,f,e,d,c,b,a</p><

89、;p>  when "0001" => dataout <="11111001";</p><p>  when "0010" => dataout <="10100100";</p><p>  when "0011" => dataout <=&

90、quot;10110000";</p><p>  when "0100" => dataout <="10011001";</p><p>  when "0101" => dataout <="10010010";</p><p>  when &q

91、uot;0110" => dataout <="10000010";</p><p>  when "0111" => dataout <="11111000";</p><p>  when "1000" => dataout <="10000000&q

92、uot;;</p><p>  when "1001" => dataout <="10010000";</p><p>  when "1010" => dataout <="10111111";</p><p>  when "1011"

93、=> dataout <="10000011";</p><p>  when "1100" => dataout <="10100111";</p><p>  when "1101" => dataout <="10100001";</p>

94、<p>  when "1110" => dataout <="10000110";</p><p>  when "1111" => dataout <="10001110";</p><p>  when others => null;</p>&l

95、t;p><b>  end case;</b></p><p>  end process;</p><p><b>  end ;</b></p><p><b>  輸入模塊電路圖:</b></p><p><b>  2.5顯示模塊</b>&l

96、t;/p><p>  使用七段數(shù)碼管顯示小時、分鐘與秒</p><p><b>  程序代碼:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity scan is</p>

97、<p><b>  port(</b></p><p>  clk1khz : in std_logic;</p><p>  sl,sh,ml,mh,hl,hh : in std_logic_vector(3 downto 0);</p><p>  clk2hz_en : in std_logi

98、c;</p><p>  s_ce,m_ce,h_ce : in std_logic;</p><p>  en_out : out std_logic_vector(7 downto 0);</p><p>  dataout : out std_logic_vector(3 downto 0));</p>

99、;<p><b>  end scan;</b></p><p>  architecture beh of scan is</p><p>  signal cnt : integer range 0 to 7;</p><p>  signal en

100、 : std_logic_vector(7 downto 0);</p><p>  signal clk2hz : std_logic; </p><p>  signal h_ce_reg,m_ce_reg,s_ce_reg : std_logic;</p><p><b>  begin<

101、/b></p><p>  h_ce_reg <= not h_ce;</p><p>  m_ce_reg <= not m_ce;</p><p>  s_ce_reg <= not s_ce;</p><p>  cnt_pro : process(clk1khz)</p><p><

102、;b>  begin</b></p><p>  if clk1khz'event and clk1khz='1' then</p><p>  if cnt = 7 then</p><p><b>  cnt <= 0;</b></p><p><b>  e

103、lse </b></p><p>  cnt <= cnt + 1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process cnt_pro;</p><p>  c

104、lk2hz_pro :process(clk1khz)</p><p>  variable c : integer range 0 to 499 := 0;</p><p><b>  begin</b></p><p>  if clk1khz'event and clk1khz='1' then</p>

105、<p>  if clk2hz_en ='1' then</p><p>  if c =499 then</p><p>  c := 0 ; clk2hz <= not clk2hz;</p><p><b>  else </b></p><p>  c := c + 1;<

106、;/p><p><b>  end if;</b></p><p><b>  else</b></p><p>  clk2hz <= '0';</p><p><b>  end if;</b></p><p><b> 

107、 end if;</b></p><p>  end process clk2hz_pro;</p><p>  scan_pro : process(cnt,sl,sh,ml,mh,hl,hh)</p><p><b>  begin</b></p><p>  case cnt is</p>

108、<p>  when 0 => dataout <= sl;en <= "11111110";</p><p>  when 1 => dataout <= sh;en <= "11111101";</p><p>  when 2 => dataout <= ml;en <= &qu

109、ot;11110111";</p><p>  when 3 => dataout <= mh;en <= "11101111";</p><p>  when 4 => dataout <= hl;en <= "10111111";</p><p>  when 5 =>

110、dataout <= hh;en <= "01111111";</p><p>  when 6 => dataout <= "1010";en <= "11111011";</p><p>  when 7 => dataout <= "1010";en <=

111、"11011111"; </p><p>  when others => null;</p><p><b>  end case;</b></p><p>  end process scan_pro;</p><p>  en_out <= en or ((clk2hz &

112、clk2hz) or (h_ce_reg & h_ce_reg)) & clk2hz & ((clk2hz & clk2hz) or (m_ce_reg & m_ce_reg)) & clk2hz & ((clk2hz & clk2hz) or (s_ce_reg & s_ce_reg));</p><p><b>  end be

113、h;</b></p><p><b>  輸入模塊電路圖:</b></p><p><b>  2.6報時模塊</b></p><p>  利用蜂鳴器進(jìn)行整點(diǎn)報時</p><p><b>  程序代碼:</b></p><p>  libra

114、ry 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><b>  --整點(diǎn)報時</b></p

115、><p>  entity baoshi is</p><p><b>  port(</b></p><p>  clk1khz,clk2khz : in std_logic;</p><p>  a:in std_logic_vector(15 downto 0);</p><p>  sel:i

116、n std_logic;</p><p>  bell:out std_logic);</p><p>  end baoshi;</p><p>  architecture zhong of baoshi is</p><p>  signal c1,ring:std_logic;

117、 </p><p><b>  begin</b></p><p>  ring_bell :process(clk1khz,clk2khz)</p><p>  begin </p><p><b>  case a is</b></p><p> 

118、 when "0101100101010000" => c1<=clk1khz;</p><p>  when "0101100101010010" => c1<=clk1khz;</p><p>  when "0101100101010100" => c1<=clk1khz;</p&g

119、t;<p>  when "0101100101010110" => c1<=clk1khz;</p><p>  when "0101100101011000" => c1<=clk1khz;</p><p>  when "0000000000000000" => c1<=cl

120、k2khz;</p><p>  when "0011000000000000" => c1<=clk2khz;</p><p>  when others => c1<='0';</p><p><b>  end case;</b></p><p>  en

121、d process ring_bell; </p><p>  bs: process(c1) </p><p><b>  begin</b></p><p>  if sel='1' then</p><p>  if c1='1' then</p><p&g

122、t;  ring<='0';</p><p>  else ring<='1';</p><p><b>  end if;</b></p><p>  end if; </p><p>  end process bs; </p>

123、<p>  bell<=ring; </p><p>  end zhong; </p><p><b>  輸入模塊電路圖:</b></p><p><b>  整體模塊電路圖</b></p><p>  六、調(diào)試中遇到的問題及解決的方法

124、:</p><p>  1、編程時,經(jīng)常導(dǎo)致語法錯誤,如:“;”沒有寫上,變量類型沒有預(yù)先標(biāo)明,前后變量名字由于缺少一個或多一個字母而導(dǎo)致出錯。</p><p>  解決辦法:對照錯誤,認(rèn)真檢查程序,看哪個地方的標(biāo)點(diǎn),變量沒有寫上或標(biāo)明。2、進(jìn)行編譯或波形仿真時,經(jīng)常得到的不是預(yù)想中的結(jié)果。</p><p>  解決辦法:將需要編譯或進(jìn)行仿真的實(shí)體文件置頂,經(jīng)檢錯無

125、誤后,進(jìn)行波形仿真,在仿真之前需要合理設(shè)置仿真結(jié)束時間和信號周期。</p><p>  3、在控制時間的顯示的時候,由于變量太多多發(fā)現(xiàn)不能完全的控制住變量,導(dǎo)致顯示的時候出現(xiàn)了亂碼,數(shù)碼管顯示不正常</p><p>  解決辦法:減少變量,仔細(xì)推敲,合理命名。</p><p><b>  七、心得體會</b></p><p&

126、gt;  一個多星期的課程設(shè)計(jì)讓我受益匪淺,也讓我真正明白理論與實(shí)踐相結(jié)合的重要性。通過具體實(shí)踐才能讓自己清楚哪些知識已經(jīng)掌握,哪些知識仍需鞏固加強(qiáng)。與此同時,我也對EDA以及VHDL語言有了進(jìn)一步了解,對于其結(jié)構(gòu)、語法、功能等認(rèn)識不少。當(dāng)然,我目前所做的還僅僅只是一些基本操作,要想真正將其融會貫通還需要今后更多的學(xué)習(xí)與實(shí)踐。</p><p>  雖然只是一個小設(shè)計(jì),我卻也從中學(xué)到了不少設(shè)計(jì)流程和一些相關(guān)問題。設(shè)

溫馨提示

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

評論

0/150

提交評論