Например TDA7294

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





Текущее время: Вт апр 16, 2024 19:31:37

Часовой пояс: UTC + 3 часа


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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Сигнал выхода не определен (Undefined)
СообщениеДобавлено: Пт янв 10, 2020 18:17:08 
Родился

Зарегистрирован: Пт янв 10, 2020 18:03:59
Сообщений: 1
Рейтинг сообщения: 0
Привет всем!
У меня есть задание, реализовать на VHDL универсальный 4-х битный регистр. Нашел в интернете схемку через мультиплексоры и D-тригеры.
Сделал на VHDL, всё по отдельности работает (mux, d-тригер). Но когда я кобинирую их, они не работают вместе, а точнее. не проходит сигнал на выход, может я не так использую INOUT, но если выходы сделать OUT, то выдает ошибку что я использую выходной сигнал для входного, по этому решил взять INOUT. Приклепляю код Мультиплексора и Д-тригера, а так же сгенерированый код Active-HDL через Block Diagram, а так же скриншоты симуляции и самой схемы. Буду благодарен за ответы, Спасибо!

mux.vhd
Код:
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity mux is
    port(
       D3 : in STD_LOGIC;
       D2 : in STD_LOGIC;
       D1 : in STD_LOGIC;
       D0 : in STD_LOGIC;
       CS1 : in STD_LOGIC;
       CS2 : in STD_LOGIC;
       A : out STD_LOGIC;   
       Clk : in STD_LOGIC
        );
end mux;                                 

architecture mux of mux is
begin      
      A <= 'Z';               
   process (Clk)
   begin         
      if (Clk'event and Clk = '1') then
      if (CS1 = '0' and CS2 = '0') then      --keep
         A <= D0;
      elsif (CS1 = '0' and CS2 = '1') then   --right shift
         A <= D1;
      elsif (CS1 = '1' and CS2 = '0') then   --left shift
         A <= D2;
      elsif (CS1 = '1' and CS2 = '1') then   --write
         A <= D3;     
      end if;    
      end if;
   end process;      
                        
                                  
end mux;


d_trig.vhd
Код:
Library IEEE;
USE IEEE.Std_logic_1164.all;

entity RisingEdge_DFlipFlop is
   port(
      Q : out std_logic;   
      Clk :in std_logic;   
      D :in  std_logic   
   );
end RisingEdge_DFlipFlop;
architecture Behavioral of RisingEdge_DFlipFlop is 
begin 
 process(Clk, D)
 begin         
  Q <= 'Z';
    if(rising_edge(Clk)) then
   Q <= D;
    end if;       
 end process; 
end Behavioral;


register.vhd
Код:
library IEEE;
use IEEE.std_logic_1164.all;


entity \register\ is
  port(
       B0 : in STD_LOGIC;
       B1 : in STD_LOGIC;
       B2 : in STD_LOGIC;
       B3 : in STD_LOGIC;
       C : in STD_LOGIC;
       CS1 : in STD_LOGIC;
       CS2 : in STD_LOGIC;
       DSL : in STD_LOGIC;
       DSR : in STD_LOGIC;
       Q0 : inout STD_LOGIC;
       Q1 : inout STD_LOGIC;
       Q2 : inout STD_LOGIC;
       Q3 : inout STD_LOGIC
  );
end \register\;

architecture \register\ of \register\ is

---- Component declarations -----

component mux
  port (
       CS1 : in STD_LOGIC;
       CS2 : in STD_LOGIC;
       Clk : in STD_LOGIC;
       D0 : in STD_LOGIC;
       D1 : in STD_LOGIC;
       D2 : in STD_LOGIC;
       D3 : in STD_LOGIC;
       A : out STD_LOGIC
  );
end component;
component RisingEdge_DFlipFlop
  port (
       Clk : in STD_LOGIC;
       D : in STD_LOGIC;
       Q : out STD_LOGIC
  );
end component;

---- Signal declarations used on the diagram ----

signal NET215 : STD_LOGIC;
signal NET226 : STD_LOGIC;
signal NET237 : STD_LOGIC;
signal NET248 : STD_LOGIC;

begin

----  Component instantiations  ----

U10 : mux
  port map(
       A => NET226,
       CS1 => CS1,
       CS2 => CS2,
       Clk => C,
       D0 => Q1,
       D1 => Q0,
       D2 => Q2,
       D3 => B1
  );

U11 : mux
  port map(
       A => NET237,
       CS1 => CS1,
       CS2 => CS2,
       Clk => C,
       D0 => Q2,
       D1 => Q1,
       D2 => Q3,
       D3 => B2
  );

U12 : mux
  port map(
       A => NET248,
       CS1 => CS1,
       CS2 => CS2,
       Clk => C,
       D0 => Q3,
       D1 => Q2,
       D2 => DSL,
       D3 => B3
  );

U5 : RisingEdge_DFlipFlop
  port map(
       Clk => C,
       D => NET215,
       Q => Q0
  );

U6 : RisingEdge_DFlipFlop
  port map(
       Clk => C,
       D => NET226,
       Q => Q1
  );

U7 : RisingEdge_DFlipFlop
  port map(
       Clk => C,
       D => NET237,
       Q => Q2
  );

U8 : RisingEdge_DFlipFlop
  port map(
       Clk => C,
       D => NET248,
       Q => Q3
  );

U9 : mux
  port map(
       A => NET215,
       CS1 => CS1,
       CS2 => CS2,
       Clk => C,
       D0 => Q0,
       D1 => DSR,
       D2 => Q1,
       D3 => B0
  );


end \register\;


Вложения:
Комментарий к файлу: Схема
photo_2020-01-10_17-17-07.jpg [81.59 KiB]
Скачиваний: 415
Комментарий к файлу: Симуляция
photo_2020-01-10_17-14-21.jpg [138.79 KiB]
Скачиваний: 388
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Сигнал выхода не определен (Undefined)
СообщениеДобавлено: Ср мар 04, 2020 18:38:18 
Сверлит текстолит когтями
Аватар пользователя

Карма: 11
Рейтинг сообщений: 13
Зарегистрирован: Пт июл 21, 2006 15:05:19
Сообщений: 1266
Откуда: плод воображения
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Конкретное исходное задание озвучить можно? Делать принципиально схемотехникой/HDL? Могу на верилоге помочь.

_________________
R2AIV 73!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Сигнал выхода не определен (Undefined)
СообщениеДобавлено: Вс мар 29, 2020 17:49:10 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 18798
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
реализовать на VHDL универсальный 4-х битный регистр

Неужели в Квартусе в templates такого нет?)

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Сигнал выхода не определен (Undefined)
СообщениеДобавлено: Ср апр 08, 2020 13:03:30 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7214
Откуда: 845-й км.
Рейтинг сообщения: 3
Медали: 1
Получил миской по аватаре (1)
Уже за поздно... четверть года прошла, но в первом файле (mux.vhd) было почти всё что нужно. остальное ненужно совершенно.

Достаточно было объявить сдвигаемые регистры как signal std_logic_vector registr(3 downto 0)
и в теле process(clk) в каждом if-е, где селектируются CS, сделать необходимое, например, сдвиг вправо:
registr(3 downto 0) <= DSR & registr(3 downto 1);
влево:
registr(3 downto 0) < registr(2 downto 0) & DSL;
а загрузка.. если входные пины объявить в entity как вектор, то вообще просто registr <= D, ну а в этом случае:
registr(3 downto 0) <= D3 & D2 & D1 & D0.

disclaimer: некоторые синтаксические конструкции в тексте опущены...

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

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

Часовой пояс: UTC + 3 часа


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

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


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

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


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