FPGA(7)--有限状态机--交通灯

一、实验目的

掌握有限状态机的编程和使用方法。

二、实验内容

设计一个十字路口交通灯控制器,东西(b)、南北(a)方向有红灯、黄灯、绿灯,持续时间分别为45、5、40秒,仿真验证其功能。
在这里插入图片描述

三、实验设计与结果

1.整体设计思路:根据题目要求可知,需要用VHDL描述设计不同的进程分别进行“复位清零”、“状态定义及转化”、“时间定义及控制”、“计时”的功能。而又因为红绿灯需要持续40秒,而黄灯只需要持续5秒,因此需要将“时间的定义及控制”、“计时”的功能各自都分开成两个部分。细节:需要注意复位清零的异步性、双向红绿灯存在的4种不同状态、计时功能与状态选择的衔接等。VHDL描述代码如下。
①引入与定义:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;ENTITY rgy3 isport( clk,rst: in std_logic;Ra,Rb,Ga,Gb,Ya,Yb: out std_logic);
END rgy3;Architecture bhv of rgy3 istype state is (S0,S1,S2,S3);signal presentstate,nextstate : state;signal time40,time5 : std_logic;signal rst40,rst5 : std_logic ;signal en40,en5 : std_logic ; signal tmp40 : std_logic_vector(5 downto 0);signal tmp5 : std_logic_vector(2 downto 0);begin

②异步复位清零:

	process(clk,rst)beginif rst = '1' then presentstate <= S0;elsif clk'event and clk='1' thenpresentstate<=nextstate;end if;end process;

③40秒计时:

process(clk,rst40,en40) begin if rst = '1' then tmp40<="000000";elsif rst40='1' then tmp40<="000000";elsif clk'event and clk='1' then if en40='1' thenif tmp40="100111" then tmp40<="000000";else tmp40<=tmp40+1;end if;end if;end if;if tmp40="100111" then time40<='1';else time40<='0';end if;end process;

④5秒计时:

	process(clk,rst5,en5) begin if rst = '1' then tmp5<="000";elsif rst5='1' then tmp5<="000";elsif clk 'event and clk='1' then if en5='1' thenif tmp5="100" then tmp5<="000";else tmp5<=tmp5+1;end if;end if;end if;if tmp5="100" then time5<='1';else time5<='0';end if;end process;

⑤时间与状态衔接:

process(presentstate,time40,time5)begincase presentstate iswhen S0 => rst40 <='0';en40<='1';rst5<='1';en5<='0';if time40= '1' then nextstate<= S1;else nextstate<= S0; end if;when S1 => rst5 <='0';en5 <='1';rst40<='1';en40<='0';if time5= '1' then nextstate<= S2;else nextstate<= S1; end if;	when S2 => rst40 <='0';en40<='1';rst5<='1';en5<='0';if time40= '1' then nextstate<= S3;else nextstate<= S2; end if;								when S3 => rst5 <='0';en5<='1';rst40<='1';en40<='0';if time5= '1' then nextstate<= S0;else nextstate<= S3; end if;					 end case;end process;

⑥状态对应转化:

process(presentstate)begincase presentstate is when S0 	=>   Ra<='0'; Ya<= '0'; Ga<='1'; Rb<='1'; Yb<= '0'; Gb<='0';	when S1 	=>   Ra<='0'; Ya<= '1'; Ga<='0'; Rb<='1'; Yb<= '0'; Gb<='0';	when S2 	=>   Ra<='1'; Ya<= '0'; Ga<='0'; Rb<='0'; Yb<= '0'; Gb<='1';	when S3	=>   Ra<='1'; Ya<= '0'; Ga<='0'; Rb<='0'; Yb<= '1'; Gb<='0';end case;end process;

2.仿真实验:输入:clk、rst,输出:Ra、Rb、Ga、Gb、Ya、Yb以及状态中间输出:presentstate、tmp40、tmp5。
在这里插入图片描述

3.状态机转换图。
在这里插入图片描述

4.根据引脚配置完成接线,下载至FPGA芯片中,在实验箱上完成验证。如下图为相关的实验验证。
在这里插入图片描述
在这里插入图片描述

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料)


四、实验思考与小结

1.VHDL描述的模块化,将实现不同功能的VHDL描述分开在不同的进程里面,实现VHDL的“高内聚低耦合”。
2. 需要明确不同的状态机它们之间的转换条件。
3. 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。交通信号灯可以用状态机的原理来实现,因为信号灯的变化状态是有限的,各个状态可以列举出来,状态间切换由计数器决定。

以下请忽略!

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
list=[[1,2,3,4,5,6],[2,4,6,8,10,12],[1,3,5,7,9,11],[1.1,2.2,3.3,4.4,5.5,6.6],[3,6,9,12,15,18],[4,8,12,16,20,24
],[5,10,15,20,25,30],[1.5,2.5,3.5,4.5,5.5,6.5],[1,4,7,10,13,16],[2,5,8,11,14,17]]
a=np.array(list)
std=[]
avg=[]
x=[1,2,3,4,5,6,7,8,9,10]
for i in range(0,len(list)):std.append(np.std(a[i]))avg.append(np.mean(a[i]))
fig=plt.figure()
plt.xticks(x,x)
plt.plot(x,avg,marker="o",color='#858687',markeredgecolor='black',linewidth=3,label="Mean Value")
for i in range(len(avg)):plt.text(x[i],avg[i],avg[i],fontsize=10)
y1=[]
y2=[]
for i in range(len(x)):y1.append(avg[i]+std[i]/2)y2.append(avg[i] - std[i] / 2)
plt.fill_between(x,y1,y2,color='#d2e3f0',label="Standard deviation")
plt.grid()
plt.legend(loc=2)
plt.show()

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

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

相关文章

Spring Cloud配置–外部化应用程序配置

本教程是关于Spring Cloud Config的&#xff0c;这里我们将研究如何在不同的应用程序中针对不同的环境&#xff08;例如开发人员&#xff0c;本地&#xff0c;产品等&#xff09;使用Spring Cloud Config来管理和存储分布式外部配置属性。开发一个简单的云应用程序以使用云配置…

输入法问题_「图」KB4515384再爆新问题:OOBE时中文输入法阻止创建本地账户

KB4515384可谓是近期BUG数量最多的累积更新了&#xff0c;继开始菜单出现严重错误、音频故障、网络适配器问题、PIN登陆系统无法使用之后&#xff0c;在支持文档中微软承认了在初次设置(OOBE)过程中&#xff0c;使用某些语言将会阻止用户创建本地账户。微软在支持文档中表示&am…

cas后端返回html直接跳转,CAS验证成功后不能跳转到登陆成功的主页面解决办法...

CAS验证成功后不能跳转到登陆成功的主页面现在部署了CAS,有一个应用,下载输入应用的URL可以正确跳转到CAS服务的登陆界面,登陆验证通过后页面却跳转到了应用的登陆界面&#xff0c;不能直接进入登陆成功的主页面&#xff01;应用的web.xml如下CASFilterorg.jasig.cas.client.au…

FPGA(0)--quartusⅡ安装

微信公众号&#xff1a;创享日记 发送&#xff1a;quartus 获取软件安装包等 &#xff08;假设光盘驱动器号为 E&#xff0c; 所有软件安装到 D 分区&#xff09; 1.运行e:\QuartusII9.0 \ isetup.exe&#xff0c;直接点击“next”,一直到完成安装 2.设安装路径和目录为&#…

中文转化成拼音_五笔已经淘汰,拼音到达瓶颈,百度重拳出击,全新输入方式来袭!...

不知道大家发现没有&#xff0c;中文输入法的发展历程&#xff0c;其实就是通过建立云词库&#xff0c;改进词汇&#xff0c;发展AI技术来改善拼音输入法的识别率&#xff0c;进而取代五笔输入法的过程。拼音取代五笔&#xff0c;根本原因是易用好学&#xff0c;只要会讲普通话…

计算机二级web题目(1)--web基础

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1[单迭题] 下列关于Internet和Web的说法中,正确的是(B). A .Web就是Internet别称…

html属性和dom属性的区别,HTML属性与DOM属性的区别?

RTBTW&#xff0c;这样的文章我还是没有读懂http://www.cnblogs.com/tomkillua/archive/2012/08/15/2639420.html对于浏览器引擎而言&#xff0c;并不存在“HTML标签”这回事。其本质是DOM节点对象。也并不存在“HTML文档”这回事&#xff0c;其本质是DOM节点对象组成的文档树。…

java泛型方法 通配符_Java泛型教程–示例类,接口,方法,通配符等

java泛型方法 通配符泛型是Java编程的核心功能之一&#xff0c;它是Java 5中引入的。如果您使用的是Java Collections &#xff0c;并且版本5或更高版本&#xff0c;则可以肯定使用了它。 将泛型与集合类一起使用非常容易&#xff0c;但是它提供了比仅创建集合类型更多的功能&a…

ubuntu中mysql怎么退出命令_Ubuntu下MySQL简单操作

安装Ubuntu下安装常规软件都比较简单&#xff0c;直接使用apt-get即可。安装步骤如下&#xff1a;输入mysql命令系统会提示没有安装这个软件&#xff0c;如下图&#xff1a;根据系统提示&#xff0c;执行下面命令进行安装。$ sudo apt-get install mysql-client-core-5.6$ sudo…

虚拟现实技术利用计算机,虚拟现实技术在计算机专业教学中的应用思考

【摘要】虚拟现实技术在计算机教学中进行应用&#xff0c;其能够有效提高学生的学习兴趣&#xff0c;培养学生的探索能力和创新能力。本文对虚拟现实技术的概念和特点进行了阐述&#xff0c;并且分析了虚拟现实技术在计算机实践教学中的实践应用&#xff0c;从而有效提高计算机…

计算机二级web题目(2)--HTTP基础

1[单选题]HTTP协议是运行于&#xff08;C&#xff09;协议上的应用层协议。 A. FTP B. SMTP C.TCP D. UDP 解析&#xff1a;①传输控制协议TCP是传输层通信协议。 2[单选题] HTTP协议的消息有(B)两种类型。 A. 发送消息和接收消息 B. 请求消息和响应消息 C. 消息头和消息体 D. …

mpu 配置内存空间_PCIE的内存地址空间、I/O地址空间和配置地址空间

pci设备与其它接口的设备(如i2c设备)最大的不同是存在内存地址空间和配置地址空间首先区分一下IO空间和内存空间cpu会访问的设备一般有内存和外设寄存器&#xff0c;如下图所示。x86架构采用独立编址将内存操作与外设IO操作分开了才有了内存空间和IO空间的区分&#xff0c;x86平…

如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证

在上一篇文章中&#xff0c;我向您展示了如何在Java应用程序中启用Spring安全性 &#xff0c;今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 。 如果您使用的是Spring Security 3.1或更低版本&#xff0c;我将向您展示如何同时使用Java配…

网络通信协议是计算机网络的组成部分之一,通信互联网技术考点精讲之计算机网络系统的组成...

下面是由希赛小编整理的通信互联网技术考点精讲之计算机网络系统的组成&#xff0c;希望能帮助学友们。具体内容如下&#xff1a;计算机网络系统的组成计算机网络通常由3部分组成&#xff1a;资源子网、通信子网和通信协议&#xff1f;(1)资源子网&#xff1a;是网络中实现资源…

centos安装llvm_Linux CentOS上编译并安装Clang教程

如何在Linux CentOS上编译并安装Clang&#xff1f;下面小编为大家具体的介绍一下&#xff0c;解决你在安装Clang遇到的一系列问题。一、Minimal版CentOS安装Clang前的环境准备1&#xff0c;安装gcc&#xff1a;yum install gcc2&#xff0c;安装g&#xff1a;yum install gcc-c…

win10下JDK环境变量配置与IDEA开发工具清晰简洁步骤,迈出Java学习第一步

文章目录一、JDK下载二、win10下环境变量配置三、开发工具IDEA安装一、JDK下载 可以直接去官网下载&#xff0c;推荐下载JDK8.0版本 也可以这个网盘里面找一下下载&#xff1a;Windows下JDK8.0 提取码&#xff1a;0909 安装的时候建议jdk和jre都。 二、win10下环境变量配置 …

双非计算机专业考研西安交通大学,2020双非一战计算机专硕初试403经验贴

本帖最后由 Johnsonw 于 2020-7-3 10:59 编辑先自我介绍一下&#xff0c;我初试403分&#xff0c;专业课134分&#xff0c;本科是双非&#xff0c;无项目经历&#xff0c;无科研经历&#xff0c;一战西安交通大学&#xff0c;最终成功上岸。初试&#xff1a;参考书目西安交通大…

计算机二级web题目(3)--HTML基础

1 [单选题] HTML是一种标记语言。它是由&#xff08;C&#xff09;解释执行的。 A. 不需要解释 B. Windows C. 浏览器 D. 标记语言处理软件 2 [单选题] 在HTML文档中用于表示页面标题的标记对是(D)。 A. <head></head> B. <header></header> C. <Ca…

连不上机器判断机器状态_KUKA机器人为什么KPP故障联不上,断电重启hou报RDC连接连接不上...

1.RDC连不上出现的现象: 通过指示灯的判断是最简单快捷的,如果是坏了可以直接提示RDC的故障,如果灯不亮可直接判断是RDC坏了或者是线没连上.如果RDC卡连不上,指示是不亮的!那么KSP或KPP网络断,同样会引起RDC不能读取数据,这是问什么呢?表面上看在KCB总线中KSP与KPP是串行连接的…

分布式部署_业务模块化打造单体和分布式部署同步支持方案

我在2019年中国.NET开发者峰会上为大家分享了我们的微服务电商安全工程实践&#xff0c;那次会议分享的高清录播已经上传到我的腾讯课堂&#xff0c;大家可以通过底部的小程序打开直接观看(复习)。在大会上跟大家提到&#xff0c;我们当时只有4个人的创业团队。追求的是一个既可…