没有合适的资源?快使用搜索试试~ 我知道了~
基于VHDL语言的交通信号灯设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 93 浏览量
2023-06-22
23:56:59
上传
评论 1
收藏 160KB DOC 举报
温馨提示
试读
18页
基于VHDL语言的交通信号灯设计.doc
资源推荐
资源详情
资源评论
交通信号控制器的 VHDL 的设计
1.设计任务
模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿 LED
作为交通信号灯,设计一个交通信号灯控制器,示意图如图 1-1 所示。要求:
(1) 交通灯从绿变红时,有 4 秒黄灯亮的间隔时间;
(2) 交通灯红变绿是直接进行的,没有间隔时间;
(3) 主干道上的绿灯时间为 40 秒,支干道的绿灯时间为 20 秒;
(4) 在任意时间,显示每个状态到该状态结束所需的时间。
支干道
主干道
图 1-1 路口交通管理示意图
表 1-1 交通信号灯的 4 种状态
A
B
C
D
主干道交通灯
绿(40 秒)
黄(4 秒)
红(20 秒)
红(4 秒)
支干道交通灯
红
红
绿
黄
2.设计要求
采用 VHDL 语言编写程序,并在 QuartusII 工具平台中进行开发,下载到 EDA
实验箱进行验证。
编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得
体会。
3.设计方案
CLK
时间显示数据输出
信号灯输出
图 3-1 交通信号灯控制器程序原理框图
进程将 CLK 信号分频后产生 1 秒信号,然后构成两个带有预置数功能的十进
制计数器,并产生允许十位计数器计数的控制信号。状态寄存器实现状态转换和
产生状态转换的控制信号,下个模块产生次态信号和信号灯输出信号,以及每一
个状态的时间值。经过五个模块的处理,使时间计数、红绿灯显示能够正常运行。
程序原理图如图 3-1 所示。
4.各模块具体设计
4.1 顶层文件的设计
顶层文件的原理图可以依据系统的框图进行,由控制模块 JTD_CTRL、计时
模块 JTD_TIME、译码驱动模块 JTD_LIGHT、显示模块 JTD_DIS 和分频模块
JTD_FQU 五部分组成,其顶层原理图文件如图 3-1 所示。
秒脉冲信号
发生器
计数器
状态寄存器
次态发生器
信号灯输出信号
图 4-1 交通灯顶层文件原理图
顶层模块的程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TRAFFIC IS
PORT(
CLK1K,CLR:IN STD_LOGIC;
M:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END TRAFFIC;
ARCHITECTURE BEHAVE OF TRAFFIC IS
COMPONENT JTD_FQU IS --分频器元件的例化
PORT(
CLK1K:IN STD_LOGIC;
CLK:OUT STD_LOGIC
);
END COMPONENT;
COMPONENT JTD_DIS IS --数码显示的元件例化
PORT(
CLK1K,CLK,CLR:IN STD_LOGIC;
M:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END COMPONENT;
COMPONENT JTD_LIGHT IS --译码驱动的元件例化
PORT(
CLR:IN STD_LOGIC;
M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END COMPONENT;
COMPONENT JTD_TIME IS --计时元件的例化
PORT(
CLK,CLR:IN STD_LOGIC;
M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
AT,BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END COMPONENT;
COMPONENT JTD_CTRL IS --控制模块的元件例化
PORT(
CLK,CLR:IN STD_LOGIC;
AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
M:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
剩余17页未读,继续阅读
资源评论
- m0_750235432023-12-15感谢资源主的分享,很值得参考学习,资源价值较高,支持!
老帽爬新坡
- 粉丝: 82
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功