eda數(shù)字秒表課程設(shè)計(jì)報(bào)告_第1頁
已閱讀1頁,還剩13頁未讀 繼續(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>  數(shù)字秒表設(shè)計(jì)</b></p><p>  專 業(yè): 自動(dòng)化 </p><p>  班級(jí)學(xué)號(hào): 509</p><p>  姓 名: </p><p>  2011年 6 月14日</p><p><b>  目錄</b>&l

2、t;/p><p>  數(shù)字秒表設(shè)計(jì)實(shí)驗(yàn)任務(wù)書2</p><p>  一、設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?</p><p>  二、設(shè)計(jì)實(shí)驗(yàn)說明及要求:2</p><p>  三、數(shù)字秒表組成及功能:2</p><p>  四、系統(tǒng)硬件要求:2</p><p>  五、設(shè)計(jì)內(nèi)容及步驟:3</p>

3、;<p><b>  六、硬件實(shí)現(xiàn)3</b></p><p><b>  實(shí)驗(yàn)報(bào)告3</b></p><p>  一、數(shù)字秒表頂層設(shè)計(jì)3</p><p>  二、數(shù)字秒表內(nèi)部設(shè)計(jì)4</p><p><b>  1、分頻器4</b></p>

4、<p>  2、十進(jìn)制計(jì)數(shù)器5</p><p>  3、六進(jìn)制計(jì)數(shù)器6</p><p>  4、二十四進(jìn)制計(jì)數(shù)器8</p><p>  5、數(shù)據(jù)選擇和數(shù)碼管選擇模塊9</p><p>  6、數(shù)碼管驅(qū)動(dòng)模塊:10</p><p>  三、數(shù)字秒表仿真波形11</p><p>

5、;<b>  四、硬件驗(yàn)證12</b></p><p><b>  五、實(shí)驗(yàn)總結(jié)12</b></p><p>  數(shù)字秒表設(shè)計(jì)實(shí)驗(yàn)任務(wù)書</p><p><b>  一、設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?lt;/b></p><p>  在MAX+plusII軟件平臺(tái)上,熟練運(yùn)用VHDL語言,完成

6、數(shù)字時(shí)鐘設(shè)計(jì)的軟件編程、編譯、綜合、仿真,使用EDA實(shí)驗(yàn)箱,實(shí)現(xiàn)數(shù)字秒表的硬件功能。</p><p>  二、設(shè)計(jì)實(shí)驗(yàn)說明及要求:</p><p>  1、數(shù)字秒表主要由:分頻器、掃描顯示譯碼器、一百進(jìn)制計(jì)數(shù)器、六十進(jìn)制計(jì)數(shù)器(或十進(jìn)制計(jì)數(shù)器與6進(jìn)制計(jì)數(shù)器)、十二進(jìn)制計(jì)數(shù)器(或二十四進(jìn)制計(jì)數(shù)器)電路組成。在整個(gè)秒表中最關(guān)鍵的是如何獲得一個(gè)精確的100HZ計(jì)時(shí)脈沖,除此之外,數(shù)字秒表需有清零

7、控制端,以及啟動(dòng)控制端、保持保持,以便數(shù)字時(shí)鐘能隨意停止及啟動(dòng)。</p><p>  2、數(shù)字秒表顯示由時(shí)(12或24進(jìn)制任選)、分(60進(jìn)制)、秒(60進(jìn)制)、百分之一秒(一百進(jìn)制)組成,利用掃描顯示譯碼電路在八個(gè)數(shù)碼管顯示。</p><p>  3、能夠完成清零、啟動(dòng)、保持(可以使用鍵盤或撥碼開關(guān)置數(shù))功能。</p><p>  4、時(shí)、分、秒、百分之一秒顯示準(zhǔn)

8、確。</p><p>  三、數(shù)字秒表組成及功能:</p><p>  1、分頻率器:用來產(chǎn)生100HZ計(jì)時(shí)脈沖;</p><p>  2、二十四進(jìn)制計(jì)數(shù)器:對(duì)時(shí)進(jìn)行計(jì)數(shù);</p><p>  3、六進(jìn)制計(jì)數(shù)器:分別對(duì)秒十位和分十位進(jìn)行計(jì)數(shù);</p><p>  4、十進(jìn)制計(jì)數(shù)器:分別對(duì)秒個(gè)位和分個(gè)位進(jìn)行計(jì)數(shù);<

9、/p><p>  5、掃描顯示譯碼器:完成對(duì)7字段數(shù)碼管顯示的控制;</p><p><b>  四、系統(tǒng)硬件要求:</b></p><p>  1、時(shí)鐘信號(hào)為10MHz;</p><p>  2、FPGA芯片型號(hào)EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根據(jù)實(shí)驗(yàn)箱上FPGA芯片

10、具體選擇);</p><p>  3、8個(gè)7段掃描共陰級(jí)數(shù)碼顯示管;</p><p>  4、按鍵開關(guān)(清零、啟動(dòng)、保持);</p><p>  五、設(shè)計(jì)內(nèi)容及步驟:</p><p>  1、根據(jù)電路持點(diǎn),用層次設(shè)計(jì)概念。將此設(shè)計(jì)任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,同時(shí)加深層次化設(shè)計(jì)概念;</p><p

11、>  2、軟件的元件管理深層含義,以及模塊元件之間的連接概念,對(duì)于不同目錄下的同一設(shè)計(jì),如何熔合;</p><p>  3、適配劃分前后的仿真內(nèi)容有何不同概念,仿真信號(hào)對(duì)象有何不同,有更深一步了解。熟悉了CPLD/FPGA設(shè)計(jì)的調(diào)試過程中手段的多樣化;</p><p>  4、按適配劃分后的管腳定位,同相關(guān)功能塊硬件電路接口連線;</p><p>  5、所有

12、模塊盡量采用VHDL語言設(shè)計(jì)。</p><p><b>  六、硬件實(shí)現(xiàn)</b></p><p>  將時(shí)序仿真正確的文件下載到實(shí)驗(yàn)箱中的EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3中,通過合適的管腳分配,將相應(yīng)的管腳連接起來,驗(yàn)證設(shè)計(jì)是否完成設(shè)計(jì)要求;</p><p><b>  實(shí)驗(yàn)報(bào)告&

13、lt;/b></p><p>  一、數(shù)字秒表頂層設(shè)計(jì)</p><p>  外部輸入:?jiǎn)?dòng)/停止信號(hào)(start);</p><p>  10MHZ的時(shí)鐘信號(hào)(clk);</p><p>  清零信號(hào)(clr);</p><p>  外部輸出:位選控制信號(hào)(sel0、sel1、sel2);</p>

14、<p>  7段數(shù)碼管顯示信號(hào)(led0、led1、led2、led3、led4、led5、led6、led7);</p><p><b>  數(shù)字秒表頂層原理圖</b></p><p>  二、數(shù)字秒表內(nèi)部設(shè)計(jì)</p><p><b>  1、分頻器</b></p><p>  功能:將

15、10MHz的時(shí)鐘信號(hào)轉(zhuǎn)換成100Hz的計(jì)時(shí)脈沖,使秒表正常工作。</p><p><b>  圖標(biāo):</b></p><p><b>  VHDL語言:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p&

16、gt;<p>  entity div is</p><p>  port(clr,clk: in bit;q: buffer bit);</p><p><b>  end div;</b></p><p>  architecture a of div is</p><p>  signal count

17、er:integer range 0 to 49999;</p><p><b>  begin</b></p><p>  process(clr,clk)</p><p><b>  begin</b></p><p>  if (clk='1' and clk'even

18、t) then </p><p>  if clr='1' then</p><p>  counter<=0;</p><p>  elsif counter=49999 then</p><p>  counter<=0;</p><p>  q<= not q;<

19、/p><p><b>  else</b></p><p>  counter<=counter+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;

20、</p><p><b>  end a;</b></p><p><b>  波形仿真:</b></p><p><b>  2、十進(jìn)制計(jì)數(shù)器</b></p><p>  功能:通過在計(jì)時(shí)脈沖的作用下進(jìn)行逢十進(jìn)一,從而完成對(duì)秒個(gè)位和分個(gè)位進(jìn)行計(jì)數(shù)的功能。</p>

21、<p><b>  圖標(biāo):</b></p><p><b>  VHDL語言:</b></p><p>  library ieee; </p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigne

22、d.all;</p><p>  entity count10 is</p><p>  port(clr,start,clk: in bit;</p><p>  cout: out bit;</p><p>  daout: out std_logic_vector(3 downto 0));</p><p>  

23、end count10;</p><p>  architecture a of count10 is</p><p>  signal temp:std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  daout<=temp; </p

24、><p>  process(clk,clr)</p><p><b>  begin</b></p><p>  if clr='1' then </p><p>  temp<="0000";</p><p>  cout<='0';

25、 </p><p>  elsif (clk'event and clk='1') then</p><p>  if start='1' then </p><p>  if temp>="1001" then </p><p>  temp<="0000&q

26、uot;;</p><p>  cout<='1'; </p><p><b>  else </b></p><p>  temp<=temp+1; </p><p>  cout<='0'; </p><p><b>  end i

27、f; </b></p><p><b>  end if; </b></p><p><b>  end if; </b></p><p>  end process;</p><p><b>  end a;</b></p><p><

28、;b>  波形仿真:</b></p><p><b>  3、六進(jìn)制計(jì)數(shù)器</b></p><p>  功能:通過在計(jì)時(shí)脈沖的作用下進(jìn)行逢六進(jìn)一,完成秒表秒的十位部分和分的十位部分的計(jì)數(shù)功能。</p><p><b>  圖標(biāo):</b></p><p><b>  VHD

29、L語言:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity count6 is</p><p>  po

30、rt(clr,start,clk: in bit;</p><p>  cout: out std_logic;</p><p>  daout: out std_logic_vector(3 downto 0));</p><p>  end count6;</p><p>  architecture a of count6 is<

31、/p><p>  signal temp:std_logic_vector(3 downto 0);</p><p><b>  begin </b></p><p>  daout<=temp; </p><p>  process(clk,clr)</p><p><b>  be

32、gin</b></p><p>  if clr='1' then </p><p>  temp<="0000";</p><p>  cout<='0'; </p><p>  elsif (clk'event and clk='1') t

33、hen</p><p>  if start='1' then </p><p>  if temp>="0101" then </p><p>  temp<="0000";</p><p>  cout<='1'; </p><p

34、><b>  else </b></p><p>  temp<=temp+1; </p><p>  cout<='0'; </p><p><b>  end if; </b></p><p><b>  end if; </b><

35、/p><p><b>  end if; </b></p><p>  end process; </p><p><b>  end a;</b></p><p><b>  波形仿真:</b></p><p>  4、二十四進(jìn)制計(jì)數(shù)器</p>

36、<p>  功能:通過在計(jì)時(shí)脈沖的作用下進(jìn)行逢二十四進(jìn)一,從而對(duì)時(shí)進(jìn)行計(jì)數(shù)。</p><p><b>  圖標(biāo):</b></p><p><b>  VHDL語言:</b></p><p>  library ieee; </p><p>  use ieee.std_logic_11

37、64.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity count24 is</p><p>  port(clr,start,clk:in std_logic;</p><p>  hour0,hour1:out std_logic_vector(3 downt

38、o 0));</p><p>  end count24; </p><p>  architecture a of count24 is</p><p>  begin process(clr,clk) </p><p>  variable cnt1,cnt0:std_logic_vector(3 downto 0);</p>

39、<p><b>  begin </b></p><p>  if clr='1' then cnt0:="0000"; cnt1:="0000";</p><p>  elsif clk'event and clk='1' then</p><p>

40、;  if start='1' then</p><p>  if cnt1="0010" and cnt0="0011"</p><p>  then cnt1:="0000";</p><p>  cnt0:="0000"; </p><p>

41、  elsif cnt0<"1001" then cnt0:=cnt0+1; </p><p>  else cnt0:="0000";</p><p>  cnt1:=cnt1+1;</p><p><b>  end if;</b></p><p><b>  

42、end if;</b></p><p><b>  end if;</b></p><p>  hour0<=cnt0;</p><p>  hour1<=cnt1;</p><p>  end process; </p><p><b>  end a;<

43、/b></p><p><b>  波形仿真:</b></p><p>  5、數(shù)據(jù)選擇和數(shù)碼管選擇模塊</p><p>  功能:通過每個(gè)計(jì)數(shù)器輸入的dain信號(hào)對(duì)數(shù)碼管進(jìn)行選擇。</p><p><b>  圖標(biāo):</b></p><p><b>  VH

44、DL語言:</b></p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity seltime is</p><p>  

45、port(clk: in bit;</p><p>  dain0,dain1,dain2,dain3,dain4,dain5,dain6,dain7: in std_logic_vector(3 downto 0);</p><p>  sel: out std_logic_vector(2 downto 0);</p><p>  daout: out std_

46、logic_vector(3 downto 0));</p><p>  end seltime;</p><p>  architecture a of seltime is</p><p>  signal temp:integer range 0 to 7;</p><p><b>  begin</b></

47、p><p>  process(clk)</p><p><b>  begin</b></p><p>  if (clk='1'and clk'event) then </p><p>  if temp=7 then temp<=0;</p><p>  else

48、 temp<=temp + 1; </p><p>  end if; </p><p>  case temp is</p><p>  when 0=>sel<="000";daout<=dain0;</p><p>  when 1=>sel<="001

49、";daout<=dain1;</p><p>  when 2=>sel<="010";daout<=dain2;</p><p>  when 3=>sel<="011";daout<=dain3;</p><p>  when 4=>sel<="1

50、00";daout<=dain4;</p><p>  when 5=>sel<="101";daout<=dain5;</p><p>  when 6=>sel<="110";daout<=dain6;</p><p>  when 7=>sel<="

51、;111";daout<=dain7;</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end a;</b></p>

52、<p><b>  波形仿真:</b></p><p>  6、數(shù)碼管驅(qū)動(dòng)模塊:</p><p>  功能:通過對(duì)輸入的信號(hào)進(jìn)行編碼,完成對(duì)7段數(shù)碼管的驅(qū)動(dòng),使數(shù)碼管顯示出對(duì)應(yīng)的數(shù)字。</p><p><b>  圖標(biāo):</b></p><p><b>  VHDL語言:&l

53、t;/b></p><p>  library ieee; </p><p>  use ieee.std_logic_1164.all; </p><p>  entity deled is </p><p>  port(num:in std_logic_vector(3 downto 0); </p><p&g

54、t;  led:out std_logic_vector(6 downto 0)); </p><p>  end deled ; </p><p>  architecture a of deled is </p><p><b>  begin </b></p><p>  process(num) </p&g

55、t;<p><b>  begin </b></p><p>  case num is </p><p>  when"0000"=>led<="0111111";-----------3FH</p><p>  when"0001"=>led<

56、="0000110";-----------06H </p><p>  when"0010"=>led<="1011011";-----------5BH </p><p>  when"0011"=>led<="1001111";-----------4FH &l

57、t;/p><p>  when"0100"=>led<="1100110";-----------66H </p><p>  when"0101"=>led<="1101101";-----------6DH </p><p>  when"0110&qu

58、ot;=>led<="1111101";-----------7DH </p><p>  when"0111"=>led<="0100111";-----------27H </p><p>  when"1000"=>led<="1111111";--

59、---------7FH </p><p>  when"1001"=>led<="1101111";-----------6FH </p><p>  when others=>led<="0000000";-----------00H </p><p>  end case; &

60、lt;/p><p>  end process; </p><p><b>  end a;</b></p><p><b>  波形仿真:</b></p><p>  三、數(shù)字秒表仿真波形</p><p><b>  四、硬件驗(yàn)證</b></p>

61、;<p>  1、選擇合適的芯片類型,進(jìn)行自動(dòng)分配管腳,在實(shí)驗(yàn)箱上將相應(yīng)的管腳連接起來;</p><p>  2、將做好的數(shù)字秒表下載到實(shí)驗(yàn)箱中;</p><p>  3、驗(yàn)證功能,當(dāng)輸入端clr撥至低電平,start撥至高電平時(shí),秒表開始計(jì)時(shí),能清楚的顯示時(shí)、分、,秒、0.01秒;當(dāng)把start撥至低電平時(shí)計(jì)時(shí),秒表暫停,當(dāng)把start再次撥回高電平時(shí),秒表繼續(xù)計(jì)時(shí);當(dāng)把c

62、lr撥至高電平時(shí),8個(gè)數(shù)碼管同時(shí)變?yōu)?,秒表停止工作。</p><p><b>  五、實(shí)驗(yàn)總結(jié)</b></p><p>  通過本次課程設(shè)計(jì),使我對(duì)MAX+plusII軟件的使用、實(shí)驗(yàn)箱的使用、VHDL語言以及一個(gè)課題從開始的分析到最后的綜合編譯和仿真也有了更深刻的認(rèn)識(shí)。</p><p>  一拿到課程設(shè)計(jì)題目時(shí)確實(shí)有些迷茫,我就到圖書館查閱

63、了相關(guān)的書籍、上網(wǎng)查了查資料、以及與同學(xué)討論了整體構(gòu)思和VHDL語言的設(shè)計(jì)。雖然大體思路有了,但是在編程的過程中還是遇到了不少問題。</p><p>  分頻器的設(shè)計(jì)就是一個(gè)難題,100HZ的周期是10MHZ的100000倍,那counter的取值不是該是100000,那就是從0to99999,但是硬件驗(yàn)證時(shí)秒表明顯走得偏慢。那counter要取什么值呢?是取0to49999?通過分析才明白,如果語句中沒有用到q

64、<= not q;語句,在0.01秒內(nèi),q很長(zhǎng)一段時(shí)間都保持低電平,只有在最后0.2us進(jìn)行高低電平的跳變;但如果用了q<= not q;語句,在0.005s時(shí),q就從電平跳變到高電平,然后一直保持到0.01s才跳變到低電平,也就是將0.01s作為一個(gè)高低電平的周期。</p><p>  數(shù)碼管驅(qū)動(dòng)模塊的輸出端口也遇到了問題,如果接線按EDA實(shí)驗(yàn)書上的接法,輸出端口有7個(gè),驗(yàn)證的時(shí)候總是有錯(cuò),最后只好

65、將輸出端口改成一個(gè)led[6..0],在功能上同樣也滿足驅(qū)動(dòng)數(shù)碼管的功能。</p><p>  雖然在實(shí)驗(yàn)中遇到了許多這樣那樣的大小問題,但是我還是積極的尋找解決問題的辦法,認(rèn)真分析問題,研究問題,解決問題,最后終于設(shè)計(jì)出了數(shù)字秒表,并能實(shí)現(xiàn)各個(gè)功能端的作用。</p><p>  課程設(shè)計(jì)不僅教會(huì)了我課本上的知識(shí),更使我自身的學(xué)習(xí)能力和遇到問題時(shí)分析思考問題的能力有了明顯提高,自身的意志和

溫馨提示

  • 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)論