当前位置:   article > 正文

多路彩灯控制器led流水灯VHDL速度可调仿真图视频、源代码_vhdl16路彩灯控制

vhdl16路彩灯控制

名称:多路彩灯控制器led流水灯VHDL速度可调

软件:Quartus

语言:VHDL

代码功能:

使用VHDL设计彩灯控制器,共24个led灯,分为5种不同的花样,可以通过按键切换花样的变化速度。

代码下载:

多路彩灯控制器led流水灯VHDL速度可调_Verilog/VHDL资源下载名称:多路彩灯控制器led流水灯VHDL速度可调(代码在文末付费下载)软件:Quartus语言:VHDL代码功能:使用VHDL设计彩灯控制器,共24个led灯,分为5种不同的花样,可以通过按键切换花样的变化速度。演示视频:部分代码展示LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all;--彩灯icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=189FPGA代码资源下载网:hdlcode.com

部分代码展示

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--彩灯控制模块
ENTITY caideng_ctrl IS
   PORT (
      clk_div  : IN STD_LOGIC;--控制时钟
      reset_p  : IN STD_LOGIC;--高电平复位
      led      : OUT STD_LOGIC_VECTOR(23 DOWNTO 0)--输出灯
   );
END caideng_ctrl;
ARCHITECTURE ctrl OF caideng_ctrl IS
   --中间信号
   SIGNAL led_buf     : STD_LOGIC_VECTOR(23 DOWNTO 0) := "000000000000000000000000";
   SIGNAL state_count : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";--状态计数器
BEGIN
   PROCESS (clk_div, reset_p)
   BEGIN
      IF (reset_p = '1') THEN--复位清零
         state_count <= "00000000";
      ELSIF (clk_div'EVENT AND clk_div = '1') THEN
         IF (state_count = "01010001") THEN
            state_count <= "00000000";--运行结束后循环
         ELSE
            state_count <= state_count + "00000001";--计数
         END IF;
      END IF;
   END PROCESS;
   
   led<=led_buf;
   PROCESS (clk_div, reset_p)
   BEGIN
      IF (reset_p = '1') THEN--复位清零
         led_buf <= "000000000000000000000000";
      ELSIF (clk_div'EVENT AND clk_div = '1') THEN
         CASE state_count IS
    --模式1
            WHEN "00000000" =>
               led_buf <= "000000000000000000000000";
            WHEN "00000001" =>
               led_buf <= "110011100011100011000110";
            WHEN "00000010" =>
               led_buf <= "001100111000111000111001";
            WHEN "00000011" =>
               led_buf <= "101110001110001110011100";
            WHEN "00000100" =>
               led_buf <= "000111000111000111001110";
            WHEN "00000101" =>
               led_buf <= "001100011100011100011100";
            --模式2
WHEN "00000110" =>
               led_buf <= "100000000000000000000000";
            WHEN "00000111" =>
               led_buf <= "101000000000000000000000";
            WHEN "00001000" =>

设计文档:

彩灯设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真文件

Testbench

6. 仿真图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/699648
推荐阅读
相关标签
  

闽ICP备14008679号