eda課程設(shè)計(jì)---電子時(shí)鐘_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  EDA技術(shù)課程設(shè)計(jì)</b></p><p><b>  課題: 電子時(shí)鐘</b></p><p>  系 別: 電氣與電子工程系</p><p>  專(zhuān) 業(yè): 電子信息工程</p><p><b>  姓 名: </b><

2、;/p><p><b>  學(xué) 號(hào): </b></p><p><b>  指導(dǎo)教師: </b></p><p>  2012年6月 日</p><p><b>  成績(jī)?cè)u(píng)定·</b></p><p>  一、指導(dǎo)教師評(píng)語(yǔ)(根據(jù)學(xué)生設(shè)計(jì)報(bào)告

3、質(zhì)量、答辯情況及其平時(shí)表現(xiàn)綜合評(píng)定)。</p><p><b>  二、課程設(shè)計(jì)評(píng)分</b></p><p>  成績(jī): </p><p>  2012年 6月 日</p><p><b>  目 錄</b></p><p><b>

4、  一、設(shè)計(jì)目的1</b></p><p><b>  二、設(shè)計(jì)要求1</b></p><p>  三、總體設(shè)計(jì)方案要求1</p><p>  1、設(shè)計(jì)的總體原理1</p><p><b>  2、設(shè)計(jì)內(nèi)容1</b></p><p>  四、EDA設(shè)計(jì)與

5、仿真2</p><p>  1、秒計(jì)時(shí)器模塊2</p><p>  2、分計(jì)數(shù)器模塊4</p><p>  3、時(shí)計(jì)數(shù)器模塊6</p><p><b>  4、分頻器模塊8</b></p><p>  5、掃描電路模塊9</p><p>  6、譯碼顯示器模塊

6、11</p><p><b>  7、系統(tǒng)設(shè)計(jì)13</b></p><p><b>  五、硬件實(shí)現(xiàn)16</b></p><p>  1、硬件實(shí)現(xiàn)步驟16</p><p>  2、硬件實(shí)現(xiàn)結(jié)果16</p><p><b>  六、設(shè)計(jì)總結(jié)18</b&

7、gt;</p><p><b>  七、參考文獻(xiàn)18</b></p><p>  八、設(shè)計(jì)生成的電路總圖18</p><p><b>  一、設(shè)計(jì)目的</b></p><p>  這次課程設(shè)計(jì)主要是培養(yǎng)我們的實(shí)際動(dòng)手能力及對(duì)EDA這門(mén)課程的深入的理解,增強(qiáng)我們對(duì)EDA程序設(shè)計(jì)流程的掌握。這個(gè)課題

8、還要求我們掌握計(jì)數(shù)器的設(shè)計(jì),六十進(jìn)制計(jì)數(shù)器和二十四進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法,以及各個(gè)進(jìn)制之間的連接關(guān)系。</p><p><b>  二、設(shè)計(jì)要求</b></p><p>  1、具有時(shí)、分、秒,計(jì)數(shù)顯示功能,以二十四時(shí)制循環(huán)計(jì);</p><p>  2、設(shè)置啟動(dòng)、暫停開(kāi)關(guān),以滿(mǎn)足啟動(dòng)計(jì)時(shí)和停止計(jì)時(shí)的功能;</p><p>

9、  3、要求計(jì)時(shí)精度為0.01秒,最長(zhǎng)時(shí)間為24H。</p><p>  4、具有時(shí)間設(shè)置(清零、調(diào)節(jié)小時(shí)和分功能)和鬧鐘功能;(擴(kuò)展功能選作)</p><p>  5、整點(diǎn)報(bào)時(shí),整點(diǎn)報(bào)時(shí)的同時(shí),LED燈花樣顯示或者給段動(dòng)聽(tīng)音樂(lè);(擴(kuò)展功能選作)</p><p>  三、總體設(shè)計(jì)方案要求</p><p><b>  1.設(shè)計(jì)的總體原

10、理</b></p><p>  要實(shí)現(xiàn)一個(gè)數(shù)字時(shí)鐘系統(tǒng),整個(gè)系統(tǒng)由主要模塊電路模塊和外部輸入輸出以及顯示模塊組成。首先分別實(shí)現(xiàn)單個(gè)模塊的功能,然后再通過(guò)級(jí)聯(lián)組合的方式實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)。原理框圖如下:</p><p>  圖3-1.總體設(shè)計(jì)框圖</p><p><b>  2.設(shè)計(jì)內(nèi)容</b></p><p&g

11、t;  電子時(shí)鐘主要模塊有四個(gè),它包括脈沖信號(hào)產(chǎn)生模塊(即分頻電路)、計(jì)數(shù)模塊(計(jì)數(shù)模塊又分為秒計(jì)數(shù)模塊、分計(jì)數(shù)模塊和時(shí)計(jì)數(shù)模塊)、碼顯示模塊、復(fù)位模塊。各個(gè)模塊先用EDA技術(shù)中的VHDL語(yǔ)言編程仿真,再生成各個(gè)小模塊的模擬元件,再元件例化,根據(jù)設(shè)計(jì)連接電路實(shí)現(xiàn)數(shù)字電子鐘系統(tǒng)。</p><p>  四、EDA設(shè)計(jì)及仿真(各個(gè)模塊設(shè)計(jì)程序、原理框圖及仿真波形圖)1.秒計(jì)時(shí)器(second)library ieee

12、;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity second is</p><p>  port(clk,reset:in std_logic;</p><p>  

13、sec1,sec2:out std_logic_vector(3 downto 0); ---------秒計(jì)數(shù)器的兩個(gè)輸出;</p><p>  cin:out std_logic);</p><p>  end second;</p><p>  architecture second1 of second is</p><p>  s

14、ignal sec1_t,sec2_t:std_logic_vector(3 downto 0); ---------秒計(jì)數(shù)器的中間信號(hào);</p><p><b>  begin</b></p><p>  process(clk,reset)</p><p><b>  begin</b></p>&l

15、t;p>  if reset='1'then </p><p>  sec1_t<="0000"; ----------復(fù)位信號(hào)為1時(shí)秒信號(hào)復(fù)位;</p><p>  sec2_t<="0000";</p><p>  

16、elsif clk'event and clk='1'then </p><p>  if sec1_t="1001"then </p><p>  sec1_t<="0000"; ------秒計(jì)數(shù)器的個(gè)位為9時(shí)變?yōu)?;</p><p>  

17、if sec2_t="0101"then</p><p>  sec2_t<="0000"; ------秒計(jì)數(shù)器的十位為5時(shí)變?yōu)?;</p><p><b>  else</b></p><p>  sec2_t<=sec2_t+1;

18、 -----秒計(jì)數(shù)器的十位不為5時(shí)加1; </p><p><b>  end if;</b></p><p><b>  else</b></p><p>  sec1_t<=sec1_t+1; -----秒計(jì)數(shù)器的個(gè)位不為9時(shí)加1;</p>

19、;<p><b>  end if;</b></p><p>  if sec1_t="1001" and sec2_t="0101"then ----------當(dāng)計(jì)數(shù)器數(shù)值為59時(shí)向分為進(jìn)1;</p><p>  cin<='1';

20、---------向分進(jìn)1,作為分的時(shí)鐘信號(hào);</p><p><b>  else</b></p><p><b>  cin<='0';</b></p><p><b>  end if;</b></p><p><b>  end if;&

21、lt;/b></p><p>  end process;</p><p>  sec1<=sec1_t;</p><p>  sec2<=sec2_t;</p><p>  end second1;</p><p>  圖4-1 秒計(jì)數(shù)器框圖</p><p>  圖4-2

22、秒計(jì)數(shù)器時(shí)序仿真圖</p><p>  秒計(jì)數(shù)器的波形分析:由程序及仿真波形圖可以看出該計(jì)數(shù)器是59進(jìn)制計(jì)數(shù)器,當(dāng)sec1計(jì)數(shù)到9是sec2增加1,而sec1變?yōu)?,當(dāng)sec2增加到5,而且sec1為9時(shí),sec1,sec2變?yōu)?,cin1增加1向分計(jì)數(shù)器進(jìn)位,提供一個(gè)分計(jì)數(shù)器的時(shí)鐘信號(hào)。</p><p>  2. 分計(jì)數(shù)器(minute)</p><p><

23、b>  分同秒計(jì)時(shí)器一樣</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity minute is</p>&l

24、t;p>  port(clk,reset:in std_logic;</p><p>  min1,min2:out std_logic_vector(3 downto 0); --------秒計(jì)數(shù)器的兩個(gè)輸出;</p><p>  cin1:out std_logic);</p><p>  end minute;</p><p&g

25、t;  architecture minute1 of minute is</p><p>  signal min1_t, min2_t:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  process(clk,reset)</p><p>

26、<b>  begin</b></p><p>  if reset='1'then</p><p>  min1_t<="0000"; --------復(fù)位信號(hào)為1是分的信號(hào)復(fù)位為0;</p><p>  min2_t<="0000";</

27、p><p>  elsif clk'event and clk='1'then </p><p>  if min1_t="1001"then </p><p>  min1_t<="0000"; --------分計(jì)數(shù)器的個(gè)位為9時(shí)變?yōu)?;</

28、p><p>  if min2_t="0101"then</p><p>  min2_t<="0000"; --------分計(jì)數(shù)器的個(gè)位為5時(shí)變?yōu)?;</p><p><b>  else</b></p><p>  min2_t<= min

29、2_t+1; --------分計(jì)數(shù)器的十位不為5時(shí)加1; </p><p><b>  end if;</b></p><p><b>  else</b></p><p>  min1_t<= min1_t+1; --------分計(jì)數(shù)器的個(gè)位不為9

30、時(shí)加1;</p><p><b>  end if;</b></p><p>  if min1_t="1001" and min2_t="0101"then -----計(jì)數(shù)器的值到59是向時(shí)進(jìn)1;</p><p>  cin1<='1'; -

31、-----向時(shí)的進(jìn)位,相當(dāng)于時(shí)的時(shí)鐘信號(hào); </p><p><b>  else</b></p><p>  cin1<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p>

32、;<p>  end process;</p><p>  min1<=min1_t; ----------把中間信號(hào)的值付給分信號(hào);</p><p>  min2<=min2_t;</p><p>  end minute1;</p><p>  圖4-3 分計(jì)數(shù)器的

33、原理框圖</p><p>  圖4-4 分計(jì)數(shù)器的時(shí)序仿真波形圖</p><p>  圖4-5 分計(jì)數(shù)器程序錯(cuò)誤顯示圖</p><p>  分計(jì)數(shù)器波形分析:在剛開(kāi)始的仿真時(shí),程序出現(xiàn)了一點(diǎn)的錯(cuò)誤,引起錯(cuò)誤的原因是min 1,min 2這兩個(gè)信號(hào)的聲明是錯(cuò)誤的,正確的聲明方法是min1,min2。經(jīng)過(guò)改正后程序是正確的,正確的波形顯示該計(jì)數(shù)器和秒計(jì)數(shù)器是59進(jìn)制計(jì)數(shù)

34、器,當(dāng)min1計(jì)數(shù)到9是min2增加1,而min1變?yōu)?,當(dāng)min2增加到5,且min1增加到9時(shí),min1,min2變?yōu)?,cin2增加1向時(shí)計(jì)數(shù)器進(jìn)位,提供一個(gè)時(shí)計(jì)數(shù)器的時(shí)鐘信號(hào)。</p><p>  3. 時(shí)計(jì)時(shí)器(hour)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</

35、p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity hour is</p><p>  port (clk,reset:in std_logic;</p><p>  hour1,hour2:out std_logic_vector(3 downto 0)); ------時(shí)計(jì)數(shù)器

36、的兩個(gè)輸出信號(hào)</p><p><b>  end hour;</b></p><p>  architecture hour1 of hour is</p><p>  signal hour1_t,hour2_t:std_logic_vector(3 downto 0);</p><p><b>  beg

37、in</b></p><p>  process(clk,reset)</p><p><b>  begin</b></p><p>  if reset='1'then</p><p>  hour1_t<="0000";</p><p>

38、  hour2_t<="0000";</p><p>  elsif clk'event and clk='1'then</p><p>  if hour1_t="0011" and hour2_t="0010"then </p><p>  hour1_t<=&q

39、uot;0000"; ---------當(dāng)時(shí)計(jì)數(shù)器的值達(dá)到23是,當(dāng)分秒計(jì)數(shù)器都到59時(shí)時(shí)計(jì)數(shù)器變?yōu)?;</p><p>  hour2_t<="0000";</p><p><b>  else</b></p><p>  if hour1_t="0011"then

40、 </p><p>  hour1_t<="0000"; --------當(dāng)時(shí)計(jì)數(shù)器的個(gè)位為3時(shí)值變?yōu)?;</p><p>  if hour2_t="0010"then</p><p>  hour2_t<="0000"; --------當(dāng)時(shí)計(jì)數(shù)器的個(gè)位變2

41、時(shí)值變?yōu)?;</p><p><b>  else</b></p><p>  hour2_t<=hour2_t+1; --------當(dāng)時(shí)計(jì)數(shù)器的十位不為2時(shí)值加1;</p><p><b>  end if;</b></p><p><b>  else</b>&

42、lt;/p><p>  hour1_t<=hour1_t+1; --------當(dāng)時(shí)計(jì)數(shù)器的個(gè)位不為3時(shí)值加1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</

43、b></p><p>  end process;</p><p>  hour1<=hour1_t;</p><p>  hour2<=hour2_t;</p><p>  end hour1;</p><p>  圖4-6 時(shí)計(jì)數(shù)器原理框圖</p><p>  圖4-7 時(shí)

44、計(jì)數(shù)器時(shí)序仿真波形圖</p><p>  時(shí)波形圖分析:由程序及時(shí)序仿真波形圖可以知道該時(shí)計(jì)數(shù)器是二十四進(jìn)制計(jì)數(shù)器,當(dāng)hour1計(jì)數(shù)到3是hour2增加1,而hour1變?yōu)?,當(dāng)hour2增加到2,且hour1增加到3時(shí),hour2變?yōu)?,hour1也變?yōu)?。</p><p>  4. 分頻器(freq_divider)</p><p>  library IEEE

45、; </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>  entity freq_divider is</p><

46、;p>  port (reset,clk : in STD_LOGIC;</p><p>  Q: out STD_LOGIC);</p><p>  end freq_divider;</p><p>  architecture freq_divider1 of freq_divider is</p><p>  signal co

47、unt50 : integer range 0 to 49;</p><p>  signal out1:std_logic;</p><p><b>  begin</b></p><p>  process (reset,clk)</p><p><b>  begin</b></p>

48、;<p>  if reset='1' then count50<=0;</p><p>  elsif clk'event and clk='1'then</p><p>  count50<= count50 + 1 ; -----當(dāng)時(shí)鐘周期小于50是信號(hào)來(lái)時(shí)加1;</p><p>  out

49、1<= out1;</p><p>  if count50=49 then </p><p>  count50<=0;-------50個(gè)時(shí)鐘周期后計(jì)數(shù)器清零;</p><p>  out1<=not out1; -------當(dāng)時(shí)鐘周期達(dá)到50是輸出信號(hào)反相,即有高電平變低電平或有低電平變高電平;</p>&l

50、t;p><b>  end if ;</b></p><p><b>  end if;</b></p><p>  Q<= out1; -------把中間信號(hào)的值賦給總輸出;</p><p>  end process;</p><p&

51、gt;  end freq_divider1;</p><p>  圖4-8 分頻器的原理框圖</p><p>  圖4-9 分頻器的時(shí)序仿真波形圖</p><p>  圖4-10 分頻器程序錯(cuò)誤顯示圖</p><p>  分頻器波形分析:在第一次仿真是顯示程序是錯(cuò)誤的,進(jìn)過(guò)更改及調(diào)試程序正確了,由程序及時(shí)序仿真圖可以知道該分頻器是100倍

52、分頻,由于該設(shè)計(jì)的目的是設(shè)計(jì)一個(gè)數(shù)字電子鐘,可知時(shí)鐘需要一個(gè)1s的時(shí)鐘信號(hào),必須用到分頻器,該分頻器的時(shí)鐘信號(hào)的周期是100ns,經(jīng)過(guò)三次次100倍分頻,可以得到1s的時(shí)鐘信號(hào)。也就是說(shuō)在這個(gè)程序中要用到三個(gè)這樣的分頻器。</p><p><b>  5、掃描模塊源程序</b></p><p>  library ieee;</p><p> 

53、 use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity mux6 is</p><p>  port(clkscan,reset:in std_logic;</p><p>  in1,in2,in3,in4,in5,i

54、n6:in std_logic_vector(3 downto 0);</p><p>  BT:out std_logic_vector(7 downto 0);------顯示控制信號(hào)輸出</p><p>  A:out std_logic_vector(3 downto 0));-------數(shù)碼管顯示數(shù)值輸出</p><p><b>  end m

55、ux6;</b></p><p>  architecture mux60 of mux6 is</p><p>  signal cnt8:std_logic_vector(2 downto 0);</p><p><b>  begin</b></p><p>  process(clkscan,res

56、et)</p><p><b>  begin</b></p><p>  if reset='1'then</p><p>  cnt8<="000";-------異步復(fù)位</p><p>  elsif clkscan'event and clkscan='

57、1'then----------檢測(cè)時(shí)鐘上升沿</p><p>  if cnt8="111"then</p><p>  cnt8<="000";</p><p><b>  else</b></p><p>  cnt8<= cnt8+1;---------

58、六進(jìn)制計(jì)數(shù)器</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(cnt8)</p><p><b>  begin</b&g

59、t;</p><p>  case cnt8 is</p><p>  when "000" => BT <= "00000001" ; A <=in1;</p><p>  when "001" => BT <= "00000010" ; A <

60、;=in2; </p><p>  when "010" => BT <= "00000100" ; A <=in3;</p><p>  when "011" => BT <= "00001000" ; A <=in4;</p><p>  wh

61、en "100" => BT <= "00010000" ; A <=in5;</p><p>  when “101”=> BT <= "00100000" ; A <=in6;</p><p>  when “110”=> BT <= "01000000";

62、A<=“0000” ;</p><p>  when “111”=> BT <= "10000000";A<=“0000” ; ----------數(shù)據(jù)選擇輸出</p><p>  end case ; </p><p>  end process;</p><p>  end m

63、ux60;</p><p>  圖4-11 多路復(fù)用器的原理框圖</p><p>  圖4-12 多路復(fù)用器的時(shí)序仿真波形圖</p><p>  波形圖的分析:由以上的程序和波形圖可以看出來(lái),當(dāng)sel=0時(shí),多路復(fù)用器選擇的是in1,當(dāng)sel=1時(shí)選擇的是in2,當(dāng)sel=2是選擇的是in3,當(dāng)sel=3時(shí)選擇的是in4,當(dāng)sel=5時(shí)選擇的是in5.</p&

64、gt;<p>  6. 譯碼顯示模塊的VHDL程序(yima.vhd)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity yima is</p><p>  port(BT:in std_logic_vector(3 d

65、ownto 0);</p><p>  LED7:out std_logic_vector(6 downto 0));</p><p><b>  end yima;</b></p><p>  architecture behav of yima is</p><p><b>  begin</b>

66、;</p><p>  process(BT)</p><p><b>  begin</b></p><p>  case BT is </p><p>  when "0000"=> LED7<="1111110";</p><p>  wh

67、en "0001"=> LED7<="0110000";</p><p>  when "0010"=> LED7<="1101101";</p><p>  when "0011"=> LED7<="1111001";</p&g

68、t;<p>  when "0100"=> LED7<="0110011";</p><p>  when "0101"=> LED7<="1011011";</p><p>  when "0110"=> LED7<="10111

69、11";</p><p>  when "0111"=> LED7<="1110010";</p><p>  when "1000"=> LED7<="1111111";</p><p>  when "1001"=> LED

70、7<="1111011";</p><p>  when others=> LED7<="0000000";</p><p><b>  end case;</b></p><p>  end process;</p><p>  end behav;</p

71、><p>  圖4-13 譯碼顯示電路的原理框圖</p><p>  圖4-16 譯碼顯示電路的時(shí)序仿真波形圖</p><p>  7、系統(tǒng)設(shè)計(jì) 將上述5個(gè)程序作為底層文件,存放在同一個(gè)文件夾中,然后按下面的圖將這幾個(gè)文件連接起來(lái),并用元件例化語(yǔ)句編寫(xiě)頂層文件的程序,</p><p>  如下:總程序(前面的分模塊程序省略,下面只寫(xiě)了原件例化

72、得程序)</p><p>  ------------------my_components.vhd(package)------------------</p><p>  library IEEE; </p><p>  use IEEE.std_logic_1164.all;</p><p>  use IEEE.std_logic_a

73、rith.all;</p><p>  use IEEE.std_logic_unsigned.all;</p><p>  ------------------------------------------------------------</p><p>  package my_components is</p><p>  ---

74、-------------------------------------------------</p><p>  component second is</p><p>  port(clk,reset:in std_logic;</p><p>  sec1,sec2:out std_logic_vector(3 downto 0);</p>

75、<p>  cin:out std_logic);</p><p>  end component;</p><p>  -----------------------------------------------------</p><p>  component minute is</p><p>  port(clk,res

76、et:in std_logic;</p><p>  min1,min2:out std_logic_vector(3 downto 0);</p><p>  cin1:out std_logic);</p><p>  end component;</p><p>  -----------------------------------

77、---------------------</p><p>  component hour is</p><p>  port (clk,reset:in std_logic;</p><p>  hour1,hour2:out std_logic_vector(3 downto 0));</p><p>  end component;&

78、lt;/p><p>  ----------------------------------------------------------</p><p>  component freq_divider is</p><p>  port (reset,clk : in STD_LOGIC;</p><p>  Q: out STD_LOG

79、IC);</p><p>  end component;</p><p>  --------------------------------------------------------</p><p>  component mux6 is</p><p>  port(clkscan,reset:in std_logic;</

80、p><p>  in1,in2,in3,in4,in5,in6:in std_logic_vector(3 downto 0);</p><p>  BT:out std_logic_vector(7 downto 0);</p><p>  A:out std_logic_vector(3 downto 0));</p><p>  end c

81、omponent;</p><p>  ---------------------------------------------------------</p><p>  component yima is</p><p>  port(BT1:in std_logic_vector(3 downto 0);</p><p>  LED7

82、:out std_logic_vector(6 downto 0));</p><p>  end component;</p><p>  ---------------------------------------------------------</p><p>  end my_components;</p><p>  ----

83、-----------------------------------------------------</p><p>  ------------------time-----------------------------------</p><p>  library IEEE; </p><p>  use IEEE.std_logic_1164.all

84、;</p><p>  use IEEE.std_logic_arith.all;</p><p>  use IEEE.std_logic_unsigned.all;</p><p>  use work.my_components.all;</p><p>  ---------------------------------------

85、------------------</p><p>  entity time is</p><p>  port(clk,clkscan,reset:in std_logic;</p><p>  LED7:out std_logic_vector(6 downto 0);</p><p>  BT:out std_logic_vecto

86、r(7 downto 0));</p><p><b>  end time;</b></p><p>  ---------------------------------------------------------</p><p>  architecture structural of time is</p><p

87、>  signal x3,x4,x5:std_logic;</p><p>  signal x6,x7,x8,x9,x10,x11,x12:std_logic_vector(3 downto 0);</p><p><b>  begin </b></p><p>  u1:component second port map (x3,r

88、eset,x6,x7,x4);</p><p>  u2:component minute port map (x4,reset,x8,x9,x5);</p><p>  u3:component hour port map(x5,reset,x10,x11);</p><p>  u4:component freq_divider port map(clk,res

89、et,x3);</p><p>  u5:component mux6 port map(clkscan,reset,x6,x7,x8,x9,x10,x11,BT,x12);</p><p>  u6:component yima port map(x12,LED7);</p><p>  end structural;</p><p>  

90、----------------------------------------------------------</p><p>  圖4-17 總程序的時(shí)序仿真波形圖</p><p>  程序仿真波形圖分析:在這個(gè)程序中兩個(gè)時(shí)鐘信號(hào)clk,clkscan是不同頻率的,clk時(shí)鐘信號(hào)控制秒計(jì)數(shù)器,它的周期是100ns,而clkscan控制著整個(gè)程序,它的頻率可以是任意設(shè)定的。</

91、p><p><b>  五、硬件實(shí)現(xiàn) </b></p><p><b>  1、給出硬件實(shí)現(xiàn)</b></p><p><b>  實(shí)驗(yàn)步驟:</b></p><p> ?、糯蜷_(kāi)QuartusⅡ9.0軟件,建立進(jìn)程,進(jìn)程的名字和程序的名字相同;</p><p>

92、; ?、拼蜷_(kāi)新建選擇VHDL File,然后把程序輸入進(jìn)去;</p><p>  ⑶保存文件點(diǎn)擊軟件頁(yè)面上方的編譯按鍵進(jìn)行編譯;</p><p> ?、染幾g成功后,進(jìn)行軟件仿真,點(diǎn)擊File選擇Vector Waveform File,然后點(diǎn)擊鼠標(biāo)右鍵選inset node or bus鍵,把腳碼輸入進(jìn)去,再進(jìn)行腳碼設(shè)定;</p><p>  ⑸然后保存,點(diǎn)擊Ass

93、igment中的settings選擇時(shí)序仿真,進(jìn)行程序的時(shí)序仿真;</p><p>  ⑹時(shí)序仿真成功后,點(diǎn)擊上方Assigment Editor鍵進(jìn)行腳碼鎖定;腳碼鎖定中我們用了模式六。</p><p>  圖5-1 腳碼鎖定圖</p><p><b>  2.硬件仿真結(jié)果</b></p><p>  在這次設(shè)計(jì)中剛開(kāi)

94、始由于種種原因我們的硬件仿真結(jié)果沒(méi)能夠正常的顯示出來(lái),經(jīng)多次的努力我們修改了程序后,最終仿真結(jié)果顯示是正確的。下面我照了一些我們仿真的硬件結(jié)果,如下圖所示:</p><p>  圖5-2 硬件仿真結(jié)果圖示一</p><p>  圖5-3 硬件仿真結(jié)果圖示二</p><p>  圖5-4 硬件仿真結(jié)果圖示三</p><p>  圖5-5

95、 硬件仿真結(jié)果圖示四</p><p><b>  六、設(shè)計(jì)總結(jié)</b></p><p>  在這次設(shè)計(jì)過(guò)程中,我們?cè)诶蠋煹闹笇?dǎo)下對(duì)VHDL這門(mén)課程逐步加深了了解,但是在設(shè)計(jì)中遇到很多問(wèn)題,其中在程序設(shè)計(jì)方面的問(wèn)題在我們查閱資料后的到了解決,在程序軟件的實(shí)現(xiàn)過(guò)程中所遇到的問(wèn)題最后也得到了圓滿(mǎn)的解答,但是在程序最后的硬件仿真過(guò)程中遇到的問(wèn)題還是沒(méi)能夠得到解決,這也是這次課

96、程設(shè)計(jì)中的遺憾之處。</p><p>  計(jì)數(shù)器的設(shè)計(jì)并不困難,就是用了三個(gè)計(jì)數(shù)器,其中秒和分計(jì)數(shù)器是六十進(jìn)制計(jì)數(shù)器,時(shí)計(jì)數(shù)器是二十四計(jì)數(shù)器,并且秒和分各有一個(gè)進(jìn)位端,秒到59時(shí)向分進(jìn)一位,分到59時(shí)向時(shí)進(jìn)一位,這個(gè)設(shè)計(jì)中的主要問(wèn)題是時(shí)分秒與一碼電路的連接,在這里我們用到了動(dòng)態(tài)掃描電路,在腳碼鎖定時(shí)我們用了模式六,但是結(jié)果不理想,這次設(shè)計(jì)的硬件仿真結(jié)果不理想。</p><p>  經(jīng)過(guò)這次

97、課程設(shè)計(jì)我還得到了一點(diǎn)感想,無(wú)論我們做什么事情都要懂得團(tuán)結(jié),在生活中我們自己的力量是極其薄弱的,有時(shí)候只有我們大家團(tuán)結(jié)一致才能攻克所有困難,戰(zhàn)無(wú)不勝。 </p><p><b>  七.參考文獻(xiàn)</b></p><p>  ⑴ 百度文庫(kù),基于EDA的數(shù)字電子鐘的實(shí)現(xiàn);</p><p> ?、?Volnei A.Pedroni.VHDL 數(shù)字電

溫馨提示

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

評(píng)論

0/150

提交評(píng)論