"Построить в 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
Сообщение отредактировано: Demento -