DE0开发板交通灯十字路口红绿灯VHDL

news2024/11/18 5:47:22

名称:基于DE0开发板的交通灯十字路口红绿灯

软件:Quartus

语言:VHDL

要求:

设计一个十字路口交通信号灯的控制电路。分为两种情况,正常状态和报警状态。

1.正常状态:要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。

绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。

要求主干道每次通行时间为 60秒,支干道每次通行时间为 30 秒。

每次变换运行车道前绿灯闪烁,持续时间为 5 秒。

即车道要由 X转换为 Y时,X在通行时间只剩下 5 秒钟时,绿灯闪烁显示, Y仍为红灯。

2.报警状态:亮黄灯,蜂鸣器响起。(蜂鸣器高电平触发)

外接键盘:三种模式的切换:高峰,正常,夜晚

高峰:x:绿灯 35S 红灯25S;y:绿灯 25S 红灯35S。

夜晚:x:绿灯 45S 红灯45S;y:绿灯 45S红灯45S

本代码已在DE0-CV开发板验证,板子资料如下:

FPGA_DE0-CV.pdf

代码下载:DE0开发板交通灯十字路口红绿灯_Verilog/VHDL资源下载

代码网:hdlcode.com

部分代码展示

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY Traffic_Light_Control IS
   PORT (
      clk     : IN STD_LOGIC;--50Mhz
reset          : IN STD_LOGIC;--复位
      key_1          : IN STD_LOGIC;--正常状态按键
      key_2          : IN STD_LOGIC;--高峰状态按键
      key_3          : IN STD_LOGIC;--夜晚状态按键
      sw1            : IN STD_LOGIC;--主路报警开关
      sw2            : IN STD_LOGIC;--支路报警开关
      beep            : OUT STD_LOGIC;--报警蜂鸣器
      red_1          : OUT STD_LOGIC;--主路灯
      green_1        : OUT STD_LOGIC;--主路灯
      yellow_1       : OUT STD_LOGIC;--主路灯
      red_2          : OUT STD_LOGIC;--支路灯
      green_2        : OUT STD_LOGIC;--支路灯
      yellow_2       : OUT STD_LOGIC;--支路灯
      HEX0    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管0
      HEX1    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管1
      HEX2    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--数码管2
      HEX3    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)--数码管3
   );
END Traffic_Light_Control;
ARCHITECTURE behave OF Traffic_Light_Control IS
--分频模块
COMPONENT CLOCK IS-- Divide 50MHz to 1Hz
GENERIC(D : INTEGER := 50000000);--仿真时改小为50加快仿真速度,实际上板验证时改为50000000
   PORT(CLK: IN STD_LOGIC;
         DAV: OUT STD_LOGIC);
   END COMPONENT;
--交通灯控制模块
COMPONENT Traffic_Light_ctrl IS
   PORT (
      clk            : IN STD_LOGIC;
      reset          : IN STD_LOGIC;
      clk_1Hz        : IN STD_LOGIC;--1Hz信号
      key_1          : IN STD_LOGIC;--正常状态按键
      key_2          : IN STD_LOGIC;--高峰状态按键
      key_3          : IN STD_LOGIC;--夜晚状态按键
      sw1            : IN STD_LOGIC;--主路报警开关
      sw2            : IN STD_LOGIC;--支路报警开关
beep            : OUT STD_LOGIC;--报警蜂鸣器
      red_1          : OUT STD_LOGIC;--主路灯
      green_1        : OUT STD_LOGIC;--主路灯
      yellow_1       : OUT STD_LOGIC;--主路灯
      red_2          : OUT STD_LOGIC;--支路灯
      green_2        : OUT STD_LOGIC;--支路灯
      yellow_2       : OUT STD_LOGIC;--支路灯
      main_time      : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--主路倒计时
      branch_time    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--支路倒计时
   );
END COMPONENT;
--显示模块
   COMPONENT HEX IS
      PORT (
         clk     : IN STD_LOGIC;
         SMG_1   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         SMG_2   : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         HEX0    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX1    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX2    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX3    : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
      );
   END COMPONENT;
   SIGNAL clk_1      : STD_LOGIC;
   SIGNAL main_time    : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL branch_time    : STD_LOGIC_VECTOR(7 DOWNTO 0);

设计文档(文档可下载):

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1047130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作

嵌入式Linux应用开发-基础知识-第三章 LED原理图-GPIO及操作 第三章 硬件知识_LED 原理图3.1 先来讲讲怎么看原理图 第四章 普适的 GPIO 引脚操作方法4.1 GPIO 模块一般结构4.2 GPIO 寄存器操作4.3 GPIO 的其他功能:防抖动、中断、唤醒 第五章 具体单板的 GPIO 操作…

Leetcode 992. K 个不同整数的子数组

文章目录 题目代码(9.27 首刷看解析) 题目 Leetcode 992. K 个不同整数的子数组 代码(9.27 首刷看解析) 滑动窗口,恰好转换为:最多K个不同的数 - 最多K-1个不同的数 class Solution { public:int subarr…

uni-app--》基于小程序开发的电商平台项目实战(三)

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败&#xf…

较真儿学源码系列-PowerJob MapReduce源码分析

PowerJob版本:4.3.2-main。 之前分析过PowerJob的时间轮源码,感兴趣的可以查看《较真儿学源码系列-PowerJob时间轮源码分析》 1 简介 MapReduce是一种编程模型,以及在集群上使用并行、分布式算法处理和生成大数据集的相关实现。 一个…

MySQL学习笔记18

MySQL的备份与恢复: 制定数据库备份策略进行备份,并且把数据导入到测试环境。 核心技术: 1)掌握MySQL的备份工具使用及各自特点; 2)熟悉Shell脚本; 3)熟悉MySQL数据的导入导出&a…

苹果 CMS 原生 Java 白菜影视 App 源码【带打包教程】

苹果 CMS 原生 Java 白菜影视 App 源码是一款功能强大的影视应用程序,支持画中画、投屏、点播、播放前广告和支持普通解析等多种功能。与萝卜 App 源码相比,该套源码更加稳定,且拥有画中画投屏和自定义广告等功能,提高了安全性。 …

PMP考前学习计划

很多小伙伴在刚刚接触到PMBOK时,无从下手,也不知道如何合理地安排自己的学习时间,没有一个学习计划作为指导。 今天我就给大家分享一份详细的PMP考前学习计划,这份计划整理并无私分享,欢迎大家分享给身边备考PMP的同事…

Java分支结构:一次不经意的选择,改变了我的一生。

👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、顺序结构二、分支结构1、if语句2、switch语句 好久不见!命运之轮常常在不经意间转动,有时一个看似微…

SEO的优化教程(百度SEO的介绍和优化)

百度SEO关键字介绍: 百度SEO关键字是指用户在搜索引擎上输入的词语,是搜索引擎了解网站内容和相关性的重要因素。百度SEO关键字可以分为短尾词、中尾词和长尾词,其中长尾词更具有针对性和精准性,更易于获得高质量的流量。蘑菇号-…

【MATLAB源码-第39期】基于m序列/gold序列的直接扩频通信仿真,编码方式采用卷积码,调制方式采用BPSK。

1、算法描述 直接序列扩频通信系统的仿真一般包括以下几个主要步骤:信号产生、扩频、卷积编码、BPSK调制、信道传输、BPSK解调、卷积码译码和解扩。 信号产生: 首先,产生一个二进制数据序列作为待发送的信息位。 扩频: 采用m序列…

windows11系统没有系统散热方式的解决办法

一、问题描述 当我们查看Win11系统的(同时按下键盘的WinR键即可打开运行窗口)【控制面板】-->【硬件和声音】-->【电源选项】-->【更改计划设置】-->【 更改高级电源设置】-->【处理器电源管理】下没有系统散热方式的选项,如下…

黑马JVM总结(二十五)

(1)字节码指令-cinit 构造方法可以分为两类,一类是cinit 一类init cinit是整个类的构造方法 putstatic:进行static变量的赋值,是到常量池里找到名字一个叫做i的变量 (2)字节码指令-init in…

Anchors

这是源代码定义的anchors概念: 实现过程: 假如有一张500500的图片,那么经过第一步深度卷积网络之后(4次池化),最终就会变成一个3232的特征: 在开源代码实现里面: 所以经过卷积完之后…

word中给公式加序号的方法

①首先,用word插入一个公式 然后呢,在公式后面敲上这个公式在整篇文章中的序号。我的这个公式在整篇文章中是第三号,所以就敲上(3),如下图所示: 然后,在公式和序号之间,按住shift3(#) 切忌,…

makdown文法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

【Win11 搭建miniconda 的pytorch1.12环境】

请不要质疑我一直在水文章,因为我电脑被格式化了,需求又变了,这不得多多与时代接轨哦! 为我的GRCNN抓取打基础,之前是在Ubuntu上跑:【机械臂视觉抓取从理论到实战】,没错现在就是在WIN11上跑&am…

《数据结构、算法与应用C++语言描述》使用C++语言实现数组栈

《数据结构、算法与应用C语言描述》使用C语言实现数组栈 定义 栈的定义 把线性表的插入和删除操作限制在同一端进行,就得到栈数据结构。因此,栈是一个后进先出(last-in-first-out,LIFO)的数据结构。 栈&#xff08…

测试用例的八大基本准则

测试用例的八大基本准则 测试用例的八大基本准则功能测试性能测试兼容性测试安全测试可靠性测试易用性测试数据库测试接口测试 测试案例 测试用例的八大基本准则 上节测试用例的设计中我们讨论如何设计一个测试用例,知道了测试用例的设计有:“边界值&am…

【搭建yolox深度学习环境】

这里写目录标题 一、环境配置二、安装所需库文件2.1 安装apex 一、环境配置 首先进行yolox模型的下载:YOLOX(gitcode) 或者YOLOX(github) 并选择自己所需的权重模型,如-s-m-l等(.pth文件) 如果需要进行labview的使用,…

正则表达式贪婪模式和非贪婪模式

一、贪婪模式 贪婪模式表示尽可能多的匹配字符串&#xff0c;正则表达式六个量词元字符?、、*、{n}、{n,m}、{n,}默认是贪婪模式 接下来引入一个场景来分析说明 获取html a标签href属性的值 <a href"https://www.baidu.com/" attr"abc"></a>…