Например TDA7294

Форум РадиоКот :: Просмотр темы - Схема выдающая последовательно номер
Форум РадиоКот
https://radiokot.ru/forum/

Схема выдающая последовательно номер
https://radiokot.ru/forum/viewtopic.php?f=60&t=150134
Страница 1 из 1

Автор:  Dimson12 [ Вт ноя 21, 2017 11:13:39 ]
Заголовок сообщения:  Схема выдающая последовательно номер

Добрый день, не могу выполнить задание, т.к. только начал изучать 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]
Скачиваний: 446

Автор:  kolpakchi [ Вт ноя 21, 2017 16:21:19 ]
Заголовок сообщения:  Re: Схема выдающая последовательно номер

Код:
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;

Изображение

Так?

Автор:  Dimson12 [ Вт ноя 21, 2017 23:59:30 ]
Заголовок сообщения:  Re: Схема выдающая последовательно номер

Благодарю за ответ, это то что нужно

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

Автор:  kolpakchi [ Ср ноя 22, 2017 15:56:25 ]
Заголовок сообщения:  Re: Схема выдающая последовательно номер

Все что до 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;

Автор:  Dimson12 [ Ср ноя 22, 2017 21:15:04 ]
Заголовок сообщения:  Re: Схема выдающая последовательно номер

Спасибо за помощь! :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/