交通灯实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA 实现的交通灯控制器

一、实验室名称

通信实验室(实训楼二楼)

二、实训内容

本实验为Verilog HDL 的程序设计仿真,通过实验掌握状态机,时序CLK 的控制模块,及时序同步的控制方式。

实验要求:

1.LED 灯显示交通灯状态。

2.7段数码管显示当前状态剩余时间。

状态要求:

1.主干道绿灯亮35s 支道绿灯亮25s 。

2.当主干道绿灯亮时,支道亮红灯。

3.由绿灯转红灯时,黄灯亮5s 。

3.时钟为1KHz 。能实现倒计时显示。

4.由初始状态开始计数,对应状态指示。

三、实验原理

3.1设计思路和原理

本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。循环往复的直行这个过程。其过程如下图所示:

状态1: 主干道绿灯亮 支干道红灯亮 35秒 状态3: 主干道红灯亮 支干道绿灯亮

25秒 状态4: 主干道红灯亮 支干道黄灯亮 5秒 状态2: 主干道黄灯亮 支干道红灯亮 5秒

3.2实现方法

本次采用文本编辑法,即利用Verilog HDL语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用两个7段数码管显示主干道上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

3.3整体设计

交通灯控制的关键是各个状态之间的转换和进行适当的时间延时,根据状态机的设计规范,本次设计了三个状态之间的循环转化,说明:该状态图为交通灯在正常情况下的状态转化图,进入控制后,状态00时主干道绿灯及支干道红灯亮起,进入状态01后两路黄灯亮起,状态11时主干道红灯及支干道绿灯亮起。进入10状态两路黄灯亮起。结束一个循环,从00状态重新开始循环。为实现控制与显示的功能,需要设计交通灯点亮顺序控制程序,倒数计时程序,七段数码管显示程序,数码管显示扫描程序。

3.4具体设计

根据整体设计要求,编写各个功能部分Verilog HDL程序,设置各输入输出变量说明如下:

clk //实验箱 1K Hz的时钟计时

g1,g2,r1,r2,y1,y2; //g、r、y依次为绿green红red黄灯yellow,1为主干道,2为支道

四、实训步骤

1、建立工程文件

1)打开Quartus II 8.1,点击File,New Project Waizard:Introdution,点击Next创建新的工程给命名为qiuge80fen,点击next,选择cyclone III芯片,类型为FPGA,芯片型号EP3C40F78C08, )选择软件中的菜单File>New Project Wizard,新建一个工程。

2)点击NEXT进入工作目录,第一个输入框为工程目录输入框,用户可以输入如e:/eda等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如EXP1,一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定。

3)点击NEXT,进入下一个设定对话框,按默认选项直接点击NEXT进行器件选择对话框。如图1-6所示。这里我们以选用CycloneIII系列芯片EP3C40F780C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。首先在对话框的左上方的Family下拉菜单中选取CycloneⅢ,在中间右边的Speed grade下拉菜单中选取8,在左下方的Available devices框中选取EP3C40F780C8,点击NEXT 完成器件的选取按默认选项,点击NEXT出现新建工程以前所有的设定信息

2. 编写程序

选择软件中的菜单File>New,选择Verilog HDL,新建一个Verilog HDL 文件,然后进行程序的编写。

3、对设计文件进行编译

QUARTUSII编译器窗口包含了对设计文件处理的全过程。在QUARTUSII软件中选择Processing>Compiler Tool菜单项,则出现QUARTUSII的编译器窗口,需要说明的是在进行设计文件的综合和分析,也可以单独打开某个分析综合过程不必进行全编译界面。当完成上述窗口的设定后,点击START按钮进行设计文件的全编译。如果文件有错,在软件的下方则会提示错误的原因和位置,以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提示编译成功。

4、管脚分配

1)在前面选择好一个合适的目标器件(在这个实验中选择为EP3C40F780C8),完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。2)点击Assignments菜单下面的Assignment Editor,进入到引脚分配窗口,

首先将要分配管脚的信号放置在To下方。双击To下方的New,选择Node Finder 进入对话框界面。Filter窗口选择Pins:all,在Named窗口中输入“*”,点击List在Nodes Found窗口出现所有信号的名称,点击中间的>>按钮点击OK,再按分配管脚如下图完成后点击工具栏中的Start Compilation进行编译。

3)选择端口A的对应Assignment Name 待其变为蓝色,双击之,出现下拉菜单选取如图1-19所示的Location(Accepts wildcards/groups)选项。选择端口A的对应Value栏,待其变为蓝色,依照表1-2和表1-3所示的硬件与FPGA的管脚连接表(或附录),输入对应的管脚名AH12,按回车键,软件将自动将其改为PIN_AH12,同时蓝色选择条会自动跳转到Value栏的下一行,这表明软件已经将输入端口A分配到FPGA的AH12引脚上

5、波形仿真

1.)创建一个仿真波形文件,选择QUARTUSII软件File>New,进行新建文件对话框。选取对话框的Verification/Debugging Files标签页,从中选取Vector Waveform File,点击OK按钮,则打开了一个空的波形编辑器窗口

相关文档
最新文档