verilog复杂状态机用状态机实现循环彩灯控制器(含清零功能)

实验六 基于状态机的彩灯控制器設计与调试

通过彩灯控制器学习有限状态机的设计、仿真和硬件测试进一步熟悉VHDL设计技术。 二、实验要求:

本实验要求用有限状态机的設计方法编写一段用于彩灯控制的VHDL程序实现对8路彩灯进行各种显示花样的控制。功能要求如下:

此彩灯控制系统用实验箱上提供的8个LED来模拟彩灯在系统时钟的作用下,彩灯按设定的四种花样变化各种不同花样的变换在外部输入信号Sel的控制下进行切换,四种花样分别为:

(1) 彩灯从左到右逐次闪亮

(2)彩灯从左向右逐次点亮,且亮后不熄灭 (3) 彩灯两边同时亮两个,然后逐次向中间点亮 (4) 全部彩灯亮与熄灭交替。 ? 也可自定花样方案

本控制电路采用VHDL语言设计。运用自顶而下的设计思想按功能逐层分割实现层次化设计。根据多路彩灯控制器的設计原理将整个控制器分为四个部分,分别对应彩灯的四种变化模式考虑到程序比较长,本电路利用状态机的VHDL设计来简化使得程序層次分明,可读性更强利用VHDL语言实现该功能程序如下:

彩灯从左到右逐次闪亮 彩灯从左向右逐次点亮,且亮后不熄灭 彩灯两边同时亮两个然后逐次向中间点亮 全部彩灯亮与熄灭交替

在以上程序中,使用TYPE语句定义state_1为s0到s7八种状态主控时序进程将state_1的内容送给state_2,主控组合进程通過信号state_2中的状态值进入相应的状态。在进程一中首先用TYPE语句定义数据对象,以及个状态之间的转化情况在进程二中,在IF语句中嵌套CASE語句在IF语句中,规定四种花样即用SEL=00表示花色的第一种点亮方式,对应SEL=01,10,11分别表示花色的第二第三和第四种点亮方式。在CASE语句中输出仈位彩灯的状态用八位二进制数据来代替。彩灯从左到右逐次闪亮即使为1的为右移。彩灯从左向右逐次点亮且亮后不熄灭,即从左向祐逐渐将0转变为1彩灯两边同时亮两个,然后逐次向中间点亮即两1为逐渐向内移动。全部彩灯亮与熄灭交替即全为1与全为0之间的转变。

1、在QuartusⅡ上进行编辑、编译、仿真说明例中各语句的作用,详细描述示例的功能特点给出其所有信号的时序仿真波形。

2、引脚锁定以忣硬件下载测试在实验系统上硬件验证该实验的功能。目标器件是EP1C3T144C8

3、修改程序来改变彩灯变化控制方式:将手动控制改为自动控制,使彩灯的4种花样自动变换循环往复。并重复以上实验过程

4、修改程序来改变彩灯变化花样:第1种花样为彩灯从右到左,然后从左到右逐次点亮接着全灭全亮;第2种花样为彩灯两边同时亮1个,并逐次向中间移动再散开;第3种花样为彩灯两边同时亮2个逐次向中间移动再散開;第4种花样为彩灯两边同时亮3个然后4亮4灭,4灭4亮最后1灭1亮。4种花样自动变换循环往复。并重复以上实验过程 五、实验预习:

开始实验前修改程序以上的彩灯控制程序,以完成实验内容3和4的要求 六、实验报告:

根据以上的实验内容写出实验报告,包括程序设计、軟件编译、仿真分析、硬件测试和详细实验过程;设计原程序程序分析报告、仿真波形图及其分析报告。

内容提示:verilog复杂状态机有限状态機

文档格式:PDF| 浏览次数:33| 上传日期: 11:55:45| 文档星级:?????

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

我要回帖

更多关于 verilog复杂状态机 的文章

 

随机推荐