eda課程--數(shù)字秒表設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《EDA技術(shù)綜合設(shè)計(jì)》</p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  報(bào)告題目: 數(shù)字秒表設(shè)計(jì) </p><p>  作者所在系部: 電子工程系 </p><p>  作者所在專業(yè): 自動(dòng)化

2、 </p><p><b>  內(nèi) 容 摘 要</b></p><p>  本次設(shè)計(jì)的目的就是在掌握EDA實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的初步使用基礎(chǔ)上,了解EDA技術(shù),對(duì)計(jì)算機(jī)系統(tǒng)中時(shí)鐘控制系統(tǒng)進(jìn)一步了解,掌握狀態(tài)機(jī)工作原理,同時(shí)了解計(jì)算機(jī)時(shí)鐘脈沖是怎么產(chǎn)生和工作的。在掌握所學(xué)的計(jì)算機(jī)組成與結(jié)構(gòu)課程理論知識(shí)時(shí)。通過(guò)對(duì)數(shù)字秒表的設(shè)計(jì),進(jìn)行理論與實(shí)際的結(jié)合,提高與計(jì)算機(jī)有

3、關(guān)設(shè)計(jì)能力,提高分析、解決計(jì)算機(jī)技術(shù)實(shí)際問(wèn)題的能力。通過(guò)課程設(shè)計(jì)深入理解計(jì)算機(jī)結(jié)構(gòu)與控制實(shí)現(xiàn)的技術(shù),達(dá)到課程設(shè)計(jì)的目標(biāo)。</p><p>  利用VHDL語(yǔ)言設(shè)計(jì)基于計(jì)算機(jī)電路中時(shí)鐘脈沖原理的數(shù)字秒表。該數(shù)字秒表能對(duì)0秒~59分59.99秒范圍進(jìn)行計(jì)時(shí),顯示最長(zhǎng)時(shí)間是59分59秒,到了一小時(shí)后,報(bào)警器開(kāi)始報(bào)警,計(jì)時(shí)精度達(dá)到10ms。設(shè)計(jì)了復(fù)位開(kāi)關(guān)和啟停開(kāi)關(guān)。復(fù)位開(kāi)關(guān)可以在任何情況下使用,使用以后計(jì)時(shí)器清零,并做好

4、下一次計(jì)時(shí)的準(zhǔn)備。</p><p>  字體、格式、圖號(hào)不對(duì)、重新修改</p><p><b>  關(guān)鍵詞</b></p><p>  EDA、可編程邏輯器件、計(jì)數(shù)器、顯示</p><p><b>  目 錄</b></p><p>  1.設(shè)計(jì)要求 ……………………………

5、……………… 1</p><p>  實(shí)驗(yàn)?zāi)康?…………………………………………… 1</p><p>  實(shí)驗(yàn)原理 …………………………………………… 1</p><p>  源程序(*.vhd)和原理圖(*gdf) ……………… 2</p><p>  4.1計(jì)數(shù)器模塊…………………………………… 2</

6、p><p>  4.2報(bào)警模塊……………………………………… 3</p><p>  4.3顯示模塊……………………………………… 4</p><p>  4.4選擇模塊……………………………………… 5</p><p>  4.5秒表模塊……………………………………… 6</p><p>  仿真

7、調(diào)試和下載結(jié)果 ……………………………… 7</p><p>  收獲和體會(huì) ………………………………………… 8</p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p><b>  一、設(shè)計(jì)要求:</b></p><p>  1.秒表共有6個(gè)輸出顯示,分別為百分之一秒、十分之一

8、秒、秒、十秒、分、十分,所以共有6個(gè)計(jì)數(shù)器與之相對(duì)應(yīng),6個(gè)計(jì)數(shù)器的輸出全都為BCD碼輸出,這樣便于和顯示譯碼器的連接。當(dāng)計(jì)時(shí)達(dá)60分鐘后,蜂鳴器鳴響10聲。</p><p>  2.整個(gè)秒表還需有一個(gè)啟動(dòng)信號(hào)和一個(gè)歸零信號(hào),以便秒表能隨意停止及啟動(dòng)。</p><p>  3.秒表的邏輯結(jié)構(gòu)較簡(jiǎn)單,它主要由顯示譯碼器、分頻器、十進(jìn)制計(jì)數(shù)器、六進(jìn)制計(jì)數(shù)器和報(bào)警器組成。在整個(gè)秒表中最關(guān)鍵的是如何

9、獲得一個(gè)精確的100HZ計(jì)時(shí)脈沖。</p><p><b>  二、實(shí)驗(yàn)?zāi)康模?lt;/b></p><p>  通過(guò)本次課設(shè),加深對(duì)EDA技術(shù)設(shè)計(jì)的理解,學(xué)會(huì)用MaxplusⅡ工具軟件設(shè)計(jì)基本電路,熟練掌握VHDL語(yǔ)言,為以后工作使用打下堅(jiān)實(shí)的基礎(chǔ)。</p><p><b>  實(shí)驗(yàn)原理:</b></p><

10、;p>  秒表由于其計(jì)時(shí)精確,分辨率高(0.01秒),在各種競(jìng)技場(chǎng)所得到了廣泛的應(yīng)用。秒表的工作原理與數(shù)字時(shí)基本相同,唯一不同的是秒表的計(jì)時(shí)時(shí)鐘信號(hào),由于其分辨率為0.01秒,所以整個(gè)秒表的工作時(shí)鐘是在100Hz的時(shí)鐘信號(hào)下完成。當(dāng)秒表的計(jì)時(shí)小于1個(gè)小時(shí)時(shí),顯示的格式是mm-ss-xx(mm表示分鐘:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99),當(dāng)秒表的計(jì)時(shí)大于或等于一個(gè)小時(shí)時(shí),顯示的和多功能時(shí)鐘是一樣的,就是

11、hh-mm-ss(hh表示小時(shí):0~99),由于秒表的功能和鐘表有所不同,所以秒表的hh表示的范圍不是0~23,而是0~99,這也是和多功能時(shí)鐘不一樣的地方。在設(shè)計(jì)秒表的時(shí)候,時(shí)鐘的選擇為100Hz。變量的選擇:因?yàn)閤x(0.01秒)和hh(小時(shí))表示的范圍都是0~99,所以用兩個(gè)4位二進(jìn)制碼(BCD碼)表示;而ss(秒鐘)和mm(分鐘)表示的范圍是0~59,所以用一個(gè)3位的二進(jìn)制碼和一個(gè)4位的二進(jìn)制碼(BCD)碼表示。顯示的時(shí)候要注

12、意的問(wèn)題就是小時(shí)的判斷,如果小時(shí)是00,則顯示格式為mm-ss-xx,如果小時(shí)不為00,則顯示hh-mm-ss。</p><p>  四、源程序(*.vhd)和原理圖(*gdf):</p><p>  1.計(jì)時(shí)模塊:計(jì)時(shí)模塊執(zhí)行計(jì)時(shí)功能,計(jì)時(shí)方法和計(jì)算機(jī)一樣是對(duì)標(biāo)準(zhǔn)時(shí)鐘脈沖計(jì)數(shù)。他是由四個(gè)十進(jìn)制計(jì)數(shù)器和倆個(gè)六進(jìn)制計(jì)數(shù)器構(gòu)成,其中毫秒位、十毫秒位、秒位和分位采用十進(jìn)制計(jì)數(shù)器,十秒位和十分位

13、采用六進(jìn)制計(jì)數(shù)器。源程序:</p><p> ?。?)十進(jìn)制計(jì)數(shù)器(count_10)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  

14、entity count10 is</p><p>  port (clk,start,clr : in std_logic;</p><p>  cout : out std_logic;</p><p>  daout : out std_logic_vector(3 downto 0));</p><p>  end count10;&

15、lt;/p><p>  architecture one of count10 is</p><p>  signal q0 : std_logic_vector(3 downto 0);</p><p>  signal q1 : std_logic;</p><p><b>  begin</b></p>

16、<p>  process(clk,clr)</p><p><b>  begin</b></p><p>  if clr='1' then q0<="0000";</p><p>  elsif clk'event and clk='1' then</p&g

17、t;<p>  if start='1' then</p><p>  if q0="1001" then</p><p>  q0<="0000";</p><p><b>  q1<='1';</b></p><p> 

18、 else q0<=q0+1;</p><p><b>  q1<='0';</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;<

19、/b></p><p>  end process;</p><p>  daout<=q0;</p><p><b>  cout<=q1;</b></p><p><b>  end one;</b></p><p> ?。?)六進(jìn)制計(jì)數(shù)器(count_

20、6)</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>  port (clk,star

21、t,clr : in std_logic;</p><p>  cout : out std_logic;</p><p>  daout: out std_logic_vector(3 downto 0));</p><p>  end count6;</p><p>  architecture two of count6 is</

22、p><p>  signal q0 : std_logic_vector(3 downto 0);</p><p>  signal q1 : std_logic;</p><p><b>  begin</b></p><p>  process(clk,clr)</p><p><b>

23、  begin</b></p><p>  if clr='1' then q0<="0000";</p><p>  elsif clk'event and clk='1' then</p><p>  if start='1' then</p><p

24、>  if q0="0101" then</p><p>  q0<="0000";</p><p><b>  q1<='1';</b></p><p>  else q0<=q0+1;</p><p><b>  q1<=

25、'0';</b></p><p><b>  end if;</b></p><p>  2.報(bào)警器(alarm_3)</p><p>  當(dāng)計(jì)數(shù)到一小時(shí)的時(shí)候,回來(lái)一個(gè)高電平,然后報(bào)警器會(huì)出現(xiàn)10個(gè)高電平和10個(gè)低電平。程序如下:</p><p>  library ieee;</p&

26、gt;<p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity alarm_3 is</p><p>  port (clk,clr,I : in std_logic;</p><p>  qer:

27、buffer std_logic_vector(4 downto 0);</p><p>  q : out std_logic);</p><p>  end alarm_3;</p><p>  architecture four of alarm_3 is</p><p><b>  begin</b></p

28、><p>  process(clk,clr,I)</p><p><b>  begin</b></p><p>  if clr='1' then qer<="00000";</p><p>  elsif(clk'event and clk='1') t

29、hen</p><p>  if(I='1')then</p><p>  if(qer="10100")then NULL;</p><p>  else qer<=qer+1;</p><p><b>  end if;</b></p><p>&l

30、t;b>  end if;</b></p><p><b>  end if; </b></p><p>  end process;</p><p>  q<=qer(0);</p><p>  end four; </p><p>  4.顯示器(deled)<

31、/p><p>  計(jì)時(shí)顯示電路的作用是將計(jì)時(shí)值在LED數(shù)碼管上顯示出來(lái)。計(jì)時(shí)電路產(chǎn)生的值經(jīng)過(guò)BCD七段譯碼后,驅(qū)動(dòng)LED數(shù)碼管。計(jì)時(shí)顯示電路的實(shí)現(xiàn)方案采用掃描顯示。部分源程序:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY DELE

32、D IS</p><p>  PORT(num : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  LED : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p>  END DELED;</p><p>  ARCHITECTURE FIVE OF DELED IS&l

33、t;/p><p><b>  BEGIN</b></p><p>  PROCESS(NUM)</p><p><b>  BEGIN</b></p><p>  CASE NUM IS</p><p>  WHEN "0000"=>LED<=&q

34、uot;1111110";</p><p>  WHEN "0001"=>LED<="0110000";</p><p>  WHEN "0010"=>LED<="1101101";</p><p>  WHEN "0011"=>

35、;LED<="1111001";</p><p>  WHEN "0100"=>LED<="0110011";</p><p>  WHEN "0101"=>LED<="1011011";</p><p>  WHEN "011

36、0"=>LED<="1011111";</p><p>  WHEN "0111"=>LED<="1110000";</p><p>  WHEN "1000"=>LED<="1111111";</p><p>  WHE

37、N "1001"=>LED<="1111011";</p><p>  when others=>LED<="0000000";</p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><

38、p><b>  END FIVE;</b></p><p>  5.選擇器(SELTIME)</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p

39、><p>  entity seltime is</p><p><b>  port (</b></p><p>  clk:in std_logic;</p><p>  clr:in std_logic;</p><p>  dain0:in std_logic_vector(3 downto

40、0);</p><p>  dain1:in std_logic_vector(3 downto 0);</p><p>  dain2:in std_logic_vector(3 downto 0);</p><p>  dain3:in std_logic_vector(3 downto 0);</p><p>  dain4:in st

41、d_logic_vector(3 downto 0);</p><p>  dain5:in std_logic_vector(3 downto 0);</p><p>  y:buffer std_logic_vector(3 downto 0);</p><p>  sel:buffer std_logic_vector(2 downto 0));</p&

42、gt;<p>  end seltime;</p><p>  architecture three of seltime is</p><p>  signal m:std_logic_vector(2 downto 0);</p><p>  signal n:std_logic_vector(3 downto 0);</p><

43、;p><b>  begin</b></p><p>  n<="0000" when clr='1' else </p><p>  dain0 when m="000" else</p><p>  dain1 when m="001"else</

44、p><p>  dain2 when m="010"else</p><p>  dain3 when m="011"else</p><p>  dain4 when m="100" else</p><p><b>  dain5;</b></p>

45、<p>  process(clr,clk,dain0,dain1,dain2,dain3,dain4,dain5)</p><p><b>  begin</b></p><p>  if clk 'event and clk='1'then</p><p>  if m="101" t

46、hen m<="000";</p><p>  else m <=m+1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  sel<=m;</b></

47、p><p>  end process;</p><p><b>  y<=n;</b></p><p>  end three;</p><p>  數(shù)字秒表計(jì)數(shù)器(miaobiao_2 )</p><p>  數(shù)字秒表的原理圖以及最后的整合:</p><p>  五.

48、仿真調(diào)試和下載結(jié)果:</p><p><b>  1.仿真結(jié)果:</b></p><p><b>  2.下載結(jié)果:</b></p><p><b>  六.收獲和體會(huì):</b></p><p>  開(kāi)始做設(shè)計(jì)時(shí)總是會(huì)犯一些錯(cuò)誤,只有經(jīng)過(guò)不停的改錯(cuò)不停的編譯得到正確的程序說(shuō)明了

49、作為軟件編程人員是不能粗心大意的,一個(gè)程序的質(zhì)量的高低與你細(xì)心與否有著一定的聯(lián)系。在編程時(shí),我充分使用了結(jié)構(gòu)化的思想,這樣程序檢查起來(lái)也比較方便,調(diào)試時(shí)也給了我很大方便,只要一個(gè)模塊一個(gè)模塊的進(jìn)行調(diào)就可以了,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢(shì)。在設(shè)計(jì)中要求我要有耐心和毅力,還要細(xì)心,稍有不慎,一個(gè)小小的錯(cuò)誤就會(huì)導(dǎo)致結(jié)果的不正確,而對(duì)錯(cuò)誤的檢查要求我要有足夠的耐心,通過(guò)這次設(shè)計(jì)和設(shè)計(jì)中遇到的問(wèn)題,也積累了一定的經(jīng)驗(yàn),對(duì)以后從事集成電路設(shè)計(jì)工作會(huì)有

50、一定的幫助。</p><p>  在應(yīng)用VHDL的過(guò)程中讓我真正領(lǐng)會(huì)到了其并行運(yùn)行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計(jì)上的優(yōu)越性。用VHDL硬件描述語(yǔ)言的形式來(lái)進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真極大地減少了電路設(shè)計(jì)時(shí)間和可能發(fā)生的錯(cuò)誤,降低了開(kāi)發(fā)成本,這種設(shè)計(jì)方法在數(shù)字系統(tǒng)設(shè)計(jì)中發(fā)揮越來(lái)越重要的作用。</p><p>  對(duì)幫助我們的指導(dǎo)老師和的同學(xué)表示忠心的感謝

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論