Название предмета Основы ПЛИС.Нужно модифицировать код чтобы яркость пятнадцатого светодиода увеличивалась от минимума до максимума и потом загорался четырнадцатый светодиод, яркость которого также увеличивалась бы от минимума до максимума и остальные светодиоды постепенно загорались бы аналогичным образом.
Вот этот вот код модифицировать:LEDs library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity lb2 is
Port (CLK, BTNU, BTNR: in std_logic;
LED: out std_logic_vector(15 downto 0));
end lb2;
architecture Behavioral of lb2 is
component BTNpressedVHDL is
Port (CLK,BTN: in STD_LOGIC;
BTNpressed: out STD_LOGIC);
end component;
signal timer: STD_LOGIC_VECTOR(26 downto 0) := (OTHERS => '0');
signal pressedR, pressedU: STD_LOGIC;
signal pattern: STD_LOGIC_VECTOR(15 downto 0) := (OTHERS => '0');
signal position: natural range 0 to 15 := 15;
signal pause: std_logic := '1';
signal posR, patU: STD_LOGIC := '0';
begin
pressU: BTNpressedVHDL
port map (CLK=>CLK, BTN=>BTNU, BTNpressed=>pressedU);
pressR: BTNpressedVHDL
port map (CLK=>CLK, BTN=>BTNR, BTNpressed=>pressedR);
process(CLK)begin
if rising_edge(CLK) then
if pressedR and not posR then
posR <= '1';
position <= 15;
pause <= '1';
timer '0');
pattern '0');
end if;
if not pressedR and posR then posR <= '0';
end if;
if pressedU and not patU then
patU <= '1';
pause <= not pause;
end if;
if(pause)then timer <= timer + '1';
end if;
if not pressedU and patU then patU <= '0';
end if;
if (timer(6)and timer(2)and timer(0))then
pattern(position)<= '1';
position <= position - 1;
timer '0');
end if;
end if;
end process;
process (position,pattern) begin
for I in 0 to 15 loop
led(I)<= pattern(I);
end loop;
end process;
end Behavioral;
| Гарантия на работу | 1 год |
| Средний балл | 4.55 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |