《EDA課程設(shè)計報告--交通燈控制器》由會員分享,可在線閱讀,更多相關(guān)《EDA課程設(shè)計報告--交通燈控制器(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
鄭州航空工業(yè)管理學院
電子通信工程系
EDA技術(shù)及應用課程設(shè)計報告
題目: 交通燈控制器
姓 名:
學 號:
同組成員:
指導老師:
年 月 日
目 錄
一、設(shè)計任務書
二、硬件系統(tǒng)設(shè)計
1、電路原理圖
1.1
2、 CPLD核心電路
1.2 數(shù)碼管顯示電路
1.3電源電路
1.4 LED指示燈電路
2、管腳分配
3、設(shè)計方案
三、Verilog HDL 代碼設(shè)計
四、系統(tǒng)調(diào)試
1、邏輯功能模塊RTL級描述
2、仿真圖
五、總結(jié)
1、對本次課程設(shè)計的總結(jié)
六、參考文獻
一、設(shè)計任務書
設(shè)計要求
(1)主干道通行(綠燈):支干道有車24秒;支路紅燈,數(shù)碼管實時顯示倒計時的秒,秒計時的頻率為1Hz 。
(2)主干道緩沖(黃燈):6秒,(不顯示計數(shù)),秒計時的頻率為1Hz 。
(3)支路通行(綠燈):20秒,主干道紅燈,數(shù)碼管實時顯示倒計
3、時的秒,秒計時的頻率為1Hz 。
(4)支路緩沖(黃燈):6秒,不顯示,秒計時的頻率為1Hz 。
數(shù)碼管采用動態(tài)顯示。
其他要求:
(1)晶振為12 MHz
(2)采用CPLD 器件,為ALTERA 的EPM7064SL-44
(3)采用數(shù)碼管顯示
二、硬件系統(tǒng)設(shè)計
1、電路原理圖:
1.1 CPLD核心電路
1.2 數(shù)碼管顯示電路
1.3電源電路
1.4 LED指示燈電路
2、管腳分配
管腳分配:CPLD型號: FAMILY:MAX7000AE
DEVICE:EPM7064AELC44-10
sys_clk :
4、pin 43 // 12Mhz
4個LED燈: led0 ~ led3 : pin 14 16 17 18
8個數(shù)碼管:8個位線:com0~com3(dig0~dig3):pin 34, 33,31, 29, com4~com7 (dig4~dig7):pin 28 , 27,26 , 25
8個數(shù)據(jù)線:seg0~seg 3: pin 36, 37 ,39, 40
seg4~seg 7: pin 41, 4 ,
5、5, 6
4個按鍵:sw0~sw3: pin 19, 20, 21, 24
3、設(shè)計方案
三、Verilog HDL 代碼設(shè)計
module ds(clk,led,dig,seg);
//輸入
input clk;
//輸出
output[3:0] dig;
output[7:0] seg;
output[4:0] led;
//定義變量
reg[24:0] count;
reg[15:0] miao;
reg[4:0] leden;
reg[7:0] seg_r;
reg[3:0] dig_r;
reg[3:0] disp_dat;
6、
reg sec;
reg num;
reg[1:0] flag; //計數(shù)變量
reg[1:0]f2; //計數(shù)變量
assign dig=dig_r;
assign seg=seg_r;
assign led=leden;
//秒產(chǎn)生信號
always@(posedge clk)
begin
count=count+1'b1;
if(count==25'd24000000)
begin
count=25'b0;
sec=~sec;
end
end
//數(shù)碼管動態(tài)掃描
always@(posedge clk)
begin
7、
case(count[16:15])
0:disp_dat=miao[3:0];
1:disp_dat=miao[7:4];
2:disp_dat=miao[11:8];
3:disp_dat=miao[15:12];
endcase
case(count[16:15]) //選擇數(shù)碼管顯示位
0:dig_r=4'b1110;
1:dig_r=4'b1101;
2:dig_r=4'b1011;
3:dig_r=4'b0111;
endcase
end
always@(posedge clk)
begin
c
8、ase(disp_dat)
4'h0:seg_r=8'hc0;
4'h1:seg_r=8'hf9;
4'h2:seg_r=8'ha4;
4'h3:seg_r=8'hb0;
4'h4:seg_r=8'h99;
4'h5:seg_r=8'h92;
4'h6:seg_r=8'h82;
4'h7:seg_r=8'hf8;
4'h8:seg_r=8'h80;
4'h9:seg_r=8'h90;
default:seg_r=8'hff;
endcase
end
always@(negedge sec) //數(shù)碼管
9、倒計時及指示燈顯示 倒計時模塊
begin
if(flag==0)
begin
miao[3:0]=miao[3:0]-1;
if(miao[3:0]==4'hf)
begin
miao[7:0]=8'h18; 主干道綠燈倒計時
leden=5'b01101; 主綠支紅
flag[1:0]=4'h1; 計數(shù)轉(zhuǎn)向第二步
end
end
else if(flag[1:0]==4'h1)
begin
miao[3:0]=miao[
10、3:0]-1'b1;
if(miao[3:0]==4'hf)
begin
miao[7:4]=miao[7:4]-1'b1;
if(miao[7:4]==4'hf)
begin
leden[4:2]=3'b110; 主干道黃燈
flag[1:0]=4'h2;
miao[7:0]=8'h06; 黃燈倒計時
end
else miao[3:0]=4'h9;
end
end
else if(flag[1:0]==4'h2)
begin
miao[3:0]=
11、miao[3:0]-1'b1;
if(miao[3:0]==4'hf)
begin
miao[7:4]=miao[7:4]-1'b1;
if(miao[7:4]==4'hf)
begin
leden[4:2]=3'b101; 主干道紅燈
flag[1:0]=4'h3;
miao[7:0]=8'h20;
end
else miao[3:0]=4'h9;
end
end
else if(flag[1:0]==4'h3)
begin
miao[3:0]=m
12、iao[3:0]-1'b1;
if(miao[3:0]==4'hf)
begin
miao[7:4]=miao[7:4]-1'b1;
if(miao[7:4]==4'hf)
begin
leden[4:2]=3'b011; 主干道綠燈 返回flag==1
flag[1:0]=4'h1;
miao[7:0]=8'h18;
end
else miao[3:0]=4'h9;
end
end
else flag[1:0]=4'h0;
if(f2==0)
begin
13、
miao[11:8]=miao[11:8]-1;
if(miao[11:8]==4'hf)
begin
miao[15:8]=8'h24;
//leden=6'b011110;
f2[1:0]=4'h1;
end
end
else if(f2[1:0]==4'h1)
begin
miao[11:8]=miao[11:8]-1'b1;
if(miao[11:8]==4'hf)
begin
miao[15:12]=miao[15:12]-1'b1;
if(miao[15:12]==4'hf)
b
14、egin
leden[2:0]=3'b110;
f2[1:0]=4'h2;
miao[15:8]=8'h14;
end
else miao[11:8]=4'h9;
end
end
else if(f2[1:0]==4'h2)
begin
miao[11:8]=miao[11:8]-1'b1;
if(miao[11:8]==4'hf)
begin
miao[15:12]=miao[15:12]-1'b1;
if(miao[15:12]==4'hf)
begin
15、 leden[2:0]=3'b011;
f2[1:0]=4'h3;
miao[15:8]=8'h06;
end
else miao[11:8]=4'h9;
end
end
else if(f2[1:0]==4'h3)
begin
miao[11:8]=miao[11:8]-1'b1;
if(miao[11:8]==4'hf)
begin
miao[15:12]=miao[15:12]-1'b1;
if(miao[15:12]==4'hf)
begin
leden
16、[2:0]=3'b101;
f2[1:0]=4'h1;
miao[15:8]=8'h24;
end
else miao[11:8]=4'h9;
end
end
else f2[1:0]=4'h0;
end
endmodule
四、系統(tǒng)調(diào)試
1、邏輯功能模塊RTL級描述
仿真圖
五、總結(jié)
在做本課程設(shè)計的過程中,從程序編寫到硬件實現(xiàn),我們遇到了許多問題。開始的時候,在編寫程序中無法實現(xiàn)賦初值,使程序無法初始化,led燈與數(shù)碼管不能同步。查詢資料后,設(shè)定兩個變量對程序進行初始化,解決了出現(xiàn)的問題。由于對軟件使
17、用不熟悉,軟件編譯頻頻出錯,通過對輔導資料的仔細研究,我們逐漸掌握它的使用方法,最終程序順利的進行了編譯,在硬件聯(lián)機調(diào)試時依然是問題重重。在這次的課程設(shè)計中我們遇到的最大問題是將我們的原程序的下載到電路板上時,發(fā)現(xiàn)提示說寄存器不夠的現(xiàn)象。
在進行焊接電路板的過程中,有些元器件安裝有些不容易,經(jīng)過練習熟悉后,進一步熟練焊接工藝。經(jīng)過對程序的一些刪選,問題也得到了解決,最終通過我們不斷地努力,作品還是順利完成了。看到歷時近一周多的交通燈控制終于在我們的期待與苦惱中正常工作,我們都非常高興。在實驗中出現(xiàn)問題很正常,重要的是要努力克服,不為困難喪失信心,總能找到方法解決的。通過自己親手完成實驗并親自
18、焊接電路板,經(jīng)測試后能夠?qū)崿F(xiàn)功能,心中喜悅之極,增強了實踐能力,以后要多多動手,提高自己的實踐能力。
經(jīng)過這次實踐,我感到我要學習的還有很多,深層次的知識非常缺乏,更加堅定了我多學專業(yè)知道的態(tài)度。同時,在同組合作伙伴的幫助下,解決了很多困難,充分表明了團隊協(xié)作的重要性。
六、參考文獻
《EDA技術(shù)實用教程——VerilogHDL版》 第四版 潘松
《Verilog數(shù)字系統(tǒng)設(shè)計教程》 第二版 夏宇聞
《Verilog HDL實用教程》 電子科技大學出版社 張明
《Verilog HDL硬件描述語言》 機械工業(yè)出版社 徐振林
教師評語:
成績: 日期: