久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

EDA課程設計報告封面任務書及要求

時間:2019-05-14 01:34:35下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《EDA課程設計報告封面任務書及要求》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《EDA課程設計報告封面任務書及要求》。

第一篇:EDA課程設計報告封面任務書及要求

河南農業大學

課程設計報告

設計題目: 學 院: 理學院 專 業: 班 級: 學 號: 姓 名: 電子郵件: 日 期: 年 月 成 績: 指導教師: …………………………裝………………………………訂………………………………線……………………………………………………………… 河

理 學 院

課 程 設 計 任 務 書

學生姓名

指導教師

學生學號

專業

題目

任務與要求

開始日期

年 月 日 完成日期

年 月 日

課程設計所在單位

理 學 院 電 子 科 學 系

1、設計報告的內容至少包括:

(1)封面、任務書(設計要求、合作人、分工方案);

(2)正文;(設計要求、實驗目的、實驗方案、實驗原理、硬件要求、實驗步驟、源程序(*.vhd)和原理圖、仿真調試和下載結果、硬件測試報告、數據處理及分析結果等等)。

(3)收獲和體會;對設計工作的總結與展望;參考文獻。

2、設計報告的要求:

(1)內容完整,主題突出,詳略得當,語言流暢;

(2)書寫格式規范,條理清晰,圖文結合,手寫本應字跡清楚、工整。(3)必須獨立完成,不允許大段抄寫參考資料中的內容,作同一設計的同學,報告不允許雷同。

(4)對程序文本的書寫和電路圖以及示意圖的作圖要規范、美觀。(5)A4紙打印,左側裝訂。

(6)正文用5號字體。標題黑體。中文部分1.5倍行距。程序單倍行距。

第二篇:EDA 課程設計

《電子系統設計自動化》課程設計報告

學 院: 機電工程學院

題 目: 數字時鐘電路設計 課 程: 《電子系統設計自動化》課程設計 專業班級: 電信10級2 班 學生姓名: 劉星 秦玉杰 王艷艷 學 號: 1004101035 1004101036 1004101038

完成日期:2013年 12 月 27 日

摘要:

EDA(Electronic Design Automation)電子設計自動化,就是以大規模可編程器件為設計載體,以硬件描述語言為系統邏輯描述的主要表達方式,通過相關的軟件,自動完成用軟件方式設計的電子系統到硬件系統,最終形成集成電子系統或專用集成芯片。本次實習利用QuartusII為設計軟件、VHDL為硬件描述語言,結合所學的數字電路的知識設計一個24時多功能數字鐘,具有正常時、分、秒計時,動態顯示,清零、快速校時校分、整點報時、花樣顯示等功能。利用硬件描述語言VHDL對設計系統的各個子模塊進行邏輯描述,采用模塊化的設計思想完成頂層模塊的設計,通過軟件編譯、邏輯化簡、邏輯分割、邏輯綜合優化、邏輯布線、邏輯仿真,最終將設計的軟件系統下載設計實驗系統,對設計的系統進行硬件測試。

一、課程設計基本要求和任務

《EDA課程設計》是繼《模擬電子技術基礎》、《數字電子技術基礎》課程后,電信專業學生在電子技術實驗技能方面綜合性質的實驗訓練課程,是電子技術基礎的一個部分。1.1 目的和任務

(1)通過課程設計使學生能熟練掌握一種EDA軟件(QUARTUSII)的使用方法,能熟練進行設計輸入、編譯、管腳分配、下載等過程,為以后進行工程實際問題的研究打下設計基礎。

(2)通過課程設計使學生能利用EDA軟件(QUARTUSII)進行至少一 個電子技術綜合問題的設計,設計輸入可采用圖形輸入法或VHDL硬件描述語言輸入法。(3)通過課程設計使學生初步具有分析、尋找和排除電子電路中常見 故障的能力。

(4)通過課程設計使學生能獨立寫出嚴謹的、有理論根據的、實事求是的、文理通順的字跡端正的課程設計報告。1.2 功能要求:

(1)具有時、分、秒計數顯示功能,以24小時循環計時。(2)時鐘計數顯示時有LED燈的花樣顯示。(3)具有調節小時、分鐘、秒及清零的功能。(4)具有整點報時功能。

1.3 總體方框圖:

本系統可以由秒計數器、分鐘計數器、小時計數器、整點報時、分的調整以及小時的調整和一個頂層文件構成。采用自頂向下的設計方法,子模塊利用VHDL語言設計,頂層文件用原理圖的設計方法。顯示:小時采用24進制,而分鐘均是采用6進制和10進制的組合。1.4 設計原理:

數字鐘電路設計要求所設計電路就有以下功能:時、分、秒計時顯示,清零,時、分調節,整點報時及花樣顯示。分、秒計時原理相似,可以采用60進制BCD碼計數器進計時;小時采用24進制BCD碼進行計時;在設計時采用試驗電路箱上的模式7電路,不需要進行譯碼電路的設計;所設計電路具有驅動揚聲器和花樣顯示的LED燈信號產生。試驗箱模式7的電路如圖一所示:圖一模式七實驗電路圖

1.5 性能指標及功能設計:

(1)時鐘計數:完成時、分、秒的正確計時并且顯示所計的數字;對秒、分——60進制計數,即從0到59循環計數,時鐘——24進制計數,即從0到23循環計數,并且在數碼管上顯示數值。

2.2 模塊劃分自頂向下分解

2.3 模塊描述

時鐘計時模塊完成時、分、秒計數,及清零、調節時和分鐘的功能。時、分、秒計數的原理相同,均為BCD碼輸出的計數器,其中分和秒均為六十進制BCD碼計數器,小時為二十四進制BCD碼計數器。設計一個具有異步清零和設置輸出功能的六十進制BCD碼計數器,再設計一個具有異步清零和設置輸出功能的二十四進制計數器,然后將它們通過一定的組合構成時鐘計時模塊。各個輸入/輸出端口的作用為:

(1)clk為計時時鐘信號,reset為異步清零信號;

(2)sethour為小時設置信號,setmin為分鐘設置信號;(3)daout[5?0]為小時的BCD碼輸出, daout[6...0]為秒和分鐘的BCD碼輸出,enmin和enhour為使能輸出信號。

(4)在時鐘整點的時候產生揚聲器驅動信號和花樣顯示信號。由時鐘計時模塊中分鐘的進行信號進行控制。當contr_en為高電平時,將輸入信號clk送到輸出端speak用于驅動揚聲器,同時在clk的控制下,輸出端lamp[2..0]進行循環移位,從而控制LED燈進行花樣顯示。輸出控制模塊有揚聲器控制器和花樣顯示控制器兩個子模塊組成 2.4 頂層電路圖

頂層文件是由四個模塊組成,分別是時、分、秒計數器和報警的VHDL語言封裝而成。經過鎖定引腳再重新編譯獲得如下頂層原理電路圖:

三、方案實現

3.1 各模塊仿真及描述

(1)秒計數器模塊仿真圖:將標準秒信號送入”秒計數器”,秒計數器采用60進制計數器,每累計60秒發出一個分脈沖信號,該信號將作為分計數器的時鐘脈沖,daout代表秒輸出。

(2)分計數器電路仿真圖:也采用60進制計數器,每累計60分鐘,發出一個時脈沖信號,該信號將被送到時計數器,daout端口代表分鐘輸出

(3)小時計數器電路仿真圖:時計數器采用12進制計時器,可實現對24小時累 計。每累計12小時,發出一個脈沖信號。

引腳配置完成后再進行一次全程編譯,無誤則可以下載到試驗箱上進行硬件測試。硬件驗證的方法如下:選擇實驗模式7;時鐘脈沖clk與clock0(1024Hz)信號相連;鍵8和鍵5均為低電平,時鐘正常計時,數碼管1和2顯示秒,數碼管4和5顯示分鐘,數碼管7和8顯示小時;鍵8為高電平時,時鐘清零;鍵5為高電平時,按下鍵7和鍵4進行調時調分操作;當時鐘為整點的時候,三個發光二極管進行循環移位操作,同時揚聲器發聲。

五、心得體會

經過源程序的編輯、邏輯綜合、邏輯適配、編程下載成功后,在EDA實驗開發系統進行硬件驗證時卻發現實驗結果不正確,揚聲器無法發聲。經檢查,自己設計的管腳文件有錯。將管腳鎖定文件修改后,重新進行邏輯適配、編程下載成功后,實驗結果仍然不正確,百思不得其解。無奈之下,決定重頭開始排查每一步的細節,確定各個模塊的功能完全實現并且頂層模塊功能正確。修改之后,重新進行邏輯適配、編程下載驗證,實驗結果完全正確。

這次EDA課程設計歷時兩個星期,在整整兩個星期的日子里,不僅鞏固了以前所學過的知識,而且學到了很多書本上學不到的知識,同時鍛煉了自己的能力,使自己對以后的路有了更加清楚的認識,對未來有了更多的信心。這次課程設計,進一步加深了我對EDA的了解,使我對QuartusII的基本操作有所了解,使我對應用軟件的方法設計硬件系統有了更加濃厚的興趣。通過這次課程設計,我懂得了理論與實際相結合的重要性,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合,從實踐中得出結論,才能真正提高自己的實際動手能力和獨立思考的能力。在設計的過程中,我遇到許多問題,畢竟是第一次應用VHDL進行硬件電路系統的設計,許多EDA的知識還沒有充分的掌握,遇到困難也是在所難免的,同時發現了自己的不足之處:學習知識表面化,沒有深入了解它們的原理。總的來說,這次設計的數字時鐘電路還是比較成功的,盡管在設計中遇到了很多問題,最后在老師的辛勤指導、同學的幫助和自己不斷思考下,終于迎刃而解,有點小小的成就感,覺得平時所學的知識有了實用的價值,達到了理論與實際相結合的目的。最后,對給過我幫助的所有同學和指導老師再次表示忠心的感謝!

參考文獻

[1] 崔健明.《電子電工EDA仿真技術》 高等教育出版社 2000年 [2] 盧杰,賴毅.《VHDL與數字電路設計》 科學出版社 2001年 [3] 潘松,黃繼業.《EDA技術實用教程》 科學出版社 2002年 [4] 朱運利.《EDA技術應用》 電子工業出版社 2004年 [5] 張明.《VHDL實用教程》 電子科技大學出版社 1999年

[6] 彭介華.《電子技術課程設計與指導》 高等教育出版 1997年

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS PORT(clk,clk1,reset,sethour:IN STD_LOGIC;enhour:OUT STD_LOGIC;daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY minute;ARCHITECTURE fun OF minute IS SIGNAL count :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enhour_1, enhour_2: STD_LOGIC;--enmin_1為59分時的進位信號 BEGIN--enmin_2由clk調制后的手動調時脈沖信號串 daout<=count;enhour_2<=(sethour and clk1);--sethour為手動調時控制信號,高電平有效 enhour<=(enhour_1 or enhour_2);PROCESS(clk,reset,sethour)BEGIN IF(reset='0')THEN--若reset為0,則異步清零 count<=“0000000”;ELSIF(clk'event and clk='1')THEN--否則,若clk上升沿到 IF(count(3 DOWNTO 0)=“1001”)THEN--若個位計時恰好到“1001”即9 IF(count <16#60#)THEN--又若count小于16#60#,即60 IF(count=“1011001”)THEN--又若已到59D enhour_1<='1';--則置進位為1 count<=“0000000”;--count復0 ELSE count<=count+7;--若count未到59D,則加7,即作“加6校正” END IF;--使前面的16#60#的個位轉變為8421BCD的容量 ELSE count<=“0000000”;--count復0(有此句,則對無效狀態電路可自啟動)END IF;--END IF(count<16#60#)ELSIF(count <16#60#)THEN count<=count+1;--若count<16#60#則count加1 enhour_1<='0' after 100 ns;--沒有發生進位 ELSE count<=“0000000”;--否則,若count不小于16#60# count復0 END IF;--END IF(count(3 DOWNTO 0)=“1001”)END IF;--END IF(reset='0')END process;END fun;

3、時計數器模塊的VHDL語言:

LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

IF(clk'event and clk='1')THEN IF(dain=“0000000”)THEN speak<=count1(1);IF(count1>=“10”)THEN count1<=“00”;--count1為三進制加法計數器 ELSE count1<=count1+1;END IF;END IF;END IF;END PROCESS speaker;lamper:PROCESS(clk)BEGIN IF(rising_edge(clk))THEN IF(count<=“10”)THEN IF(count=“00”)THEN lamp<=“001”;--ELSIF(count=“01”)THEN lamp<=“010”;ELSIF(count=“10”)THEN lamp<=“100”;END IF;count<=count+1;ELSE count<=“00”;END IF;END IF;END PROCESS lamper;END fun;

循環點亮三只燈

第三篇:《EDA課程設計》

《EDA課程設計》

課程設計題目:

基于單片機的溫濕度采集系統

名:

xxx

號:

xxxx

級:

xxxx

間:

2014.4.21~ 2013.5.5

點:

xxxxx

指 導

師:

xxxxx

目錄

一、電路原理圖..................................................................................2

二、電路PCB圖(或實物圖).........................................................2

三、電路效果圖..................................................................................3

四、設計總結......................................................................................3 附錄(單片機源代碼)......................................................................4

一、電路原理圖

二、電路PCB圖(或實物圖)

三、電路效果圖

四、設計總結

EDA的實驗還是挺有趣的,比較講究動手能力,當然也不能忽略團體合作。總的來說本次實驗還是成功了,雖然每個環節都遇到了困難。在生成原理圖的過程中,就曾把導線畫成了Placeline而不是Placewire,還有芯片的引腳應該用NET符號而不是用文本符號,所以這些錯誤都導致我花在原理圖上的時間多了點。而在生成PCB電路圖的過程中遇到的困難則是自動布線之后,還有電源的幾個腳需要手動布線,所以各個元件之間的位置要布置好,以免發生短路。腐蝕的時候,由于腐蝕的時間太長了,有些碳都化開了,導致里面的銅被腐蝕掉了,所以又為我的工作增加了困難。在焊接的時候,要注意元件的正負極,還要檢測錫是否都與那些銅連接上了。最終把LED和 DHT11的程序燒進去就行了。

本次實驗我還是能多多少少學到點什么的,總的來說還是希望能有多一點這樣的實習。

附錄(單片機源代碼)

//51單片機控制溫濕度傳感器DHT11

LCD1602上顯示當前機最小系統。//LCD 讀進去 寫出來 #include #include typedef unsigned char BYTE;typedef unsigned int WORD;#define uint unsigned int

//定義無符號整型 #define uchar unsigned char typedef bit BOOL;

//此聲明一個布爾型變量即真或假// uchar data_byte,num,i;uchar RH,RL,TH,TL,flag;uchar shuzi[4];unsigned char code num1[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};

sbit dht=P2^4;

//dht11data端接單片機的P2^4口//

//***************

數************************************* void delay(uchar ms)//延時模塊//延時1毫秒

{

}

void delay1()

//一個for循環大概需要8個多機器周期

//一個機器周期為1us晶振為12MHz也就是說本函數延時8us{

} uchar i;

while(ms--)

for(i=0;i<110;i++);

uchar i;

for(i=0;i<1;i++);void display(void){ // if(flag==0)// {

P2=0x07;

P0=num1[shuzi[2]];delay(1);// }

// if(flag==1)// {

P2=0x0b;

P0=num1[shuzi[3]];delay(1);// } // if(flag==2)// {

P2=0x0d;

P0=num1[shuzi[0]];delay(1);// } // if(flag==3)// {

P2=0x0e;P0=num1[shuzi[1]];delay(1);// } }

//**************************dht11

塊*************************************// void start()//開始信號

{

dht=1;

delay1();

//主機發出8us高電平,開始信號開始發出 dht=0;

delay(25);

// 主機把總線拉低必須大于18ms

DHT11能檢測到起始信號

dht=1;

//delay1();

//以下三個延時函數差不多為24usdelay1();delay1();

20-40us

}

uchar receive_byte()

//接收一個字節 8位// {

uchar i,temp;

for(i=0;i<8;i++)//接收8bit的數據

{

while(!dht);

//等待40-50us的低電平開始信號結束

delay1();

//開始信號結束之后延時26us-28us

delay1();delay1();

temp=0;

//時間為26us-28usif(dht==1)

temp=1;

//如果26us-28us

'0'

數據為'1'

while(dht);

//

'0'為26us-28us

'1'為70us

} data_byte<<=1;

//data_byte|=temp;

//接收每一位的數據,相或保存數據

return data_byte;}

void receive()//接收數據// {

uchar T_H,T_L,R_H,R_L,check,num_check,i;start();

//開始信號//調用開始信號子函數

dht=1;

//主機設為輸入判斷從機DHT11響應信號

if(!dht)

//判斷從機是否有低電平響應信號// {

while(!dht);//判斷從機發出 40us 的低電平響應信號是否結束//

while(dht);

//判斷從機發出 40us 的高電平是否結束 如結束則從機進入發送數據狀態,主機進入數據接收狀態

//兩個while語句加起來就是DHT11的響應信號

R_H=receive_byte();//濕度高位

調用接受一個字節的子函

R_L=receive_byte();//濕度低位

T_H=receive_byte();//溫度高位

T_L=receive_byte();//溫度低位

check=receive_byte();//校驗位

//結束信號

dht=0;

//當最后一bit數據接完畢后主機拉低電平50us// for(i=0;i<7;i++)//差不多8us的延時

delay1();

dht=1;

//總線由上拉電阻拉高進入空閑狀態

num_check=R_H+R_L+T_H+T_L;

if(num_check==check)//判斷讀到的四個數據之和是否與校驗位相同

{

RH=R_H;

RL=R_L;

TH=T_H;

TL=T_L;

check=num_check;}

shuzi[0]=RH/10;shuzi[1]=RH%10;shuzi[2]=TH/10;shuzi[3]=TH%10;

} }

void main()//主函數模塊// { while(1)

//進入死循環

{

receive();

//接收數據

display();

} }

第四篇:EDA課程設計

考試序號:28

自動打鈴系統設計說明書

學 生 姓 名:周文江

號:14112502521

專 業 班 級:1102

報告提交日期:2013.11.26

湖 南 理 工 學 院 物 電 學 院

目錄

一、題目及要求簡介……………3 1.設計題目…………………3 2.總體要求簡介……………3

二、設計方案說明……………3

三、系統采用器件以及模塊說明………3 1.系統框圖…………4 2.選擇的FPGA芯片及配置………4 3.系統端口和模塊說明…………5

四、各部分仿真結果………5

五、調試及總結………6

六、參考文獻……7

七、附錄………7

一、題目及要求簡介

1、設計題目

設計一個多功能自動打鈴系統

2、總體要求簡介

① 基本計時和顯示功能(24小時制顯示),包括:

1.24小時制顯示 2.動態掃描顯示; 3.顯示格式:88-88-88 ② 能設置當前時間(含時、分)③ 能實現基本打鈴功能,規定:

06:00起床鈴,打鈴5s

二、設計方案說明

本次設計主要采用Verilog HDL硬件描述性語言、分模塊法設計的自動打鈴系統。由于這次用的開發板提供的是50M晶振。首先要對時鐘進行分頻,當計時到2FA_F07F時完成1s分頻,通過計時到60s產生分鐘進位信號,再通過60分鐘產生時鐘進位信號。最后通過6個寄存器對時分秒進行鎖存最終輸出到8個數碼管上完成顯示。當顯示時鐘和默認鬧鐘時鐘相等時,驅動打鈴模塊。通過key_mode,key_turn,key_change查看鬧鐘,時鐘顯示,調整時鐘。

三、系統采用器件以及模塊說明

1.系統框圖如下:

:下如圖框統系

2.選擇的FPGA芯片及配置:本次系統設計采用的FPGA芯片是Alter公司生產的Cyclone II EP2C8Q208C8。該芯片是208個管腳,138個IO,并且具有兩個內部PLL,而且內嵌乘法器,8K的邏輯門,資源相當豐富。完成這次自動打鈴系統的設計總共消耗250個LE單元,22個IO口,131個寄存器。經過綜合后,本系統最高能實現145M的運行速度。通過Quartus II 軟件觀察到內部的RTL圖如下

3.系統端口和模塊說明

(1)分頻部分

分頻器的作用是對50Mhz的系統時鐘信號進行分頻,得到頻率為1hz的信號,即為1S的計時信號。

(2)按鍵部分

按鍵key_mode--0為顯示計時,1為鬧鐘顯示,2為調整時間。按鍵key_turn—0為調整小時,1為調整分鐘。按鍵key_change—每按一次加1(3)計時部分

通過sec_L,sec_H,min_L,min_H,hour_L,hour_H 6個寄存器對時分秒進行鎖存然后送入數碼管顯示

(4)鬧鐘模塊

當設定的鬧鐘時間和數碼管上顯示的時間相等時驅動鬧鐘,完成打鈴,持續時間5s。

(5)數碼管顯示模塊

顯示模塊是由8個位選8個段選構成的顯示模塊,利用人眼的余暉效果完成動態掃描,顯示時間。

四、各部分仿真結果

測試文件如下:

module clock_tb;reg sysclk,rst_b;reg key_mode,key_turn,key_change;wire buzzer;

wire [7:0] led_sel,led_data;clock I_clock(.sysclk(sysclk),.rst_b(rst_b),.key_mode(key_mode),.key_change(key_change),.key_turn(key_turn),.buzzer(buzzer),.led_sel(led_sel),.led_data(led_data));initial begin sysclk = 1'b1;rst_b = 1'b0;//復位信號

#30 rst_b = 1'b1;end always #10 sysclk = ~sysclk;//輸入的系統時鐘,20ns的周期 endmodule

五、調試及總結

本次課程設計總共花費了四天左右的時間,設計了自動打鈴系統。通過這次的設計更加熟悉了對EDA技術的了解和認識,在中也發現許多不足的地方。使用了自頂而下的設計方法,使得設計更加的簡單和明了。在調試過程中,有些代碼的設計不規范性,導致時序相當緩慢,甚至編譯綜合都會報錯。在不斷的修改下,發現時序電路和組合邏輯最好分開寫,這樣便于查錯,和修改代碼。畢竟Verilog HDL語言不同于C語言,不能以軟件的思想來設計,而是要利用電路的思想來編程,這樣可以更好的節省資源,使得時序也比較的簡單明了。在以后的學習及程序設計當中,我們一定要倍加小心,在程序出現不正常運行的情況下要耐心調試,盡量做到精益求精。

最后通過這次EDA方面的課程設計,提高了我們對EDA領域及通信電路設計領域的認識,有利于培養我們在通信電路EDA方面的設計能力。有利于鍛煉我們獨立分析問題和解決問題的能力。

六、文獻參考

[1].王金明、左自強 編,《EDA技術與Verilog設計》科學出版社

2008.8 [2].杜慧敏、李宥謀、趙全良 編,《基于Verilog的FPGA設計基礎》 西安電子科技大學出版社 2006.2 [3].韓彬 編,《從零開始走進FPGA世界》杭州無線電愛好者協會出版社 2011.8.20

七、附錄(實物圖及源碼)

module clock(//Input

sysclk,rst_b,key_mode,key_change,key_turn,//Output

buzzer,led_sel,led_data);

input sysclk,rst_b;//sysclk--global system clock,rst_b--global reset signal input key_mode;//mode choose.0--Timing function.1--Alarm clock function.2--adjust function input key_turn;//choose adjust minute or hour input key_change;//count add 1 output buzzer;//device buzzer output [7:0] led_sel;//led tube bit choose

output [7:0] led_data;//led_tube 8 bit data choose

parameter init_hour = 8'h12;parameter init_min = 8'h59;parameter init_sec = 8'h50;//initial time :12:59:50 parameter init_alarm_hour = 8'h06;parameter init_alarm_min = 8'h30;//initial alarm time : 06:30:0 parameter Count_1s = 28'h2FA_F07F;//count time 1s;

reg [7:0] sec;reg [7:0] min;reg [7:0] hour;reg [3:0] min_L;//minute low 4 bit reg [3:0] min_H;//minute high 4 bit reg [3:0] hour_L;//hour low 4 bit reg [3:0] hour_H;//hour high 4 bit reg [23:0] key_time;//press key away shake reg key_mode_n;//press key_mode next state reg key_change_n;//press key_change next state reg key_turn_n;//press key_turn next state wire key_mode_press;//sure Button press key_mode wire key_turn_press;//sure button press key_turn wire key_change_press;//sure button press key_change

always @(posedge sysclk)key_mode_n <= key_mode;assign key_mode_press =(!key_mode)&&(key_mode_n);always @(posedge sysclk)key_turn_n <= key_turn;assign key_turn_press =(!key_turn)&&(key_turn_n);always @(posedge sysclk)key_change_n <= key_change;assign key_change_press =(!key_change)&&(key_change_n);

always @(posedge sysclk or negedge rst_b)begin if(!rst_b)key_time <= 24'h0;else if(key_time!= 24'h0)

key_time <= key_time + 24'h1;else if((key_time == 24'h0)&&(key_mode_press || key_change_press || key_turn_press))key_time <= key_time + 24'h1;

end

reg [1:0] mode_num;//key mode..0--Timing function.1--Alarm clock function.2--adjust function always @(posedge sysclk or negedge rst_b)begin if(!rst_b)mode_num <= 2'b00;else if(mode_num == 2'h3)mode_num <= 2'h0;else if(key_mode_press &&(key_time == 24'h0))

mode_num <= mode_num + 2'h1;end

always @(*)begin if(mode_num == 2'h1)begin

min = init_alarm_min;hour = init_alarm_hour;end else begin

min = {min_H,min_L};hour = {hour_H,hour_L};end end

reg fm;//choose turn hour or minute always @(posedge sysclk or negedge rst_b)begin if(!rst_b)fm <= 1'b0;else if(key_turn_press &&(mode_num == 2'h2)&&(key_time == 24'h0))

fm <= ~fm;end

reg [27:0] time_cnt;///count time reg [27:0] time_cnt_n;//count time next state always @(posedge sysclk or negedge rst_b)begin if(!rst_b)time_cnt <= 28'h0;else time_cnt <= time_cnt_n;end

always @(*)begin if(time_cnt == Count_1s)time_cnt_n <= 28'h0;else if(mode_num!= 2'h0)time_cnt_n <= time_cnt;else time_cnt_n <= time_cnt + 28'h1;end

reg [3:0] sec_L;//second low 4 bit reg [3:0] sec_H;//second high 4 bit wire sec_cb;//second carry bit signal assign sec_cb =(sec_L == 4'h9)&&(sec_H == 4'h5);always @(posedge sysclk or negedge rst_b)begin if(!rst_b)begin

sec_L <= init_sec[3:0];sec_H <= init_sec[7:4];end else if((sec_L == 4'h9)&&(sec_H!= 4'h5)&&(time_cnt == Count_1s))begin

sec_L <= 4'h0;sec_H <= sec_H + 4'h1;end else if(sec_cb &&(time_cnt == Count_1s))begin

sec_L <= 4'h0;sec_H <= 4'h0;end else if(time_cnt == Count_1s)

sec_L <= sec_L + 4'h1;end

wire min_cb;//minute carry bit signal assign min_cb =(min_L == 4'h9)&&(min_H == 4'h5);always @(posedge sysclk or negedge rst_b)begin if(!rst_b)begin

min_L <= init_min[3:0];min_H <= init_min[7:4];end else if((sec_cb)&&(min_L!=4'h9)&&(time_cnt == Count_1s))

min_L <= min_L + 4'h1;else if((sec_cb)&&(min_L == 4'h9)&&(min_H!= 4'h5)&&(time_cnt == Count_1s))begin

min_L <= 4'h0;min_H <= min_H + 4'h1;end else if((sec_cb)&&(min_cb)&&(time_cnt == Count_1s))begin

min_L <= 4'h0;min_H <= 4'h0;end else if((fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(min_L!= 4'h9))

min_L = min_L + 4'h1;else if((fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time ==

24'h0)&&(min_L == 4'h9)&&(min_H!=4'h5))begin

min_L = 4'h0;min_H = min_H + 4'h1;end else if((fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(min_L == 4'h9)&&(min_H ==4'h5))begin

min_L = 4'h0;min_H = 4'h0;end end

always @(posedge sysclk or negedge rst_b)begin if(!rst_b)begin

hour_L <= init_hour[3:0];hour_H <= init_hour[7:4];end else if((sec_cb)&&(min_cb)&&(hour_L!= 4'h9)&&(hour_H!= 4'h2)&&(time_cnt == Count_1s))

hour_L <= hour_L + 4'h1;else if((sec_cb)&&(min_cb)&&(hour_L!= 4'h3)&&(hour_H == 4'h2)&&(time_cnt == Count_1s))

hour_L <= hour_L + 4'h1;else if((sec_cb)&&(min_cb)&&(hour_L == 4'h9)&&(hour_H!= 4'h2)&&(time_cnt == Count_1s))begin

hour_L <= 4'h0;hour_H <= hour_H + 4'h1;end else if((sec_cb)&&(min_cb)&&(hour_L == 4'h3)&&(hour_H == 4'h2)&&(time_cnt == Count_1s))begin

hour_L <= 4'h0;hour_H <= 4'h0;end else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(hour_L!= 4'h9)&&(hour_H!=4'h2))

hour_L <= hour_L + 4'h1;else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(hour_L!= 4'h3)&&(hour_H ==4'h2))

hour_L <= hour_L + 4'h1;else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time == 24'h0)&&(hour_L == 4'h9)&&(hour_H!=4'h2))begin

hour_L <= 4'h0;hour_H <= hour_H + 4'h1;end else if((!fm)&&(mode_num == 2'h2)&&(key_change_press)&&(key_time ==

24'h0)&&(hour_L == 4'h3)&&(hour_H ==4'h2))begin

hour_L <= 4'h0;hour_H <= 4'h0;end end

wire buzzer_en;assign buzzer_en =(init_alarm_min == {min_H,min_L})&&(init_alarm_hour == {hour_H,hour_L});

led_tube I_led_tube(.sysclk(sysclk),.rst_b(rst_b),.scan_time(24'h1F090),.data0({1'h1,sec_L}),.data1({1'h1,sec_H}),.data2({1'h1,4'hA}),.data3({1'h1,min[3:0]}),.data4({1'h1,min[7:4]}),.data5({1'h1,4'hA}),.data6({1'h1,hour[3:0]}),.data7({1'h1,hour[7:4]}),.led_data(led_data),.led_sel(led_sel));buzzer I_buzzer(.sysclk(sysclk),.rst_b(rst_b),.buzzer_en(buzzer_en),.buzzer(buzzer));endmodule

第五篇:EDA萬年歷課程設計報告

《EDA技術及其應用》

實 訓 報 告

班 級 姓 名 學 號 指導教師

目 錄

一 設計要求......................................2

1.0 設計目的及意義.................................2 1.1 設計要求.......................................2

二 設計流程:....................................2

2.0 原理框圖.......................................2 2.1 VHDL設計思路...................................3

三 VHDL程序......................................3

3.0 天計數模塊......................................6 3.1 月計數模塊.....................................7 3.2 年計數模塊......................................9 3.3 調時控制模塊..................................11 3.4 譯碼模塊......................................12 3.5 掃描模塊........................................12

四 心得體會.....................................14 4.0................................................14 五 附錄...........................................15 5.0 頂層文件......................................15

一、設計目的及意義

1.0 設計目的及意義

在掌握EDA理論知識的基礎上進一步了解EDA開發軟件QuartusII的使

entity tian is port(clk:in std_logic;pan:in std_logic_vector(1 downto 0);T1:out std_logic_vector(6 downto 0);cout:out std_logic);end tian;

architecture one of tian is

signal q1:std_logic_vector(3 downto 0);signal q2:std_logic_vector(2 downto 0);signal ab:std_logic_vector(1 downto 0);begin

process(clk,pan)

begin

if clk'event and clk='1'

then q1<=q1+1;

if q1=9 then q1<=“0000”;q2<=q2+1;

end if;case pan is when “00”=> if q2=3 and q1=1 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when “01”=> if q2=3 and q1=0 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when “10”=> if q2=2 and q1=8 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when “11”=> if q2=2 and q1=9 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when others=>null;end case;end if;end process;T1(3 downto 0)<=q1;T1(6 downto 4)<=q2;end one;3.1 月計數模塊

when others=>null;end case;end if;Y1(3 downto 0)<=q1;Y1(6 downto 4)<=q2;end process;end behav;

3.2 年計數模塊

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity nian is port(clk :in std_logic;n1:out std_logic_vector(6 downto 0);

run:out std_logic);end entity;

architecture one of nian is signal q1,q3:std_logic_vector(3 downto 0);signal q2:std_logic_vector(2 downto 0);

begin process(clk)

begin if clk'event and clk='1' then

q1<=q1+1;q3<=q3+1;

if q1=9 then q2<=q2+1;q1<=“0000”;end if;if q3=3 then q3<=“0000”;run<='1';else run<='0';end if;

if q1=9 and q2<=7 then q1<=“0001”;q2<=“000”;end if;

end if;end process;

sel:out std_logic_vector(2 downto 0));end seltime;architecture fun of seltime is signal count:std_logic_vector(2 downto 0);begin sel<=count;process(clk1)begin if(clk1'event and clk1='1')then if(count>=“101”)then count<=“000”;else count<=count+1;end if;end if;case count is when “000”=>daout<=tian(3 downto 0);dp<='0';when“001”=>daout(3)<='0';daout(2 downto 0)<=tian(6 downto 4);dp<='0';when “010”=>daout<=yue(3 downto 0);dp<='1';when“011”=>daout(3)<='0';daout(2 downto 0)<=yue(6 downto 4);dp<='0';when “100”=>daout<=nian(3 downto 0);dp<='1';when others=>daout(3 downto 2)<=“00”;daout(2 downto 0)<=nian(6 downto 4);dp<='0';end case;end process;end fun;

3.5 譯碼模塊

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity led is port(ledi:in std_logic_vector(3 downto 0);ledo:out std_logic_vector(6 downto 0));

次萬年歷實訓我們是四個人作為一個團隊,在實訓過程中,有時候一個人在編寫程序時出現一點很小的錯誤(例如:程序中少了一個分號或者少了一個字母)就會導致整個程序編譯不能通過,而四個人在一起,出現錯誤時一起去尋找,總會有一個人及時發現錯誤的,發現后及時糾正錯誤,然后繼續開展下面的工作。這樣三個人互相協作,共同努力,各自發揮自身的優勢,這樣工作便能順利的進行下去,如果是一個人單獨去完成,在出現錯誤的時候自己要想發現錯誤便需要很長的時間才能發現,這樣很浪費時間,浪費時間的結果就是直接導致工作效率低。而在如今的社會工作中,許多公司企業都要求應聘者要有很好的團隊合作精神,工作時要有高效的工作效率。因此,在這次實訓中我也切身體會到了團隊合作的重要性。

實訓是對每個學生綜合能力的檢驗是讓我們能夠更好的鞏固專業知識,積累工作經驗,掌握工作技能。通過這次實訓,讓我深深的體會到要想做好每一件事情,除了自己平時要有一定的專業知識外,還需要一定的實踐動手能力,操作能力,說實話,這次實訓讓我學到了很多東西,也明白了很多事情。在此還要感謝王老師耐心、認真的指導。謝謝薛老師!

五、附錄

5.0 頂層文件

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nianli is port(clk,clkdsp:in std_logic;k1,k2:in std_logic;dpout,d10,d20:out std_logic;ledout :out std_logic_vector(6 downto 0);sel1:out std_logic_vector(2 downto 0));

end entity;architecture one of nianli is component tian port(clk:in std_logic;pan:in std_logic_vector(1 downto 0);T1:out std_logic_vector(6 downto 0);cout:out std_logic);end component;component yue port(clk,run:in std_logic;cout:out std_logic;pan:out std_logic_vector(1 downto 0);

下載EDA課程設計報告封面任務書及要求word格式文檔
下載EDA課程設計報告封面任務書及要求.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    EDA課程設計報告(大全5篇)

    時 間 學 院 專業班級 姓 名 學 號 教 師 成 績 北京科技大學——自1105班——王瑋——41151133 EDA課程設計報告 2013年12月 北京科技大學——自1105班——王瑋——4115......

    課程設計報告封面(大全)

    ……………… _…__…_…__…__…__…_)__線號(學… … …__…__…_… _…__…名…姓… … … 業)封專(__…__…_…__…__…_級……__…__…__…_…__…院)密_學(__…__…__…_......

    課程設計報告封面

    化 工 學生姓名:專業班級:學 號:指導教師:實習時間:原 理 課 程 設 計 化學工程08-8 班 王蘭娟 2011. 8.9 ~ 8.29......

    EDA課程設計論文

    目錄 一、 摘要 二、 概述 2.1目的與要求 2.2實驗儀器與設備 2.3實驗注意事項 2.4設計環境 三、 實驗內容 四、4位加法器設計實現過程 4.1元件選擇 4.2編輯半加器的原理圖......

    EDA課程設計時鐘

    EDA課程設計姓名:學號:班級:自動化設計題目多功能數字鐘電路設計設計任務及要求多功能數字鐘應該具有的功能有:顯示時—分—秒、小時和分鐘可調等基本功能。整個鐘表的工作應該......

    eda課程設計心得體會

    eda課程設計心得體會 寫心得體會是困擾很多人的問題,心中有很多想法,想說卻不知道怎么寫下來。下面本欄目搜集了eda課程設計心得體會,歡迎查看,希望幫助到大家。 eda課程設計心......

    EDA課程設計專題實踐

    EDA課程設計專題實踐 結課論文 題目:出租車自動計費器 專業:電子信息工程班級:電子z1301 姓名:陽家昆 學號:1310910422 一、 設計題目:出租車自動計費器 二、 設計目標:1、掌握出......

    eda課程設計5篇

    數字鐘 一、 設計要求 設計一個數字鐘,具體要求如下: 1、 具有時、分、秒計數顯示功能,以24小時循環計時。 2、 具有清零、校時、校分功能。 3、 具有整點蜂鳴器報時以及LED花......

主站蜘蛛池模板: 亚洲精品国产精品乱码不卡√| 亚洲欧美日韩国产综合点击进入| 中文字幕丰满乱子伦无码专区| 色婷婷日日躁夜夜躁| 97成人精品区在线播放| 亚洲色无码综合图区手机| 在线观看潮喷失禁大喷水无码| 久久99热久久99精品| 亚洲第一区欧美国产综合86| 精品国产免费一区二区三区| 精品人妻少妇一区二区三区在线| 综合偷自拍亚洲乱中文字幕| 国产午夜精品理论片小yo奈| 成年女人免费毛片视频永久vip| 精品久久久久久综合日本| 99久久国产亚洲高清观看| 亚洲乱码中文字幕综合| 99精品丰满人妻无码a片| 中文字幕人妻互换av久久| 五十六十日本老熟妇乱| 日本高清va在线播放| 色综合久久一区二区三区| 国产熟妇高潮呻吟喷水| 亚洲粉嫩美白在线| 久久精品免费一区二区三区| 亚洲免费精品aⅴ国产| 囯产精品一区二区三区线| 精品国产一二三产品区别在哪| 国产又黄又潮娇喘视频| 香蕉久久一区二区三区啪啪| 亚洲娇小与黑人巨大交| 美女18禁一区二区三区视频| 一本加勒比hezyo无码专区| 成人无码午夜在线观看| 精品熟女少妇a∨免费久久| 欧洲国产在线精品手机版| 无码丰满熟妇| 亚洲最大av一区二区三区| 国产女人的高潮国语对白| 国产精品无码一区二区在线| 欧美日韩久久中文字幕|