Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Т-триггер AHDL 8.1

Автор: Demento 2.12.2016 7:14

Цитирую дословно задание:
"Построить в AHDL с элементов ИЛИ-НЕ Т-тригер, что имеет прямой динамический вход синхронизации С та асинхронные входы R и S. Убедится в правильной работе тригера, сделав моделирование, и измерить время инвертирования состояния триггера (то есть задержки между сменой сигнала на входе С и установкой соответствующего значений сигналов на выходах Q и на инвертированном Q). Сделать общий вывод про задержку в тригере, если задержка у логическом элементе ИЛИ-не равна t("тау")."

У меня есть код синхронного JK-триггера.

Код

library IEEE;
use IEEE.std_logic_1164.all;

entity jk1 is
generic(
delay:time:=20ns
)
port (
j: in STD_LOGIC;
k: in STD_LOGIC;
c: in STD_LOGIC;
r: in STD_LOGIC;
c1: out STD_LOGIC;
c2: out STD_LOGIC
);
end jk1;

architecture jk1 of jk1 is
begin
process(c,r)
variable q:integer:=0;
begin
if (c'event and c='1' and r='0') then
if ((j='1') and (k='0')) then q:=1;
elsif ((j='0') and (k='1')) then q:=0;
elsif ((j='1') and (k='1')) then q:=1-q;
end if;
end if;
if (r'event and r='1') then q:=0;
end if;
if (q=1) then c1<='1' after delay;c2<='0' after delay;
else c2<='1' after delay;c1<='0' after delay;
end if;
end process;
end jk1;


И вот он сам вопрос, вернее вопросы:

Вот таким вот образом строятся триггеры на элементах, в плане момента с and, nand и т.д.?

Код

if (c'event and c='1' and r='0') then
if ((j='1') and (k='0')) then q:=1;
elsif ((j='0') and (k='1')) then q:=0;
elsif ((j='1') and (k='1')) then q:=1-q;


Что-бы построить асинхронные входы R и S нужно написать код с not-?
Код
elsif not((j='0') and (k='1')) then q:=0;


Ну и так на всякий пожарный: "тау" не значит ни какого конкретного значения(мало ли)?

Please help mega_chok.gif

Автор: OCTAGRAM 2.12.2016 8:27

Навскидку здесь более широкое множество AHDL, чем то, с чем доводилось работать, но я подозреваю, что за синхронизацию отвечает атрибут 'Event, так что если убрать его из логических проверок, будет асинхронность. И знаков присваивания не припоминаю. Кажется, просто равенствами соединяли блоки, а вот присваивание может быть компилятором как-то перенесено на следующий такт.

Автор: Гость 3.12.2016 2:40

Цитата(OCTAGRAM @ 2.12.2016 8:27) *

Навскидку здесь более широкое множество AHDL, чем то, с чем доводилось работать, но я подозреваю, что за синхронизацию отвечает атрибут 'Event, так что если убрать его из логических проверок, будет асинхронность. И знаков присваивания не припоминаю. Кажется, просто равенствами соединяли блоки, а вот присваивание может быть компилятором как-то перенесено на следующий такт.


Спасибо, за ответ good.gif

Автор: nishaknapp 29.07.2022 18:04

Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. https://www.reloadgamestudio.com/online-casino-red-flags-that-you-need-to-look-out-for/