⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sxkz.vhd

📁 彩灯显示控制,五个花样,可独立也可循环显示
💻 VHD
字号:
--时序控制电路的VHDL源程序
--SXKZ.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SXKZ IS
  PORT(CHOSE_KEY:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
       CLK_IN:IN STD_LOGIC;
       CLR:IN STD_LOGIC;
       CLK:OUT STD_LOGIC);
END ENTITY SXKZ;
ARCHITECTURE ART OF SXKZ IS
  SIGNAL CLLK:STD_LOGIC;
  BEGIN
    PROCESS(CLK_IN,CLR,CHOSE_KEY) IS
    VARIABLE TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);
    BEGIN
 IF CLR='1' THEN  --当CLR='1'时清零,否则正常工作
         CLLK<='0';TEMP:="0000";
      ELSIF RISING_EDGE(CLK_IN) THEN
        IF CHOSE_KEY="00" THEN 
          IF TEMP="0001" THEN
           TEMP:="0000";
            CLLK<=NOT CLLK ;
          ELSE
            TEMP:=TEMP+'1';
          END IF;
-- 当CHOSE_KEY="00"时产生基准时钟频率的1/2的时钟信号
        ELSIF CHOSE_KEY="01" THEN 
          IF TEMP="0011" THEN
            TEMP:="0000";
            CLLK<=NOT CLLK ;
          ELSE
            TEMP:=TEMP+'1';
          END IF;
-- 当CHOSE_KEY="01"时产生基准时钟频率的1/4的时钟信号
        ELSIF CHOSE_KEY="10" THEN 
          IF TEMP="0111" THEN
            TEMP:="0000";
            CLLK<=NOT CLLK ;
          ELSE
            TEMP:=TEMP+'1';
          END IF;
        ELSIF CHOSE_KEY="11" THEN 
-- 当CHOSE_KEY="10"时产生基准时钟频率的1/8的时钟信号
            IF TEMP="1111" THEN
             TEMP:="0000";
             CLLK<=NOT CLLK ;
          ELSE
             TEMP:=TEMP+'1';
          END IF;
-- 当CHOSE_KEY="11"时产生基准时钟频率的1/16的时钟信号
        END IF;
     END IF;
   END PROCESS;
   CLK<=CLLK;
END ARCHITECTURE ART;

⌨️ 快捷键说明

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