FPGA课程设计交通灯信号控制器的设计报告.docx
- 文档编号:30381861
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:15
- 大小:191.97KB
FPGA课程设计交通灯信号控制器的设计报告.docx
《FPGA课程设计交通灯信号控制器的设计报告.docx》由会员分享,可在线阅读,更多相关《FPGA课程设计交通灯信号控制器的设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
FPGA课程设计交通灯信号控制器的设计报告
课程设计
报告
交通灯信号控制器的设计报告
学院
专业
班级
学号
姓名
交通灯信号控制器的设计
1、实验目的
(1)熟悉QuartusⅡ/ISEDesignSuite/ispLEVER软件的基本使用方法。
(2)熟悉GW48-CK或其他EDA实验开发系统的基本使用方法。
(3)学习和掌握VerilogHDL过程区块语句、if条件语句、case选择语句、for循环语句和元件实例化语句等的综合使用。
(4)学习计数器、分频器、选择器等VerilogHDL基本逻辑电路、动态扫描显示电路和状态机控制电路的综合设计应用。
2、实验要求
设计并调试好一个十字交叉口的交通灯信号控制器,要求为:
(1)设置两个开关SW1、SW2,其中固定开关实现交通警察人为监督交通秩序和无人自动控制交通秩序之间的切换,默认开关置于高电平端,为自动控制模式—交通灯按事先的规定工作,开关置于低电平时,为人为监督控制模式(交通灯不再工作)。
点动开关SW2用于整个系统的总复位,如系统出现故障,则需要总复位。
(2)当交通灯处于无人控制自动状态时,若方向灯1绿灯亮,则方向2红灯亮。
计数55s后,方向1的绿灯熄灭、黄灯亮,再计数5s后,方向1的红灯亮,黄灯灭,同时方向2的绿灯亮,然后方向2重复方向1的工作过程,这样就实现了无人自动控制交通灯。
有关控制的定时使用倒计时方式,计时过程用数码管显示。
3、总体设计思路
3.1系统组成
交通灯控制器拟由单片的CPLD/FPGA来实现,结合设计任务要求和确定的实现方案,按照自顶向下的层次化设计方法,整个系统可分为6个模块组成。
①主控制模块control:
根据外部输入控制信号及来自内部计时模块的控制信号,控制两个方向道路信号灯的亮与灭。
②55s倒计时模块cnt55:
实现55s绿灯点亮时间的倒计时。
③5s倒计时模块cnt05:
实现5s黄灯点亮时间的倒计时。
④时钟信号分频模块fdiv:
将给定的主频时钟信号经分频得到频率分别是1KHZ和1HZ.
⑤显示数据多路选择模块datasel:
根据来自control模块的控制信号进行倒计时模块cnt55和cnt05计时结果的显示数据选择。
⑥数据动态显示驱动模块display:
使用动态扫描的方式,进行显示数据的选择及显示驱动译码。
3.2功能模块设置及实现
系统采用的是系统级层次设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片FPGA芯片实现,首先用VHDL语言编写各个功能模块程序,最后通过综合器和适配器生成最终的目标器件,然后用顶层原理图将各个功能模块连接起来。
下面分别来介绍各个功能模块的实现和调试过程。
◆主控制模块
输入端口:
en0、en1:
分别来自cnt55、cnt5的定时溢出信号
sw1:
交通控制转换开关
rst:
复位信号
输出端口:
ce0、ce1:
用于cnt05、cnt55模块是否定时的控制信号
sel:
用于datasel模块进行数据选择的控制信号
red1、red2、gre1、gre2、yel1、yel2:
信号灯控制
该模块主要完成根据外部输入信号rst、sw1控制输出,用于控制交通灯的信号Red1,Red2,Yellow1,Yellow2,Green1,Green2。
这中间包含了必要的内部模块之间的信号EN(来自倒计时时间选择驱动模块)。
◆55s定时模块
输入端口:
clk:
时钟脉冲信号
rst:
复位信号
ce:
来自控制模块的计数使能信号
输出端口:
dout1、dout0:
分别为定时值的高4位和低四位
cout:
定时计数溢出信号
该模块主要完成55秒的倒计时,控制红灯的点亮时间。
实际中在1分钟内
还要有绿到黄灯的转换以提醒车辆与行人,所以选择了55秒作为绿灯的点亮时
间。
◆5s定时模块
输入端口:
clk:
时钟脉冲信号
rst:
复位信号
ce:
来自控制模块的计数使能信号
输出端口:
dout1、dout0:
分别为定时值的高4位和低四位
cout:
定时计数溢出信号
该模块主要完成5秒的倒计时,控制黄灯的点亮时间。
实际中在1分钟内还
要有红到黄灯的转换以提醒车辆与行人,所以选择了55秒作为红灯的点亮时间
后,黄灯的点亮时间必定为5秒。
◆分频器模块
输入端口:
clk:
输入主频时钟脉冲信号,假设为10MHZ
输出端口:
clk1Khz:
分频后为1Khz的输出信号
clk1hz:
分频后为1hz的输出信号
该模块完成从10MHz的主频时钟信号经过分频得到1KHz的时钟信号,即完成一个10000分频的分频器,完成从模块1KHz中的1KHz时钟信号经过分频得到1Hz的计数时钟信号,即完成一个1000分频的分频器。
◆显示数据多路选择模块
输入端口:
din:
数据显示选择信号
sel:
控制选择信号
输出端口:
dout1、dout0:
选择输出
该模块主要完成两组不同倒计时时间数据的选择输出到后续显示模块中。
4总体调试与结果说明
4.1顶层电路
在设计完各个模块后,需要将各个模块有机地组合成一个整体,最后
来实现系统的功能在数字频率计的设计中,同时采用了电路原理图的设计
以及VerilogHDL语言来编写的顶层电路。
电路原理图见下图
总系统电路图
4.2系统仿真图
4.3管脚分配
4.4硬件仿真
通过试验箱下载程序调试之后,基本满足了要求。
5心得与体会
本次实验所学的VHDL和QUARTUSII的知识的巩固和应用,通过对一个综合性的课题的分析、设计、编写代码、调试和实践来检验学习的成果和提高独立思考能力和动手实践能力。
并且,我们在实验课中继续学习了综合性课题的设计方法----自顶向下的设计方法,从单一性的设计到模块化的设计,在深入理解VHDL语言的同时,锻炼了个人的逻辑思维和设计能力,提高了个人的自学能力个学习素质。
虽然在设计的过程中也会出现一些问题,但是通过和同学们的交流和对程序的调试和改进,最终成功完成了课题任务的设计和实践,基本上算是一次成功的实验经历。
本次实验是对VHDL语言的深入学习,主要学习并实践了VHDL的自顶向下的设计方法。
在学习和实践的过程中,体会到各种语言的共同性。
如C++高级语言程序设计也是利用自顶向下的设计方法来完成课题功能的设计,从这一点可以看出各个高级语言的逻辑互通性。
这给我们今后的思维和学习一个很大的启示。
程序:
//control.v
modulecontrol(en0,en1,sw1,rst,ce0,ce1,sel,red1,red2,yel1,yel2,gre1,gre2);
inputen0,en1;
inputsw1,rst;
outputce0,ce1;
output[1:
0]sel;
outputred1,red2,yel1,yel2,gre1,gre2;
wireen;
regce1,ce0;
reg[1:
0]sel;
regred1,red2,yel1,yel2,gre1,gre2,dout;
assignen=en1|en0;
always@(posedgeen)
begin
sel<=sel+2'b01;
end
always
begin
case(sel)
2'b00:
{ce1,ce0}<=2'b10;
2'b01:
{ce1,ce0}<=2'b01;
2'b10:
{ce1,ce0}<=2'b10;
2'b11:
{ce1,ce0}<=2'b01;
default:
{ce1,ce0}<=2'b00;
endcase
end
always@(sel,rst,sw1)
begin
if(sw1==0||rst==0)
{red1,red2,yel1,yel2,gre1,gre2}=6'b0;
else
begin
case(sel)
2'b00:
{red1,red2,yel1,yel2,gre1,gre2}=6'b010010;
2'b01:
{red1,red2,yel1,yel2,gre1,gre2}=6'b011000;
2'b10:
{red1,red2,yel1,yel2,gre1,gre2}=6'b100001;
2'b11:
{red1,red2,yel1,yel2,gre1,gre2}=6'b100100;
default:
{red1,red2,yel1,yel2,gre1,gre2}=6'b0;
endcase
end
end
Endmodule
//cnt05s.v
modulecnt05s(clk,rst,ce,dout1,dout0,cout);
inputclk,rst,ce;
output[3:
0]dout1,dout0;
outputcout;
reg[3:
0]dout1,dout0;
regcout;
reg[3:
0]cdata1,cdata0;
reg[7:
0]data;
always@(posedgeclk)
begin
if(rst==0||ce==0)
begincout<=1'b0;cdata1<=4'b0000;cdata0<=4'b0000;end
else
begin
if(cdata0!
=4'b0101)
begincdata0<=cdata0+1;cout<=1'b0;end
else
begincdata1<=4'b0000;cdata0<=4'b0000;cout<=1'b1;
end
end
end
always
begin
data<=8'b00000101-((cdata1<<4)+cdata0);
dout1<=4'b0000;
if((data&4'b1111)>4'b0101)
dout0<=data&4'b1111-4'b1011;
else
dout0<=data&4'b1111;
end
endmodule
//cnt55s.v
modulecnt55s(clk,rst,ce,dout1,dout0,cout);
inputclk,rst,ce;
output[3:
0]dout1,dout0;
outputcout;
reg[3:
0]dout1,dout0;
regcout;
reg[3:
0]cdata1,cdata0;
reg[7:
0]data;
always@(posedgeclk)
begin
if(rst==0||ce==0)
begincdata1<=4'b0000;cdata0<=4'b0000;cout<=1'b0;end
else
begin
if(cdata0==4'b0101&&cdata1==4'b0101)
begincdata1<=4'b0000;cdata0<=4'b0000;cout=1'b1;end
elseif(cdata0!
=4'b1001)
begincdata0<=cdata0+1;cout<=1'b0;end
elseif(cdata0==4'b1001&&cdata1!
=4'b0110)
begincdata1<=cdata1+1;cdata0<=4'b0000;cout<=1'b0;
end
else
begincdata1<=4'b0000;cdata0<=4'b0000;cout=1'b1;end
end
end
always
begin
data<=8'b01010101-((cdata1<<4)+cdata0);
if(((data>>4)&4'b1111)>4'b0101)
dout1<=(data>>4)&4'b1111-4'b1111;
else
dout1<=(data>>4)&4'b1111;
if((data&4'b1111)>4'b1001)
dout0<=(data&4'b1111)-4'b0110;
else
dout0<=data&4'b1111;
end
Endmodule
//datasel.v
moduledatasel(din0,din1,din2,din3,sel,dout0,dout1);
input[3:
0]din0,din1,din2,din3;
input[1:
0]sel;
output[3:
0]dout0,dout1;
reg[3:
0]dout0,dout1;
always
begin
if(sel==2'b00)
begindout1<=din2;dout0<=din3;end
elseif(sel==2'b01)
begindout1<=din0;dout0<=din1;end
elseif(sel==2'b10)
begindout1<=din2;dout0<=din3;end
elseif(sel==2'b11)
begindout1<=din0;dout0<=din1;end
else
begindout1<=4'b0000;dout0<=4'b0000;end
end
endmodule
//fdiv.v
modulefdiv(clk,clk1khz,clk1hz);
inputclk;
outputclk1khz,clk1hz;
regclk1khz,clk1hz;
integercnt1=0;
integercnt2=0;
always@(posedgeclk)
begin
if(cnt1<9999)
//if(cnt1<19)
begin
cnt1=cnt1+1;clk1khz<=1'b0;
end
else
begin
cnt1=0;clk1khz<=1'b1;
end
end
always@(posedgeclk1khz)
begin
if(cnt2<999)
//if(cnt2<9)
begin
cnt2=cnt2+1;clk1hz<=1'b0;
end
else
begin
cnt2=0;clk1hz<=1'b1;
end
end
endmodule
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 课程设计 交通灯 信号 控制器 设计 报告