Например TDA7294

 Форум РадиоКот • Просмотр темы - Схема выдающая последовательно номер
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср фев 21, 2018 00:48:39



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Схема выдающая последовательно номер
СообщениеДобавлено: Вт ноя 21, 2017 12:13:39 
Родился

Зарегистрирован: Вт ноя 21, 2017 11:57:09
Сообщений: 15
Рейтинг сообщения: 0
Добрый день, не могу выполнить задание, т.к. только начал изучать VHDL. Требуется построить схему, выдающую в последовательном виде число 10011 по запускающему одиночному импульсу длительностью 1 период тактовой частоты. Я написал код как смог, но компилятор пишет что у меня регистр N(4) не используется. Помогите разобраться, рисунок временных диаграмм прилагаю.
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity lab4 is
Port ( CLK : in STD_LOGIC;
CE, SRST : in STD_LOGIC;
Q: out STD_LOGIC_VECTOR(4 downto 0));
end lab4;

architecture rtl of lab4 is
signal N: STD_LOGIC_VECTOR(4 downto 0);
begin

process(CLK) begin
if rising_edge(CLK) then
if SRST = '1' then
N <= (others => '0');
elsif CE = '1' then
if N = "11001" then
N <= (others => '0');
else
N(0) <= '1';
N <= N(4 downto 1)& N(0);
end if;
end if;
end if;
Q <= N;
end process;
end rtl;


Вложения:
mdDafpLqNjE.jpg [127.55 KiB]
Скачиваний: 29
Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Схема выдающая последовательно номер
СообщениеДобавлено: Вт ноя 21, 2017 17:21:19 
Родился
Аватар пользователя

Зарегистрирован: Вт сен 06, 2016 11:36:15
Сообщений: 4
Рейтинг сообщения: 0
Код:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;


entity lab4 is
Port ( CLK : in STD_LOGIC;
          CE, SRST : in STD_LOGIC;
          Q: out STD_LOGIC);
end lab4;

architecture rtl of lab4 is
signal N: STD_LOGIC_VECTOR(4 downto 0);
signal i: integer range 0 to 5;
begin


process(CLK) begin
  if rising_edge(CLK) then
    if SRST = '1' then
        i<=5;
        N<="10011";
        Q<='0';
    else
      if CE = '1' then
        i<=0;
      end if;
      if i=5 then
        Q<='0';
      else
        i<=i+1;
        Q<=N(i);
      end if;
    end if;
  end if;
end process;
end rtl;

Изображение

Так?


Вернуться наверх
 Профиль  
 
JLCPCB Prototype, Бесплатная доставка первого заказа + $2 на прототип ПП!

Крупнейший производитель печатных плат в Китае, 290,000+ заказчиков, 8,000+ он-лайн заказов в день.

Цена за 10 плат: $2 за 2-х слойную, $15 за 4-х слойную, $74 за 6-ти слойную.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: Схема выдающая последовательно номер
СообщениеДобавлено: Ср ноя 22, 2017 00:59:30 
Родился

Зарегистрирован: Вт ноя 21, 2017 11:57:09
Сообщений: 15
Рейтинг сообщения: 0
Благодарю за ответ, это то что нужно

Добавлено after 21 minute 16 seconds:
Уважаемый kolpakchi, могли бы вы скинуть test bench к данному модулю ???


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Схема выдающая последовательно номер
СообщениеДобавлено: Ср ноя 22, 2017 16:56:25 
Родился
Аватар пользователя

Зарегистрирован: Вт сен 06, 2016 11:36:15
Сообщений: 4
Рейтинг сообщения: 0
Все что до Stimulus process сгенерил ise.
Код:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
 
 
ENTITY lab_test IS
END lab_test;
 
ARCHITECTURE behavior OF lab_test IS
 
    COMPONENT lab4
    PORT(
         CLK : IN  std_logic;
         CE : IN  std_logic;
         SRST : IN  std_logic;
         Q : OUT  std_logic
        );
    END COMPONENT;
   

   --Inputs
   signal CLK : std_logic := '0';
   signal CE : std_logic := '0';
   signal SRST : std_logic := '1';

    --Outputs
   signal Q : std_logic;

   -- Clock period definitions
   constant CLK_period : time := 10 ns;
 
BEGIN
 
   -- Instantiate the Unit Under Test (UUT)
   uut: lab4 PORT MAP (
          CLK => CLK,
          CE => CE,
          SRST => SRST,
          Q => Q
        );

   -- Clock process definitions
   CLK_process :process
   begin
      CLK <= '0';
      wait for CLK_period/2;
      CLK <= '1';
      wait for CLK_period/2;
   end process;
 

   -- Stimulus process
   stim_proc: process
   begin      
      -- hold reset state for 100 ns.
      wait for 100 ns;   
      srst<='0';
      wait for CLK_period*10;
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      ce<='1';
      wait until rising_edge(clk);
      ce<='0';
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      wait until rising_edge(clk);
      ce<='1';
      wait until rising_edge(clk);
      ce<='0';
      wait until rising_edge(clk);
      -- insert stimulus here

      wait;
   end process;

END;


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Схема выдающая последовательно номер
СообщениеДобавлено: Ср ноя 22, 2017 22:15:04 
Родился

Зарегистрирован: Вт ноя 21, 2017 11:57:09
Сообщений: 15
Рейтинг сообщения: 0
Спасибо за помощь! :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y