《EDA課程設計 數(shù)字時鐘(鬧鐘)》由會員分享,可在線閱讀,更多相關《EDA課程設計 數(shù)字時鐘(鬧鐘)(12頁珍藏版)》請在裝配圖網上搜索。
1、精品文檔,僅供學習與交流,如有侵權請聯(lián)系網站刪除
課 程 設 計 說 明 書
題目: 鬧鐘
學院(系):
年級專業(yè):
學 號:
學生姓名:
指導教師:
教師職稱:
目 錄
第1章 摘要…………………………………………………………………………………1
第2章 設計方案……………………………………………………………………………
2.1 VHDL簡介……………………………………………………………………………
2.2 設計思路……………………………………………………………………………
第3章 模塊介紹…
2、…………………………………………………………………………
第4章 Verilog HDL設計源程序…………………………………………………………
第5章 波形仿真圖…………………………………………………………………………
第6章 管腳鎖定及硬件連線………………………………………………………………
心得體會 ……………………………………………………………………………………17
參考文獻 ……………………………………………………………………………………18
第一章 摘要
在當今社會,數(shù)字電路產品的應用在我們的實際生活中顯得越來越重要,與我們的生活聯(lián)系愈加緊密,例如計算機、儀表
3、、電子鐘等等,使我們的生活工作較以前的方式更加方便、完善,帶來了很多的益處。
在此次EDA課程,我的設計課題是鬧鐘,使用VHDL語言進行編程完成。報告書主要由設計方案、模塊介紹、設計源程序、仿真波形圖和管腳鎖定及硬件連線四部分組成。設計方案主要介紹了我對于設計課題的大致設計思路,之后各個部分將會詳細介紹設計組成及程序。
第二章 設計方案
§2.1 VHDL簡介
數(shù)字電路主要是基于兩個信號(我們可以簡單的說是有電壓和無電壓),用數(shù)字信號完成對數(shù)字量進行算術運算和邏輯運算的電路我們稱之為數(shù)字電路,它具有邏輯運算和邏輯處理等功能,數(shù)字電路可分為組合邏輯電路和時序邏輯電路。
EDA
4、技術,就是以大規(guī)模可編程邏輯器件為設計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)模可編程邏輯器件的開發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關的開發(fā)軟件,自動完成用軟件的方式設計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至完成對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或專用集成芯片的一門新技術。
利用EDA技術進行電子系統(tǒng)的設計,具有以下幾個特點:① 用軟件的方式設計硬件;② 用軟件方式設計的系統(tǒng)到硬件系統(tǒng)的轉換是由有關的開發(fā)軟件自動完成的;③ 設計過程中可用有關軟件進行各種仿真;④ 系統(tǒng)
5、可現(xiàn)場編程,在線升級;⑤ 整個系統(tǒng)可集成在一個芯片上,體積小、功耗低、可靠性高。因此,EDA技術是現(xiàn)代電子設計的發(fā)展趨勢。
EDA技術伴隨著計算機、集成電路、電子系統(tǒng)設計的發(fā)展,經歷了計算機輔助設計(Computer Assist Design,簡稱CAD)、計算機輔助工程設計(Computer Assist Engineering Design,簡稱CAE)和電子設計自動化(Electronic Design Automation,簡稱EDA)三個發(fā)展階段。
常用的硬件描述語言有VHDL、Verilog、ABEL。
EDA技術是隨著集成電路和計算機技術的飛速發(fā)展應運而生的一種高級、快速
6、、有效的電子設計自動化工具。它是為解決自動控制系統(tǒng)設計而提出的,從70年代經歷了計算機輔助設計(CAD),計算機輔助工程(CAE),電子系統(tǒng)設計自動化(ESDA)3個階段。前兩個階段的EDA產品都只是個別或部分的解決了電子產品設計中的工程問題;第三代EDA工具根據(jù)工程設計中的瓶頸和矛盾對設計數(shù)據(jù)庫實現(xiàn)了統(tǒng)一管理,并提出了并行設計環(huán)境概念,提供了獨立于工藝和廠家的系統(tǒng)級的設計工具。EDA關鍵技術之一就是采用硬件描述語言對硬件電路進行描述,且具有系統(tǒng)級仿真和綜合能力。目前應用比較廣泛的硬件描述語言就是Verilog HDL。
2 Verilog HDL簡介
Verilog HDL是目前大規(guī)模
7、集成電路設計中最具代表性、使用最廣泛的硬件描述語言之一。
具有如下特點:
(1) 能夠在不同的抽象層次上,如系統(tǒng)級、行為級、RTL級、門級和開關級,對設計系統(tǒng)進行精確而簡練的描述。
(2)能夠在每個抽象層次的描述上對設計進行仿真驗證,及時發(fā)現(xiàn)及時發(fā)現(xiàn)可能存在的錯誤,縮短設計周期,并保存整個設計過程的正確性。
(3)由于代碼描述與工藝過程實現(xiàn)無關,便于設計標準化,提高設計的可重用性。如國有C語言的編程基礎經驗,只需很短的時間就能學會和掌握Verilog HDL,因此,Verilog HDL可以作為學習HDL設計方法的入門和基礎。
§2.2 設計思路
一、設計要求
1、設計簡易的一分
8、鐘鬧鐘;
2、可手動輸入定時時間(0~59s),如30s;
3、兩個動態(tài)數(shù)碼管上跟蹤顯示時間的變化:如30,29,28……到了指定時間蜂鳴器發(fā)出5s的提示音;
4、采用2個動態(tài)數(shù)碼管顯示時間;
5、用蜂鳴器發(fā)出提示音;
6、撥碼開關設置定時時間。
二、設計思路
根據(jù)上述的設計要求,整個系統(tǒng)大致包括如下幾個組成部分:它包括以下幾個組成部分:1) 顯示屏,由2個七段動態(tài)數(shù)碼管組成,用于顯示當前設置的鬧鐘時間并進行跟蹤顯示;2)6個撥碼開關,用于輸入鬧鐘時間;3)復位鍵,確定新的鬧鐘時間設置,或顯示已設置的鬧鐘時間;4)蜂鳴器,在當前時鐘時間與鬧鐘時間相同時,發(fā)出報警聲。
第三章 模
9、塊介紹
一、計時模塊
此模塊共有6個撥碼開關作為輸入信號,當開關無輸入時,都處于低電平狀態(tài),D5、D4、D3、D2、D1和D0是并行數(shù)據(jù)輸入端,CRN是異步復位輸入端,LDN是預置控制輸入端。當開關有輸入時,會產生一個六位的二進制輸出信號num,此信號表示動作的開關序號,它是作為動態(tài)顯示模塊的輸入信號。
二、數(shù)碼顯示模塊
這個模塊有兩個輸入信號和兩個輸出信號。其中一個是信號輸入模塊的輸出num作為輸入,另外一個是時鐘輸入端,作為掃描數(shù)碼管的頻率信號,采用1024HZ的中高頻信號。輸出信號為SS0、SS1、SS2,是動態(tài)數(shù)碼管的片選段。
三、報警模塊
報警模塊共有兩個輸入信號ET和C
10、LK1,一個輸出信號COUT。當從信號輸入模塊檢測到有開關輸入時,ET信號已置1,CLK上升沿到來時,程序將COUT置1,蜂鳴器發(fā)出時間為10s的報警信號,時間到達后,跳出循環(huán),蜂鳴器停止報警。
四、頂層模塊
頂層模塊的作用是將各個模塊組合到一起,從而實現(xiàn)最終的功能。其輸入即為各個模塊的輸入,一個時鐘信號,還有6個撥碼開關的輸入,其輸出為數(shù)碼管顯示和報警器。
第四章Verilog HDL設計源程序
一、計時模塊
module counter(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,Q,OC);
input LDN,D5,D4,D3,D2,D1,D0,CLK,CR
11、N;
output[5:0] Q;
output OC;
reg OC;
reg[5:0] Q;
reg[5:0] Q_TEMP;
reg[3:0] NUM;
always@(posedge CLK or negedge CRN)
begin
if(~CRN) Q_TEMP=6'b000000;
else if(~LDN)
begin
Q_TEMP={D5,D4,D3,D2,D1,D0};
NUM=4'b0000;
end
else if(Q_TEMP<6'b111100&&Q_TEMP>6'b000000)
begin
if(NUM<4'b1000&&
12、NUM>=4'b0000)
NUM=NUM+1;
else NUM=4'b0001;
if(NUM==4'b1000)
Q_TEMP=Q_TEMP-1;
end
else Q_TEMP=6'b000000;
end
always
begin
if(Q_TEMP==6'b000000&&LDN) OC=1'b1;
else OC=1'b0;
Q=Q_TEMP;
end
endmodule
二、數(shù)碼顯示模塊
module showtime(A,Q,CLKM,SS0,SS1,SS2);
input[5:0] A;
input CLKM;
output[6:0]
13、 Q;
output SS0,SS1,SS2;
reg[6:0] Q;
reg SS0,SS1,SS2;
reg M;
reg[5:0] B;
reg[5:0] C;
always@(posedge CLKM)
begin
M=M+1;
end
always
begin
if(A<='b001001)
begin
B=A;
C=0;
end
else if(A>'b001001&&A<='b10011)
begin
B=A-10;
C=1;
end
else if(A>'b10011&&A<='b11101)
begin
B=A-20;
C=
14、2;
end
else if(A>'b11101&&A<='b100111)
begin
B=A-30;
C=3;
end
else if(A>'b100111&&A<='b110001)
begin
B=A-40;
C=4;
end
else if(A>'b110001&&A<='b111011)
begin
B=A-50;
C=5;
end
else if(A=='b111100)
begin
B=0;
C=6;
end
if(M=='b1)
begin
SS0=1;SS1=0;SS2=0;
case(B)
'b000000:Q='b01
15、11111;
'b000001:Q='b0000110;
'b000010:Q='b1011011;
'b000011:Q='b1001111;
'b000100:Q='b1100110;
'b000101:Q='b1101101;
'b000110:Q='b1111101;
'b000111:Q='b0000111;
'b001000:Q='b1111111;
'b001001:Q='b1101111;
default:Q='b0111111;
endcase
end
else if(M=='b0)
begin
SS0=0;SS1=0;SS2=0;
case(
16、C)
'b000000:Q='b0111111;
'b000001:Q='b0000110;
'b000010:Q='b1011011;
'b000011:Q='b1001111;
'b000100:Q='b1100110;
'b000101:Q='b1101101;
'b000110:Q='b1111101;
default:Q='b0111111;
endcase
end
end
endmodule
三、報警模塊
module speaker(CLK1,ET,COUT);
input CLK1,ET;
output COUT;
reg COUT;
reg
17、[5:0] TEMP;
always@(posedge CLK1)
begin
if(~ET) TEMP=6'b000000;
else if(TEMP<6'b101001&&TEMP>=6'b000000) TEMP=TEMP+1;
else TEMP=6'b101001;
end
always
begin
if(TEMP<6'b101001&&TEMP!=6'b000000) COUT=1'b1;
else COUT=1'b0;
end
endmodule
四、頂層模塊
module timer(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,CL
18、K1,COUT,LED,SS0,SS1,SS2,CLKM);
input LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,CLK1,CLKM;
output[6:0] LED;
output COUT,SS0,SS1,SS2;
wire X6;
wire[5:0] X;
counter u1(.LDN(LDN),.D5(D5),.D4(D4),.D3(D3),.D2(D2),.D1(D1),.D0(D0),.CLK(CLK),.CRN(CRN),.Q(X[5:0]),.OC(X6));
showtime u2(.A(X[5:0]),.Q(LED[6:0]),.CLK
19、M(CLKM),.SS0(SS0),.SS1(SS1),.SS2(SS2));
speaker u3(.CLK1(CLK1),.ET(X6),.COUT(COUT));
endmodule
第五章 波形仿真圖
一、計時模塊波形仿真圖
二、報警模塊波形仿真圖
三、頂層模塊波形仿真圖
第六章 管腳鎖定及硬件連線
一、管腳鎖定
CLK>chip=timer;Input Pin=75
CLKM>chip=timer:Input Pin=83
CLK1> chip=timer;Input Pin=85
COUT> chip=timer;Output Pin=38
CRN> ch
20、ip=timer;Input Pin=39
DO> chip=timer;Input Pin=53
D1> chip=timer;Input Pin=47
D2> chip=timer;Input Pin=46
D3> chip=timer;Input Pin=45
D4> chip=timer;Input Pin=44
D5> chip=timer;Input Pin=41
LDN> chip=timer;Input Pin=40
LED0> chip=timer;Output Pin=173
LED1> chip=timer;Output Pin=174
LED2> c
21、hip=timer;Output Pin=175
LED3> chip=timer;Output Pin=176
LED4> chip=timer;Output Pin=177
LED5> chip=timer;Output Pin=179
LED6> chip=timer;Output Pin=187
SSO> chip=timer;Output Pin=191
SS1> chip=timer;Output Pin=192
SS2> chip=timer;Output Pin=193
引線說明:撥碼開關使用數(shù)字開關組A,需外接引線。
心得體會
通過這次設計,初步對EDA有
22、一個了解。
出于沒有學習過這門課程,所以再課程設計開始時對于EDA就是一無所知。課程設計之初是做了一個簡單的培訓,關于軟件和硬件的設計,算是入門訓練吧。通過前兩天的課程講解,我對其有了初步的了解。之后就開始按照指導書中的例題就行練習,仿真,有進一步的掌握后就開始了自己的課程設計。由于我C++程序設計知識不扎實,所以導致這次軟件設計困難重重,也讓我明白了在這個領域知識的串聯(lián)是非常普遍的,學好學扎實是我們必須要做到的要求。
通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能提高自己的實際動手能力。在設計的過程中,可以說得是困難重重,但這畢竟第一次做,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處。
在此還需要感謝鄭兆兆老師和呂宏詩老師耐心的指導與幫助,使課設能夠更加順利的完成。
參考文獻
1、 閻石主編. 《數(shù)字電子技術基礎》(第五版).高等教等育出版社.2006.5,168-175頁 ;
2、 李國麗、朱維勇、何劍春主編 《EDA與數(shù)字系統(tǒng)設計》(第2版).機械工業(yè)出版社.2009.3,105-146頁
【精品文檔】第 12 頁