实验一:交通灯的设计及FPGA实现
作者: Saint
掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a
微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1
GitHub:github.com/saint-000
一、实验目的:
熟练使用VHDL进行RTL级代码的编写;熟练运用EDA工具(modelsim、ISE)和 FPGA 开发板,完成较复杂的系统设计;锻炼系统级的设计能力及原型验证能力。完成模拟交通灯的设计及 FPGA 实验验证。
二、实验原理:
(1)交通信号灯的基本转换原理
本实验要求模拟的交通信号灯的转换原理如下图所示:
默认的初始状态为红灯状态,做 30 秒减计时。当时间从 30 秒递减到 0 秒后,红灯状态变为绿灯状态;重新 30 秒减计时,递减到 0 秒后,绿灯状态变为黄灯状态;做 5 秒减计时,递减到 0 秒后,黄灯状态变为红灯状态。如此循环进行转换。
(2)共阳数码管
实验主板上的 8 个数码管为共阳极型,即数码管的公共端接正极,显示段码信号接负极。8个数码管的显示段码信号复用,公共端则相互独立。数码管和 LCD 模块共用一组 IO 控制接口,用户做这俩实验时,注意数码管和 LCD 不要同时工作。通过数码管旁边的J1 跳线控制。
(3)拨码开关
实验主板上设计了一组8位的拨码开关,ON为低电平,OFF为高电平。拨码开关可供用户 输入一些高低电平。
(4)LED灯电路(启用需短接J4)
实验主板上 LED 灯电路属于板内资源,要使用它,需把 J4 短接。LED 灯的阳极接电源, 阴级接 FPGA、CPLD 的 I/0 口,因此是低电平驱动,只要由 FPGA、CPLD 在相应引脚给出 低电平,LED 就会发光。LED 灯电路原理图如图 1-6 所示,对应 FPGA 管脚如表 1-3 所示。
三、实验器材(设备、元器件):
计算机、FPGA 开发板、开发板附件
四、实验内容:
编写 VHDL 代码、生成下载文件,下载设计到 FPGA 实现如下功能:模拟路口交通信号灯的红、黄、绿灯的变化过程,分别用三个 LED 灯表示,并在数码管上动态显示当前状态剩余时间。要求红灯持续时间为 30 秒,黄灯 5 秒,绿灯 30秒。
五、实验步骤:
(1)创建工程
1.打开 Xilinx ISE 7.1i。选择 File-New Project 新建工程,根据需要设定工程名 称和工程路径。
2.点击下一步配置工程属性, Device Family 选择 Spartan2,