1 / 21
文档名称:

FPGA课程设计报告.doc

格式:doc   大小:180KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FPGA课程设计报告.doc

上传人:annimy 2022/1/15 文件大小:180 KB

下载得到文件列表

FPGA课程设计报告.doc

文档介绍

文档介绍:FPGA课程设计报告
FPGA课程设计报告
FPGA课程设计报告
FPGA课程设计报告
     专业:通信工程
     班级:班
  姓名:
    学号:
minus为0时,递增计数到99时下一刻为00。
当clk为0时,计数器清零。
当plus为0,minus为1时,递减计数,00时下一秒变为99。
当plus为1,minus为1,暂停计数。
设计中遇到问题及解决方法
在设计时,我用的是让其自己加减的方法,在仿真时可以做出正确的结果,但是在下载板中显示时,个位一直从0加到了F才向十位进位,我感觉到可能是程序出错了,我没有将十位和个位分开,而是写在了一起,导致默认为十六位计数,于是我将程序改为分开计数,最后终于成功了。
心得体会
从第一个简单的实验中我感觉到,看起来简单的事,可能自己亲手做的时候就会发现很多问题,这些问题都要自己去解决,后面的两个实验更难,我需要更多的去开动脑筋,多多查阅资料,力争做好。
设计课题2:交通灯控制系统,要求用DE2—115开发板下载.
(1)设计一个十字路口交通信号灯的定时控制电路。要求红、绿灯按一定的规律亮和灭,绿灯亮时,表示该车道允许通行;红灯亮时,该车道禁止通行。并在亮灯期间进行倒计时,并将运行时间用数码管显示出来.
(2)要求主干道每次通行时间为40秒,支干道每次通行时间为30秒。每次变换运行车道前绿灯闪烁,持续时间为5秒。即车道要由主干道转换为支干道时,主干道在通行时间只剩5秒钟时,绿灯闪烁5秒显示,支干道仍为红灯,以便主干道上已过停车线的车继续通行,未过停车线的车停止通行。同理,当车道由支干道转换为主干道时,支干道绿灯闪烁显示5秒钟,主干道仍为红灯。
FPGA课程设计报告
FPGA课程设计报告
FPGA课程设计报告
(3)定时器要求采用递减计时方式进行计时。
两个定时时间:绿灯闪烁和绿灯停止闪烁
4个状态:
S0:主干道绿灯亮,支干道红灯亮。
S1:主干道绿灯闪烁,支干道红灯亮。
S2:支干道绿灯亮,主干道红灯亮。
S3:支干道绿灯闪烁,主干道红灯亮
设计步骤
第一步:在程序内部转载一个计数器,从70递减计数到00,如此循环。用时15分钟。
第二步:设计主干道的计时器,从40到00,主干道绿灯亮,最后五秒时绿灯闪烁,支干道红灯亮。用时120分钟。
第三步:设计支干道的计时器,从30到00,支干道绿灯亮,最后五秒时绿灯闪烁,主干道红灯亮。用时60分钟。
关键词
交通灯;十字路口;倒计时闪烁。
内容摘要
该红绿灯可实现十字路口的交通管制,主干道和支干道分别通行40秒和30秒如此循环,可便于交通顺畅,通行与否由红绿灯予以提示.
总体方案
顶层逻辑电路图
FPGA课程设计报告
FPGA课程设计报告
FPGA课程设计报告
上图为红绿灯的封装图,sw[0]为脉冲频率控制端,sw[1]为清零端,LEDR[0]为主干道红灯,LEDG[0]为主干道绿灯,LEDR[1]为支干道红灯,LEDG[1]为支干道绿灯,HEX7为主干道秒钟的十位,HEX6为主
干道秒钟的个位,HEX5为支干道秒钟的十位,HEX4为支干道秒钟的个位.
底层功能模块设计
红绿灯的程序代码:
moduleled(clk,//脉冲
clr,//清零端
m_ledr,//主干道红灯
m_ledg,//主干道绿灯
s_ledr,//支干道红灯
s_ledg,//支干道绿灯
count1,//主干道秒钟
count2//支干道秒钟
);
input clk,clr;     
output m_ledr,m_ledg,s_ledr,s_ledg;  
output[7:0] count1,count2;  
reg m_ledr,m_ledg,s_ledr,s_ledg; 
reg[7:0] count1,count2; 
reg[1:0] state; 
reg[7:0] times;
FPGA课程设计报告
FPGA课程设计报告
FPGA课程设计报告
parameterstate0=2’b00,//定义四种状态
state1=2’b01,
state2=2’b10,
state3=2'b11;
always @(posedge clk or negedge clr) 
begin 
if(!clr)//清零
begin
times<=8'h70;//计数清零
state<=state0;//状态复位
end
elseif(times==0)//计数为零
times<=8’h70;//计数预置
else
begin
t