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

📄 slect.vhd

📁 pwm控制模块 使用过很多次
💻 VHD
字号:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;

entity rslect is
port ( clk10k:in std_logic;
       key1:in std_logic;
       key2:in std_logic;
       key3:in std_logic;
       rpwm0_ctr:out integer range 16 to 64;
       rpwm1_ctr:out integer range 16 to 64;
       rpwm2_ctr:out integer range 16 to 64;
       rpwm3_ctr:out integer range 16 to 64;
       rpwm4_ctr:out integer range 16 to 64;
       rpwm5_ctr:out integer range 16 to 64;
       rpwm6_ctr:out integer range 16 to 64;
       rpwm7_ctr:out integer range 16 to 64;
       rpwm8_ctr:out integer range 16 to 64;
       rpwm9_ctr:out integer range 16 to 64;
       rpwm10_ctr:out integer range 16 to 64;
       rpwm11_ctr:out integer range 16 to 64;
       rpwm12_ctr:out integer range 16 to 64;
       rpwm13_ctr:out integer range 16 to 64;
       rpwm14_ctr:out integer range 16 to 64;
       rpwm15_ctr:out integer range 16 to 64;

       gpwm0_ctr:out integer range 16 to 64;
       gpwm1_ctr:out integer range 16 to 64;
       gpwm2_ctr:out integer range 16 to 64;
       gpwm3_ctr:out integer range 16 to 64;
       gpwm4_ctr:out integer range 16 to 64;
       gpwm5_ctr:out integer range 16 to 64;
       gpwm6_ctr:out integer range 16 to 64;
       gpwm7_ctr:out integer range 16 to 64;
       gpwm8_ctr:out integer range 16 to 64;
       gpwm9_ctr:out integer range 16 to 64;
       gpwm10_ctr:out integer range 16 to 64;
       gpwm11_ctr:out integer range 16 to 64;
       gpwm12_ctr:out integer range 16 to 64;
       gpwm13_ctr:out integer range 16 to 64;
       gpwm14_ctr:out integer range 16 to 64;
       gpwm15_ctr:out integer range 16 to 64;

       bpwm0_ctr:out integer range 16 to 64;
       bpwm1_ctr:out integer range 16 to 64;
       bpwm2_ctr:out integer range 16 to 64;
       bpwm3_ctr:out integer range 16 to 64;
       bpwm4_ctr:out integer range 16 to 64;
       bpwm5_ctr:out integer range 16 to 64;
       bpwm6_ctr:out integer range 16 to 64;
       bpwm7_ctr:out integer range 16 to 64;
       bpwm8_ctr:out integer range 16 to 64;
       bpwm9_ctr:out integer range 16 to 64;
       bpwm10_ctr:out integer range 16 to 64;
       bpwm11_ctr:out integer range 16 to 64;
       bpwm12_ctr:out integer range 16 to 64;
       bpwm13_ctr:out integer range 16 to 64;
       bpwm14_ctr:out integer range 16 to 64;
       bpwm15_ctr:out integer range 16 to 64
      );
end rslect;

architecture rsle of rslect is
signal colour:integer range 0 to 2;
signal branch:integer range 0 to 15;
signal ctr:integer range 16 to 64;
begin
process(key1)
begin
if key1'event and key1='1' then
   if colour=2 then
      colour<=0;
   else colour<=colour+1;
   end if;
end if;
end process;

process(key2)
begin
if key2'event and key2='1' then
   if branch=15 then
      branch<=0;
   else branch<=branch+1;
   end if;
end if;
end process;


process(key3)
begin
if key3'event and key3='1' then
   if ctr=64 then
      ctr<=16;
   else ctr<=ctr+1;
   end if;
end if;
end process;
process(clk10k)
begin
if clk10k'event and clk10k='1' then
   case colour is
   when 0 =>case branch is
            when 0 =>rpwm0_ctr<=ctr;
            when 1 =>rpwm1_ctr<=ctr;
            when 2 =>rpwm2_ctr<=ctr;
            when 3 =>rpwm3_ctr<=ctr;
            when 4 =>rpwm4_ctr<=ctr;
            when 5 =>rpwm5_ctr<=ctr;
            when 6 =>rpwm6_ctr<=ctr;
            when 7 =>rpwm7_ctr<=ctr;
            when 8 =>rpwm8_ctr<=ctr;
            when 9 =>rpwm9_ctr<=ctr;
            when 10 =>rpwm10_ctr<=ctr;
            when 11 =>rpwm11_ctr<=ctr;
            when 12 =>rpwm12_ctr<=ctr;
            when 13 =>rpwm13_ctr<=ctr;
            when 14 =>rpwm14_ctr<=ctr;
            when 15 =>rpwm15_ctr<=ctr;
            end case;
   when 1 =>case branch is
            when 0 =>gpwm0_ctr<=ctr;
            when 1 =>gpwm1_ctr<=ctr;
            when 2 =>gpwm2_ctr<=ctr;
            when 3 =>gpwm3_ctr<=ctr;
            when 4 =>gpwm4_ctr<=ctr;
            when 5 =>gpwm5_ctr<=ctr;
            when 6 =>gpwm6_ctr<=ctr;
            when 7 =>gpwm7_ctr<=ctr;
            when 8 =>gpwm8_ctr<=ctr;
            when 9 =>gpwm9_ctr<=ctr;
            when 10 =>gpwm10_ctr<=ctr;
            when 11 =>gpwm11_ctr<=ctr;
            when 12 =>gpwm12_ctr<=ctr;
            when 13 =>gpwm13_ctr<=ctr;
            when 14 =>gpwm14_ctr<=ctr;
            when 15 =>gpwm15_ctr<=ctr;
            end case;
   when 2 =>case branch is
            when 0 =>bpwm0_ctr<=ctr;
            when 1 =>bpwm1_ctr<=ctr;
            when 2 =>bpwm2_ctr<=ctr;
            when 3 =>bpwm3_ctr<=ctr;
            when 4 =>bpwm4_ctr<=ctr;
            when 5 =>bpwm5_ctr<=ctr;
            when 6 =>bpwm6_ctr<=ctr;
            when 7 =>bpwm7_ctr<=ctr;
            when 8 =>bpwm8_ctr<=ctr;
            when 9 =>bpwm9_ctr<=ctr;
            when 10 =>bpwm10_ctr<=ctr;
            when 11 =>bpwm11_ctr<=ctr;
            when 12 =>bpwm12_ctr<=ctr;
            when 13 =>bpwm13_ctr<=ctr;
            when 14 =>bpwm14_ctr<=ctr;
            when 15 =>bpwm15_ctr<=ctr;
            end case;
    end case;
end if;
end process;

end rsle;

⌨️ 快捷键说明

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