名称:多路彩灯控制器设计VHDL代码Quartus? DE2开发板
软件:Quartus
语言:VHDL
代码功能:
基于FPGA的多路彩灯控制器
1.彩灯从左到右逐次闪亮,然后从右到左逐次熄灭
2.彩灯两边同时亮两个,然后逐次向中间点亮
3.彩灯从左到右两个两个点亮,然后从右到左两个两个逐次点亮。
4.彩灯中间两个点亮,然后同时向两边散开
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
管脚分配
5.?仿真图
整体仿真图
分频模块
控制模块
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --分频模块 ENTITY?fenping?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC;--时钟 ??????rst??????:?IN?STD_LOGIC;--复位 ??????clk_1????:?OUT?STD_LOGIC;--输出时钟1,对应变化节奏1 ??clk_2????:?OUT?STD_LOGIC?--输出时钟2,对应变化节奏2 ???); END?fenping; ARCHITECTURE?behave?OF?fenping?IS??? ???SIGNAL?div_num???:?STD_LOGIC_VECTOR(31?DOWNTO?0)?:=?X"00000000";--计数寄存器 BEGIN ???--计数0~15 ???PROCESS?(clk) ???BEGIN ??????IF?(clk'EVENT?AND?clk?=?'1')?THEN ?????????IF?(rst?=?'0')?THEN ????????????div_num?<=?X"00000000";--复位 ?????????ELSIF?(div_num?=?X"02FAF080")?THEN--计数0~50000000 ????????????div_num?<=?X"00000000"; ?????????ELSE ????????????div_num?<=?div_num?+?X"00000001";--计数 ?????????END?IF; ??????END?IF; ???END?PROCESS;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1195
阅读全文