EDA數(shù)字秒表設(shè)計(共22頁)_第1頁
EDA數(shù)字秒表設(shè)計(共22頁)_第2頁
EDA數(shù)字秒表設(shè)計(共22頁)_第3頁
EDA數(shù)字秒表設(shè)計(共22頁)_第4頁
EDA數(shù)字秒表設(shè)計(共22頁)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 EDA技術(shù)與應(yīng)用 課程設(shè)計報告報 告 題 目: 數(shù)字秒表設(shè)計 作者所在系部: 電子工程系 作者所在專業(yè): 電子信息工程 作者所在班級: 作 者 姓 名 : 指導(dǎo)教師姓名: 完 成 時 間 : 2017-6-10 內(nèi) 容 摘 要在科技高度發(fā)展的今天,集成電路和計算機應(yīng)用得到了高速發(fā)展。尤其是計算機應(yīng)用的發(fā)展。它在人們?nèi)粘I钜阎饾u嶄露頭角。大多數(shù)電子產(chǎn)品多是由計算機電路組成,如:手機、mp3等。而且將來的不久他們的身影將會更頻繁的出現(xiàn)在我們身邊。各種家用電器多會實現(xiàn)微電腦技術(shù)。電腦各部分在工作時多是一時間為基準(zhǔn)的。 本報告就是基于計算機電路的時鐘脈沖信號、狀態(tài)控制等原

2、理,運用EDA技術(shù)及語言設(shè)計出的數(shù)字秒表。秒表在很多領(lǐng)域充當(dāng)一個重要的角色。在各種比賽中對秒表的精確度要求很高,尤其是一些科學(xué)實驗,他們對時間精確度達(dá)到了幾納秒級別。利用VHDL語言設(shè)計基于計算機電路中時鐘脈沖原理的數(shù)字秒表。該數(shù)字秒表能對0秒59分59.99秒范圍進(jìn)行計時,顯示最長時間是59分59秒,超過該時間能夠進(jìn)行報警。計時精度達(dá)到10ms。設(shè)計了復(fù)位開關(guān)和啟停開關(guān)。復(fù)位開關(guān)可以在任何情況下使用,使用以后計時器清零,并做好下一次計時的準(zhǔn)備。關(guān)鍵詞:EDA技術(shù)、VHDL語言、分頻器、計數(shù)器、數(shù)碼管、蜂鳴器目 錄一 概 述 1二 方案設(shè)計與論證1三 單元電路設(shè)計2 分頻器的設(shè)計2 計時控制模

3、塊的設(shè)計3 計時模塊的設(shè)計4 十進(jìn)制計數(shù)器的設(shè)計4 六進(jìn)制計數(shù)器的設(shè)計5 計數(shù)器的設(shè)計6 顯示模塊的設(shè)計8 選擇器的設(shè)計8 七段譯碼器的設(shè)計9報警模塊設(shè)計 10頂層文件的設(shè)計 11四 器件編程與下載11五 性能測試與分析12 1分頻器模塊的仿真 12 2計時控制模塊的仿真12 3計時模塊的仿真13 1十進(jìn)制計數(shù)器的仿真13 2六進(jìn)制計數(shù)器的仿真13 3計數(shù)器的仿真13 4顯示模塊的仿真15 1掃描模塊的仿真15 2七段譯碼器的仿真155報警模塊的仿真156頂層文件的仿真167設(shè)計調(diào)試16六 實驗設(shè)備 16七 心得體會 16八 參考文獻(xiàn) 16課程設(shè)計任務(wù)書課題名稱數(shù)字秒表設(shè)計完成時間2017.6

4、.10指導(dǎo)教師職稱學(xué)生姓名班級總體設(shè)計要求和技術(shù)要點一、總體設(shè)計要求:設(shè)計一個數(shù)字秒表,共有6位輸出顯示,分別為百分之一秒、十分之一秒、秒、十秒、分、十分;秒表的最大計數(shù)容量為60分鐘,當(dāng)計時達(dá)60分鐘后,蜂鳴器報警;秒表還需有一個啟動信號和一個歸零信號,以便秒表能隨意啟停及歸零。二、技術(shù)要點:1.秒表的邏輯結(jié)構(gòu)主要由顯示譯碼器、分頻器、十進(jìn)制計數(shù)器、六進(jìn)制計數(shù)器和報警器組成。2.最關(guān)鍵的是精確的100Hz計時脈沖如何獲得,可由高頻時鐘信號經(jīng)分頻得到;3.設(shè)計時鐘掃描模塊seltime和顯示譯碼器電路,產(chǎn)生驅(qū)動6位八段數(shù)碼管的位選信號和決定數(shù)碼管字形的段選信號,將各計數(shù)器的計數(shù)輸出信號在6位八

5、段共陰數(shù)碼管的。工作內(nèi)容及時間進(jìn)度安排2016-2017學(xué)年第二學(xué)期第14周:周一、周二:設(shè)計項目的輸入、編譯、仿真;周三、周四:器件編程下載與硬件驗證;周五:成果驗收與總結(jié);周六、周日:撰寫課程設(shè)計總結(jié)報告。課程設(shè)計成果1進(jìn)行系統(tǒng)結(jié)構(gòu)分析,編寫頂層文件和各底層模塊程序并仿真;2對可編程邏輯器件編程下載并進(jìn)行實際調(diào)試,能夠?qū)崿F(xiàn)設(shè)計要求的各項功能;3. 撰寫課程設(shè)計報告。一、概述 EDA是指以計算機為工作平臺,融合了應(yīng)用電子技術(shù)、計算機技術(shù)、智能化技術(shù)的最新成果而開發(fā)出的電子CAD通用軟件包,它根據(jù)硬件描述語言HDL完成的設(shè)計文件,自動完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局布線及仿真,直至完

6、成對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。隨著科技發(fā)展,在現(xiàn)代生活中,計數(shù)器應(yīng)用越來越廣泛。EDA技術(shù)的應(yīng)用引起電子產(chǎn)品即系統(tǒng)開發(fā)的革命性變革,在MAX+PLUS2環(huán)境下采用VHDL語言實現(xiàn),論述了基于VHDL語言在FPGA芯片的數(shù)字設(shè)計思想與實現(xiàn)過程。本設(shè)計是以VHDL語言為基礎(chǔ)的數(shù)字秒表。在數(shù)字秒表的程序中應(yīng)用了四個10進(jìn)制計數(shù)器和兩個6進(jìn)制計數(shù)器,以及報警器、選擇器和顯示譯碼器等。電子設(shè)計自動化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設(shè)計帶來了革命性變化,EDA軟件設(shè)計工具,硬件描述語言,可編程邏輯器件(PLD)使得EDA技術(shù)的應(yīng)用走向普及。VHDL語言是EDA的關(guān)鍵技術(shù)之一,它采用自

7、頂向下的設(shè)計方法,完成系統(tǒng)的整體設(shè)計。二、方案設(shè)計與論證 本系統(tǒng)設(shè)計采用自頂向下的設(shè)計方案,系統(tǒng)的整體組裝設(shè)計原理圖如圖1-1所示,它主要由控制模塊、分頻模塊,計時模塊、顯示模塊和報警模塊五部分組成。各模塊分別完成計時過程的控制功能、計時功能與顯示功能。數(shù)字秒表計時控制電路控制狀態(tài)機計時電路顯示電路分頻電路計數(shù)器六十進(jìn)制計數(shù)器掃描電路七段譯碼器十進(jìn)制計數(shù)器圖 1-1 系統(tǒng)組成框圖報警電路3、 單元電路設(shè)計分頻器的設(shè)計: 由于本設(shè)計中需要用到精確的100Hz計時脈沖,因此分頻器的設(shè)計顯得尤為重要??紤]到實驗箱上輸出頻率的限制及所產(chǎn)生及時脈沖的精度要求,采用由5MHz的時鐘脈沖經(jīng)過分頻器產(chǎn)生100

8、Hz的計時脈沖。分頻器的設(shè)計程序(divclk.vhd)如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY divclk IS PORT( CLK: IN STD_LOGIC; CO : OUT STD_LOGIC);END divclk;ARCHITECTURE behave OF divclk IS SIGNAL COUNT:INTEGER RANGE 0 TO 49999; BEGIN PROCESS(CLK) BEGIN IF RISING_EDGE(CLK)THEN IF

9、 COUNT=49999 THEN COUNT<=0; CO<='1' ELSE COUNT<=COUNT+1; CO<='0' END IF; END IF; END PROCESS;END behave;計時控制模塊的設(shè)計:K=1 計時控制模塊的作用是將按鍵信號轉(zhuǎn)變?yōu)橛嫊r器的控制信號。計時控制模塊可用兩個按鈕來完成秒表的啟動、停止和復(fù)位,即啟動/暫停鍵和清零鍵,由它們產(chǎn)生計數(shù)允許/保持和清零信號。此電路設(shè)計采用狀態(tài)機描述。根據(jù)啟動/暫停鍵的作用,建立狀態(tài)轉(zhuǎn)換關(guān)系,畫出狀態(tài)轉(zhuǎn)換圖如圖12所示。K為啟動/暫停鍵輸入信號,K=0時表示按下,

10、K=1時表示松開。 暫停S0K=0K=0計時控制的設(shè)計程序(key.vdh)如下:LIBRARY IEEE;K=1啟動S1USE IEEE.STD_LOGIC_1164.ALL; 計數(shù)S2USE IEEE.STD_LOGIC_UNSIGNED.ALL;K=1K=0ENTITY key IS圖12計數(shù)狀態(tài)的轉(zhuǎn)換圖 PORT( CLR,CLK,k:IN STD_LOGIC; EN :OUT STD_LOGIC);END key;ARCHITECTURE BEHAVE OF key ISCONSTANT S0: STD_LOGIC_VECTOR (1 DOWNTO 0):="00"

11、;CONSTANT S1: STD_LOGIC_VECTOR (1 DOWNTO 0):="01"CONSTANT S2: STD_LOGIC_VECTOR (1 DOWNTO 0):="11"TYPE STATES IS (S0,S1,S2);SIGNAL CURRENT_STATE,NEXT_STATE:STATES;BEGINCOM:PROCESS(k,CURRENT_STATE) BEGINCASE CURRENT_STATE ISWHEN S0=>EN<='0' IF k='1'THEN NEXT_S

12、TATE<=S0; ELSE NEXT_STATE<=S1; END IF; WHEN S1=>EN<='1' IF k='1'THEN NEXT_STATE<=S2; ELSE NEXT_STATE<=S1; END IF;WHEN S2=>EN<='1'IF k='1'THEN NEXT_STATE<=S2; ELSE NEXT_STATE<=S0; END IF;END CASE;END PROCESS;SYNCH:PROCESS(clk)BEGIN IF CLR=

13、'1'THENCURRENT_STATE <=S0;ELSIF CLK'EVENT AND CLK='1'THENCURRENT_STATE<=NEXT_STATE;END IF;END PROCESS;END BEHAVE;計時模塊的設(shè)計:計時模塊執(zhí)行計時功能,計時方法和計算機一樣是對標(biāo)準(zhǔn)時鐘脈沖計數(shù)。計時模塊是由四個十進(jìn)制計數(shù)器和兩個六進(jìn)制計數(shù)器構(gòu)成的。其中毫秒位、十毫秒位、秒位和分位采用十進(jìn)制計數(shù)器,十秒位和十分位采用六進(jìn)制計數(shù)器。十進(jìn)制計數(shù)器的設(shè)計程序(count_10.vhd)如下:LIBRARY IEEE;USE IEEE.STD

14、_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count_10 IS PORT( CLK:IN STD_LOGIC; CLR,en:IN STD_LOGIC; CO :OUT STD_LOGIC; COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END count_10;ARCHITECTURE behave OF count_10 ISSIGNAL SCOUNT10: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN COUNT10<=SCOUNT10;PROCESS

15、(CLK,CLR,en)BEGIN IF(CLR='1')THENSCOUNT10<="0000"CO<='0'ELSIF RISING_EDGE(CLK)THENIF(en='1')THENIF SCOUNT10="1001"THENCO<='1'SCOUNT10<="0000"ELSECO<='0'SCOUNT10<=SCOUNT10+'1'END IF;END IF;END IF;END PROCE

16、SS;END behave;六進(jìn)制計數(shù)器的設(shè)計程序(count_6.vhd)如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count_6 IS PORT( CLK,CLR,EN:IN STD_LOGIC; CO :OUT STD_LOGIC; COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END count_6;ARCHITECTURE behave OF count_6 ISSIGNAL SCOUNT6: STD_LOGIC_VECTOR(

17、3 DOWNTO 0);BEGIN PROCESS (CLK,CLR,EN)BEGIN IF(CLR='1')THENSCOUNT6<="0000"CO<='0'ELSIF RISING_EDGE(CLK) THENIF(EN='1')THENIF SCOUNT6="0101"THENCO<='1'SCOUNT6<="0000"ELSECO<='0'SCOUNT6<=SCOUNT6+'1'END IF;E

18、ND IF;END IF;END PROCESS;COUNT6<=SCOUNT6;END behave;計數(shù)器的設(shè)計程序(count0.vhd)如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT0 IS PORT( CLK,CLR,EN:IN STD_LOGIC; msl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); msh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sl:OUT STD_LOGIC_VECTOR(3

19、 DOWNTO 0); sh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ml:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); mh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO:OUT STD_LOGIC);END COUNT0;ARCHITECTURE behave OF COUNT0 ISCOMPONENT count_10PORT( CLK,CLR,EN:IN STD_LOGIC; CO:OUT STD_LOGIC; COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMP

20、ONENT;COMPONENT count_6PORT( CLK,CLR,EN:IN STD_LOGIC; CO :OUT STD_LOGIC; COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;SIGNAL A,B,C,D,E:STD_LOGIC;BEGINU1:count_10 PORT MAP (CLK,CLR,EN,A,msl);U2:count_10 PORT MAP (A,CLR,EN,B,msh);U3:count_10 PORT MAP (B,CLR,EN,C,Sl);U4:count_6 PORT MAP (C,CLR

21、,EN,D,sh);U5:count_10 PORT MAP (D,CLR,EN,E,ml);U6:count_6 PORT MAP (E,CLR,EN,CO,mh);END behave;顯示模塊的設(shè)計:計時顯示電路的作用是將計時值在LED數(shù)碼管上顯示出來。計時電路產(chǎn)生的值經(jīng)過BCD七段譯碼后,驅(qū)動LED數(shù)碼管。計時顯示電路的實現(xiàn)方案采用掃描顯示。其中包括選擇器和七段譯碼器。選擇器中包含了對數(shù)碼管的片選信號、位選信號及小數(shù)點的設(shè)置。選擇器的設(shè)計程序(mulx.vhd)如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_

22、UNSIGNED.ALL;ENTITY MULX IS PORT(CLK,CLR,START:IN STD_LOGIC; msl,msh,sl,sh,ml,mh:in STD_LOGIC_VECTOR(3 DOWNTO 0); dp:out std_logic;OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEG:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END MULX;ARCHITECTURE behave OF MULX ISSIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINSEG&l

23、t;=count; PROCESS (CLK) BEGINIF CLR='1'THENCOUNT<="000"ELSIF RISING_EDGE(CLK)THENIF start ='1' THEN if count="101" then COUNT<="000" ELSE COUNT<=COUNT+'1'END IF;END IF;END IF;CASE COUNT ISWHEN "000"=>OUTBCD<=msl;dp<=&#

24、39;0'WHEN "001"=>OUTBCD<=msh;dp<='0'WHEN "010"=>OUTBCD<=sl;dp<='1'WHEN "011"=>OUTBCD<=sh;dp<='0'WHEN "100"=>OUTBCD<=ml;dp<='1'WHEN "101"=>OUTBCD<=mh;dp<='0'WHEN

25、OTHERS=>null;END CASE;END PROCESS;END behave;七段譯碼器的設(shè)計程序(BCD7.vhd)如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BCD7 IS PORT( BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END BCD7;ARCHITECTURE behave OF BCD7 ISBEGINLED<="

26、"WHEN BCD ="0000" ELSE""WHEN BCD ="0001" ELSE""WHEN BCD ="0010" ELSE""WHEN BCD ="0011" ELSE""WHEN BCD ="0100" ELSE""WHEN BCD ="0101" ELSE""WHEN BCD ="0110" ELSE"

27、;"WHEN BCD ="0111" ELSE""WHEN BCD ="1000" ELSE""WHEN BCD ="1001" ELSE""END behave; 報警模塊設(shè)計:報警模塊的設(shè)計是利用蜂鳴器的發(fā)聲原理。當(dāng)計數(shù)器計滿59分鐘后會產(chǎn)生進(jìn)位信號,在蜂鳴器的一端輸入高電平時蜂鳴器發(fā)生,產(chǎn)生報警聲。報警模塊的設(shè)計程序(alarm.vhd)如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_log

28、ic_unsigned.all;entity alarm isport (clk,clr,I : in std_logic; q : out std_logic);end alarm;architecture speaker of alarm issignal n:integer range 0 to 9;signal q0:std_logic;begin process(clk,clr,i) begin if clr='1' then q0<='0'n<=0; elsif clk'event and clk='1' then

29、 if i<='0'then q0<='0'n<=0; elsif (i='1' and n<=9) then q0<='1'n<=n+1; else q0<='0' end if; end if; end process; q<=q0;end speaker;頂層文件的設(shè)計如下圖所示:4、 器件編程與下載Altera可編程器件的編程可通過JTAG在系統(tǒng)編程、編程器及Altera在線配置3種方式進(jìn)行。本設(shè)計所使用的器件是FPGA芯片、由Altera公司生產(chǎn)的FLEX1

30、0K系列可編程邏輯器件EPF10K10LC84-4芯片。本設(shè)計采用JTAG在系統(tǒng)編程,即使用MAX+plusII編譯器對器件進(jìn)行編譯,產(chǎn)生的編譯文件(top.pof),通過ByteBlaster下載電纜下載到器件中去。頂層文件中各引腳在器件上的分配如圖1-3所示。選擇MAX+plusIIProgrammer命令或單擊按鈕,彈出如圖1-4所示的器件編輯窗口。對頂層文件進(jìn)行編譯后,圖中Configure會變成黑色,點擊Configure按鍵對文件進(jìn)行下載。 圖1-3頂層文件的引腳分配圖5、 性能測試與分析1分頻器模塊的仿真:仿真結(jié)果如下圖所示。2計時控制模塊的仿真結(jié)果如下圖所示:關(guān)于仿真結(jié)果的說明:首先對各模塊進(jìn)行清零,使初始狀態(tài)為S0,當(dāng)K鍵按下即K=0時,系統(tǒng)由S0狀態(tài)變成S1狀態(tài),松開按鍵K即K=1后

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論