МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА: FDRE триггер на VHDL

FDRE триггер на VHDL 6 года 1 мес. назад #1193

  • Wonk
  • Wonk аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 65
  • Спасибо получено: 2
Вроде бы верно написанный триггер в моей схеме порождает ряд критических замечаний:
Data bits are not synchronized when transferred between asynchronous clock domains.
Data bits are not correctly synchronized when transferred between asynchronous clock domains.
Clock port and any other signal port of same register should not be driven by the same signal source.

Все ругаются на выход Q.

library IEEE;
use IEEE.std_logic_1164.all;

entity FDRE is
port (
C,R,D,CE : in BIT;
Q : out BIT
);
end FDRE;
architecture FDRE_arch of FDRE is
begin
process (C,R,CE)
begin
if (C'event and C='1' and R='1') then Q <= '0';
end if;
if (C'event and C='1') and CE='1' then Q <= D;
end if;
end process;
end FDRE_arch;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 6 года 1 мес. назад #1194

Нормальный у вас триггер, вот такой




У вас в проекте где-то в другом месте проблемы.
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 6 года 1 мес. назад #1195

  • Wonk
  • Wonk аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 65
  • Спасибо получено: 2
Эх, был бы это мой проект... Это устройство работающее уже 10 лет, было создано в ксайлинксе, а теперь моя задача перенести его в квартус

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 6 года 1 мес. назад #1203

  • Wonk
  • Wonk аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 65
  • Спасибо получено: 2
Почему сброс в воздухе повис?
library IEEE;
use IEEE.std_logic_1164.all;

entity FDR is
port (
clock,data,sclr : in BIT;
q : out BIT
);
end FDR;
architecture FDR_arch of FDR is
begin
process (clock,sclr)
begin
if (clock'event and clock='1' and sclr='1') then q <= '0';
end if;
if clock'event and clock='1' then q <= data;
end if;
end process;
end FDR_arch;
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 6 года 1 мес. назад #1204

Поменяйте строчки местами

if clock'event and clock='1' then q <= data;
end if;
if (clock'event and clock='1' and sclr='1') then q <= '0';
end if;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 6 года 1 мес. назад #1205

Из описания следует неопределенность.
Я бы вообще так бы не описал, предлагаю:

architecture FDR_arch of FDR is
begin
process (clock)
begin
if (clock'event) and (clock='1') then
if (sclr='1') then q <= '0'; else q <= data; end if;
end if;
end process;
end FDR_arch;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 5 года 11 мес. назад #1341

а что значит C'event и зачем кавычки при присвоении clock='1'?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: FDRE триггер на VHDL 5 года 11 мес. назад #1342

  • Wonk
  • Wonk аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 65
  • Спасибо получено: 2
C'event означает что событие будет происходить при изменении сигнала C. Дальше не присвоение, а указание что после изменения С должно равняться единице, соответственно ждем фронт.
Спасибо сказали: qvrock

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.393 секунд

facebook  GitHub  YouTube  Twitter