ledwater.vhd

来自「Mars-XC2S50-S-Core-V2.0开发板核心板的说明和设计文档」· VHDL 代码 · 共 59 行

VHD
59
字号

--跑马灯实验:利用计数器轮流点亮LED灯,实现各种动态效果。
-- 跑马灯实验:利用计数器轮流点亮LED灯,实现各种动态效果。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ledwater IS
   PORT (
      clk                     : IN std_logic;   
      rst                     : IN std_logic;   
      dataout                 : OUT std_logic_vector(11 DOWNTO 0));   
END ledwater;

ARCHITECTURE arch OF ledwater IS


   SIGNAL cnt                      :  std_logic_vector(27 DOWNTO 0);   

BEGIN

   PROCESS(clk,rst)
   BEGIN
	 
   IF(RST='0')THEN
	CNT<="0000000000000000000000000000";
	ELSIF(CLK'EVENT AND CLK='1')THEN
	CNT<=CNT+1;
	END IF;     

   END PROCESS;

	PROCESS(CNT(27 DOWNTO 24))
	BEGIN
	  CASE CNT(27 DOWNTO 24) IS
	  WHEN "0000" => DATAOUT<="011111111110";
	  WHEN "0001" => DATAOUT<="101111111101";
	  WHEN "0010" => DATAOUT<="110111111011";
	  WHEN "0011" => DATAOUT<="111011110111";
	  WHEN "0100" => DATAOUT<="111101101111";
	  WHEN "0101" => DATAOUT<="111110011111";
	  WHEN "0110" => DATAOUT<="111101101111";
	  WHEN "0111" => DATAOUT<="111011110111";
	  WHEN "1000" => DATAOUT<="110111111011";
	  WHEN "1001" => DATAOUT<="101111111101";
	  WHEN "1010" => DATAOUT<="011111111110";
	  WHEN "1011" => DATAOUT<="000000000000";
	  WHEN "1100" => DATAOUT<="111111111111";
	  WHEN "1101" => DATAOUT<="000000111111";
	  WHEN "1110" => DATAOUT<="111111000000";
	  WHEN "1111" => DATAOUT<="101010101010";
	  WHEN OTHERS =>
	  END CASE;
   END PROCESS;


END arch;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?