реклама на сайте
подробности

 
 
> Устройство мигания светодиодов (VHDL)
lyzifer
сообщение Jul 13 2017, 11:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 13-07-17
Пользователь №: 98 133



Устройство моргания 4-мя светодиодами.По сути,программа очень простая.Но у меня в итоге светодиоды "бегают" (т.е. загорелся первый,потом сразу же следующий с частотой 1 Гц).А мне нужно чтобы диод загорелся,потух,а только потом,через 1 с, следующий. Заранее благодарен.
вот реализация и временная диаграмма:

Код
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity LED is
port( CLK : in std_logic;
L_D : out std_logic_vector(3 downto 0)); -- поправил у меня 4 светодиода подключены
end LED;

architecture A_LED of LED is
signal counter : std_logic_vector(20 downto 0):= (others => '0');
signal LED_temp : std_logic_vector(3 downto 0) := (0 => '1',others =>'0'); -- поправил на 4 светодиода
signal res : std_logic := '0';
begin
count : process(CLK,res)
begin
if(res = '1') then
counter <= (others => '0');
elsif(rising_edge(CLK)) then
counter <= counter +1;
end if;
end process;

L : process(counter)
begin
if(counter = 2000000) then
res <= '1';
LED_temp <= LED_temp(2 downto 0) & LED_temp(3);
-- вращаю выходной вектор по кругу налево, постоянно смещая на 1 разряд
else
res <= '0';
end if;
end process;

L_D <= led_temp; -- выдаю информацию из регистров в порт

end A_LED;


На выходе получаю



а надо:




Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tausinov
сообщение Jul 13 2017, 15:58
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795



Дизайн:
Код
library ieee;
  use ieee.std_logic_1164.all;
  use ieee.numeric_std.all;

entity test_led is
  generic (
    p_TD      : time    := 1 ns;
    p_CNT_LIM : integer := 32768 - 1
  );
  port (
    clk : in  std_logic;
    led : out std_logic_vector(3 downto 0)
  );
end test_led;

architecture rtl of test_led is
  signal div_cnt_u : unsigned(31 downto 0)        := (others => '0');

  signal phase     : std_logic                    := '1';
  signal led_reg   : std_logic_vector(3 downto 0) := (0 => '1', others => '0');
begin

  counter_control_p : process(clk)
  begin
    if (rising_edge(clk)) then
      if (div_cnt_u < p_CNT_LIM) then
        div_cnt_u <= div_cnt_u + 1 after p_TD;
      else
        div_cnt_u <= (others => '0');
      end if;
    else
      NULL;
    end if;
  end process;

  phase_control_p : process(clk)
  begin
    if (rising_edge(clk)) then
      if (div_cnt_u = p_CNT_LIM) then
        phase <= not(phase) after p_TD;
      else
        NULL;
      end if;
    else
      NULL;
    end if;
  end process; --phase_control_p

  led_reg_control_p : process(clk)
  begin
    if (rising_edge(clk)) then
      if (div_cnt_u = p_CNT_LIM) then
        if (phase = '1') then
          led_reg <= led_reg(2 downto 0) & led_reg(3) after p_TD;
        else
          NULL;
        end if;
      else
        NULL;
      end if;
    else
      NULL;
    end if;
  end process; --led_reg_control_p

  out_form_logic_p : process(phase)
  begin
    if (phase = '0') then
      led <= (others => '0');
    else
      led <= led_reg;
    end if;
  end process; --out_form_logic_p

end rtl;


Тестбенч:
Код
library ieee;
   use ieee.std_logic_1164.all;

entity test_led_tb is
   generic (
      p_TD    : time := 1 ns;
      p_CLK_T : time := 4 ns
   );
end test_led_tb;

architecture behav of test_led_tb is
   signal clk : std_logic                    := '0';
   signal led : std_logic_vector(3 downto 0);

   component test_led is
     generic (
       p_TD      : time    := 1 ns;
       p_CNT_LIM : integer := 32768 - 1
     );
     port (
       clk : in  std_logic;
       led : out std_logic_vector(3 downto 0)
     );
   end component;
begin
   clk_gen_p : process
   begin
      clk <= not(clk);
      wait for p_CLK_T / 2;
   end process;

   UUT : test_led
      generic map (
         p_TD => p_TD
      )
      port map (
         clk => clk,
         led => led
      );
end behav;


Go to the top of the page
 
+Quote Post
lyzifer
сообщение Jul 13 2017, 18:23
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 13-07-17
Пользователь №: 98 133



Цитата(Tausinov @ Jul 13 2017, 18:58) *


оу))не ожидал,что вы мне ещё напишите))большое спасибо за интерес к моей проблеме))жаль,что только завтра утром смогу проверить работоспособность проги. rolleyes.gif

Сообщение отредактировал lyzifer - Jul 13 2017, 18:23
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lyzifer   Устройство мигания светодиодов (VHDL)   Jul 13 2017, 11:52
- - iosifk   Цитата(lyzifer @ Jul 13 2017, 14:52) Устр...   Jul 13 2017, 11:58
|- - lyzifer   Цитата(iosifk @ Jul 13 2017, 14:58) Это з...   Jul 13 2017, 12:02
- - Tausinov   Ввести дополнительный сигнал signal phase : std_lo...   Jul 13 2017, 13:51
|- - lyzifer   Цитата(Tausinov @ Jul 13 2017, 16:51) Вве...   Jul 13 2017, 14:32
|- - Tausinov   Цитата(lyzifer @ Jul 13 2017, 17:32) Блин...   Jul 13 2017, 15:18
|- - lyzifer   Цитата(Tausinov @ Jul 13 2017, 18:18) Вс...   Jul 13 2017, 15:32
|- - Maverick   lyzifer, это не программа, а описание цифровой схе...   Jul 13 2017, 18:37
- - Stewart Little   Цитата(lyzifer @ Jul 13 2017, 14:52) А мн...   Jul 13 2017, 16:17
|- - Tausinov   Цитата(Stewart Little @ Jul 13 2017, 19:1...   Jul 13 2017, 16:26
|- - lyzifer   Цитата(Tausinov @ Jul 13 2017, 19:26) ЕЕ...   Jul 14 2017, 07:41
|- - AVR   Цитата(lyzifer @ Jul 14 2017, 10:41) ЕЕЕЕ...   Jul 14 2017, 08:08
|- - lyzifer   Цитата(AVR @ Jul 14 2017, 11:08) Будет ли...   Jul 14 2017, 08:57
- - AVR   Вопрос автору темы: обязательно ли VHDL? Видя это ...   Jul 14 2017, 06:24
- - Flip-fl0p   А есть ли особый смысл в этих строчках ? Код else ...   Jul 14 2017, 08:44
|- - Tausinov   Цитата(Flip-fl0p @ Jul 14 2017, 11:4...   Jul 14 2017, 09:16
|- - lyzifer   Цитата(Tausinov @ Jul 14 2017, 12:16) Обе...   Jul 14 2017, 09:59
||- - Tausinov   Цитата(lyzifer @ Jul 14 2017, 12:59) Я И ...   Jul 14 2017, 10:36
|||- - lyzifer   Цитата(Tausinov @ Jul 14 2017, 13:36) Ва...   Jul 17 2017, 12:08
|||- - Tausinov   Что-то странное вы пытаетесь сделать, если честно....   Jul 17 2017, 12:42
|||- - lyzifer   Цитата(Tausinov @ Jul 17 2017, 15:42) Что...   Jul 17 2017, 12:45
|||- - lyzifer   Цитата(Tausinov @ Jul 17 2017, 15:42) Все...   Jul 17 2017, 14:20
||- - iosifk   Цитата(lyzifer @ Jul 14 2017, 12:59) Я И ...   Jul 14 2017, 10:40
||- - Огурцов   Цитата(iosifk @ Jul 14 2017, 10:40) цель ...   Jul 15 2017, 04:20
||- - iosifk   Цитата(Огурцов @ Jul 15 2017, 07:20) цель...   Jul 15 2017, 14:11
|- - sonycman   Цитата(Tausinov @ Jul 14 2017, 13:16) На ...   Jul 14 2017, 10:45
|- - AVR   Цитата(sonycman @ Jul 14 2017, 13:45) Не ...   Jul 14 2017, 10:47
||- - Maverick   Цитата(AVR @ Jul 14 2017, 13:47) Я просто...   Jul 16 2017, 12:04
|- - yoggy   Цитата(sonycman @ Jul 14 2017, 13:45) ......   Jul 15 2017, 02:45
- - Tausinov   Как-то так, например. Тестбенч : Кодlibrary ieee; ...   Jul 17 2017, 14:59
|- - lyzifer   Цитата(Tausinov @ Jul 17 2017, 17:59) Бл...   Jul 18 2017, 13:52
|- - iosifk   Цитата(lyzifer @ Jul 18 2017, 16:52) Блин...   Jul 18 2017, 13:59
|- - lyzifer   Цитата(iosifk @ Jul 18 2017, 16:59) Два р...   Jul 18 2017, 14:04
- - Tausinov   Один из диодов в начале горит, т.к. регистр инициа...   Jul 18 2017, 15:53
|- - lyzifer   Цитата(Tausinov @ Jul 18 2017, 18:53) Оди...   Jul 18 2017, 18:50
- - AVR   Я не выдержал, моё решение (сам модуль примерно 25...   Jul 18 2017, 19:56
|- - lyzifer   Цитата(AVR @ Jul 18 2017, 22:56) Я не выд...   Jul 19 2017, 07:08
- - Tausinov   Так осталось просто тоже самое переписать на VHDL....   Jul 19 2017, 08:39
|- - lyzifer   Цитата(Tausinov @ Jul 19 2017, 11:39) Так...   Jul 19 2017, 08:45
- - Tausinov   Кодlibrary ieee; use ieee.std_logic_1164.all; ...   Jul 19 2017, 09:31


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016