【正文】
電子設(shè)計自動化EDA課程設(shè)計 題目 電 子 鐘 設(shè) 計 專業(yè) 電子信息科學與技術(shù) 班級 **** 學號 ****** 姓名 ***** 18目錄一、設(shè)計目的和要求 2 2 2二、模塊劃分 2三、功能簡介 2四、各模塊源代碼 3 5 5 6 6 7 7 8 9 11 11 12 13 13 13 147. 頂層代碼 15五、RTL viewer........................................................................................................................................17六、引腳鎖定和下載測試 18 18 18七、不足及改進 18八、心得體會...........................................................................................................................................19參考文獻 20一、設(shè)計目的和要求 更加熟練掌握本學科知識,更加了解VHDL的設(shè)計。 進一步掌握電子電路的一般設(shè)計方法。 掌握層次化設(shè)計、元件例化和頂層設(shè)計概念,了解模塊之間的連接。 培養(yǎng)提出問題,獨立分析問題,認真解決問題的能力。 設(shè)計一個電子時鐘,要求可以顯示時、分、秒,用戶可以設(shè)置時間。 擴展功能要求:跑表功能,鬧鐘功能,調(diào)整數(shù)碼管的亮度。 選擇GW48EDA系統(tǒng)的電路模式7。數(shù)碼管8左邊的跳線選擇CLOSE。二、模塊劃分分頻模塊、時鐘模塊、鬧鐘模塊、跑表模塊、顯示模塊、選擇模塊三、功能簡介 本電子鐘使用分頻器將10MHZ分成1HZ、100HZ、5000HZ分別用來用于時鐘正常走時,跑表正常跑表和掃描電路掃描數(shù)碼管。 時鐘模塊:分為時、分、秒三個模塊,時采用24進制,分秒采用60進制。1HZ驅(qū)動秒正常走時,當59秒時,秒顯示變?yōu)?,同時產(chǎn)生進位,驅(qū)動分開始計時,當59分時,分顯示變?yōu)?,同時產(chǎn)生進位,驅(qū)動時開始計時,當23:59:59時,時鐘復位。并通過鍵可調(diào)節(jié)時間。 跑表模塊:分為分、秒、毫秒三個模塊,使用100HZ頻率驅(qū)動毫秒開始計時,當99ms時,毫秒清零,產(chǎn)生進位驅(qū)動秒開始計時,以此類推。 鬧鐘模塊:用戶可通過鍵設(shè)置鬧鐘時間,當時鐘到達鬧鐘時間,揚聲器響起,時間為一分鐘,用戶也可以通過鍵自行關(guān)閉。 顯示模塊:采用5000HZ的頻率驅(qū)動掃描電路,通過掃描電路,將時鐘輸出顯示在數(shù)碼管上。同時可以調(diào)節(jié)數(shù)碼管亮度。 按鍵說明:鍵7是用來選擇三個顯示模式,初始時選擇為電子表,按一下顯示鬧鐘,再按一下顯示跑表;鍵鍵5和鍵4是用在表或鬧鐘的模式下調(diào)節(jié)電子表和鬧鐘的小時和分鐘;鍵1用于選擇電路的時鐘信號,用來控制調(diào)時時的單一性變動;鍵8和鍵5在跑表的模式下則用作復位鍵與暫停鍵;鍵4在跑表的模式下可用于調(diào)節(jié)亮度。四、各功能源代碼LIBRARY IEEE。USE 。USE 。ENTITY FENPIN ISPORT(CLK:IN STD_LOGIC。時鐘信號,10MHZ CLK1H:OUT STD_LOGIC。1HZ輸出 CLK100H:OUT STD_LOGIC。100HZ輸出 CLK5000H:OUT STD_LOGIC)。5000HZ輸出END。ARCHITECTURE ONE OF FENPIN ISSIGNAL TEMP1,TEMP2,TEMP3:STD_LOGIC。SIGNAL COUT_1:INTEGER RANGE 0 TO 4999999。SIGNAL COUT_2:INTEGER RANGE 0 TO 49999。SIGNAL COUT_3:INTEGER RANGE 0 TO 999。BEGINREX1:PROCESS(CLK) 1HZ分頻 BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN IF COUT_14999999 THEN COUT_1=COUT_1+1。 ELSE COUT_1=0。 TEMP1=NOT TEMP1。 END IF。 END IF。 END PROCESS REX1。REX2:PROCESS(CLK) 100HZ分頻 BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN IF COUT_249999 THEN COUT_2=COUT_2+1。 ELSE COUT_2=0。 TEMP2=NOT TEMP2。 END IF。 END IF。 END PROCESS REX2。REX3:PROCESS(CLK) 5000HZ分頻 BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN IF COUT_3999 THEN COUT_3=COUT_3+1。 ELSE COUT_3=0。 TEMP3=NOT TEMP3。 END IF。 END IF。 END PROCESS REX3。 CLK1H=TEMP1。CLK100H=TEMP2。CLK5000H=TEMP3。END ONE。LIBRARY IEEE。USE 。USE 。ENTITY NAOZHONG IS PORT(CLK,S_SE,F_SE,conK : IN STD_LOGIC。 鬧鐘分、時選擇、調(diào)節(jié) BH_OUT1, BM_OUT1:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。鬧鐘的分、時輸入 NZS_OUT, NZF_OUT :INOUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 SPEAKER_OUT:OUT STD_LOGIC)。揚聲器END ENTITY。ARCHITECTURE ONE OF NAOZHONG ISSIGNAL CL: INTEGER RANGE 0 TO 6000。SIGNAL SS,FS:STD_LOGIC_VECTOR(7 DOWNTO 0)。BEGIN ONE:PROCESS(S_SE,F_SE,conK) BEGIN IF S_SE=39。139。 THEN 鬧鐘調(diào)時 IF conK39。EVENT AND conK=39。139。 THEN IF SS(3 DOWNTO 0)1001 THEN SS(3 DOWNTO 0)=SS(3 DOWNTO 0)+1。 ELSE SS(3 DOWNTO 0)=0000。SS(7 DOWNTO 4)=SS(7 DOWNTO 4)+1。 END IF。 IF SS(7 DOWNTO 4)=0010 AND SS(3 DOWNTO 0)=0011 THEN SS(7 DOWNTO 4)=0000。SS(3 DOWNTO 0)=0000。 END IF。 END IF。 END IF。 IF F_SE=39。139。 THEN 鬧鐘調(diào)分 IF conK39。EVENT AND conK=39。139。 THEN IF FS(3 DOWNTO 0)1001 THEN FS(3 DOWNTO 0)=FS(3 DOWNTO 0)+1。 ELSE FS(3