哪位大侠帮我编一个彩灯控制的VHDL程序,急~~

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:26:27
一种彩灯控制器控制8盏灯。该彩灯控制器有4种自动切换的花样。第一种花样为彩灯从右到左,然后从左到右逐次点亮,全灭全亮;第二种花样为彩灯两边同时亮一个逐次向中间移动再散开;第三种花样为彩灯两边同时亮两个逐次向中间移动再散开;第四种花样为彩灯两边同时亮三个,然后四亮四灭,四灭四亮,最后一灭一亮。四个花样自动变换,重复以上过程。输入时钟频率为500Hz,灯亮的时间在1—4秒之间,可以自由控制。电路中以“1”代表灯亮,以“0”代表灯灭
哪位兄弟帮帮忙啊 ~~

首先应进行系统模块的划分,规定每一模块的功能以及各个模块之问的接口。最终设计方案为:以一个十六路彩灯花样控制器、一个四频率输出分频器,一个四选一控制器和一个时间选择器总共四部分来完成设计。四选一控制器从分频器选择不同频率的时钟信号输送到彩灯花样控制器,从而达到控制彩灯闪烁速度的快慢,时间选择器控制每种速度维持的时间长短。

子模块及其功能

本次设计分为四个子模块,即十六路彩灯花样控制器、四频率输出分频器,四选一控制器和时问选择器,其子模块及其功能如下:

(1)四频率输出分频器:在本次设计中,我们只设计了四种花样,我们要求这四种花样以不同的频率显示,而只有一个输入的时钟信号,所以我们对所输入的时钟信号进行2分频、4分频、8分频、16分频,得到四种频率信号,CLKDIV模块就是来完成此功能。

(2)时间选择器:时间选择器实际上是两个分频器,其中一个频率是另一个频率的两倍。本来这两个分频器可以在上述的四频率输出器中实现的,但为了方便地为四选一控制器提供不同的时间选择条件,就将这两个分频器独立开来。这两个输出的的时钟信号组合起来就可以为四选一控制器提供00、01、10、11四个时间选择条件,如图2所示。

(3)四选一控制器:四选一控制器功能是从分频器中选择不同频率的时钟信号送给彩灯控制器,实现彩灯闪烁的频率变化。

(4)彩灯控制器:彩灯控制电路是整个设计的核心,它负责整个设计的输出效果即各种彩灯图案的样式变化。该程序充分地说明了用VHDL设计电路的“弹”性,即可通过改变程序中输出变量Q的位数来改变彩灯的数目。其中,P1进程对灯闪的速度进行控制,有两种方式可改变灯闪的速度:一是改变外部时钟的赋值,二是改变信号U的位数。P2进程能进行彩灯的图案控制,改变s的位数即可改变要控制图案的数目,改变输出变量O的组合即可变幻彩灯图案。
仿真结果

最后,当各个模块均完成上述操作之后,即可利用MAXPLLUS2的原理图输入,调用各个元器件(底层文件),以原理图的形式形成最后的十六路彩灯显示系统(顶层文件),并且进行仿真。仿真通过,即可下载到指定的CPLD芯片里面,并进行实际连线,