D : in STD_LOGIC_VECTOR(3 downto 0); --шина информационных данных
Q : out STD_LOGIC_VECTOR(3 downto 0); --шина выходных данных
CO : out STD_LOGIC; --выход переноса
RCO : out STD_LOGIC --выход наращиваниЯ счета
);
end \IE13_FUNC\;
architecture \IE13_FUNC\ of \IE13_FUNC\ is --Архитектура счетчика
signal TEMP_QV : std_logic_vector(3 downto 0); --ВременнаЯ переменнаЯ длЯ хранениЯ
--выходных данных
begin
process(CLK, LOAD, CTEN, D_U, D, TEMP_QV)
begin
if (LOAD='0') then TEMP_QV <= D after 17ns; --Режим загрузки. (Задержка после
--переключениЯ сигнала LOAD равна 17ns)
elsif (CLK='1' and CLK'EVENT) then --По переднему фронту тактирующего сигнала
if(CTEN='0' and D_U='0') then --Режим прЯмого счета при D_U='0' TEMP_QV<=TEMP_QV+"0001" after 11ns; --с задержкой 11ns
elsif (CTEN='0' and D_U='1') then --Режим обратного счета при D_U='1'
TEMP_QV<=TEMP_QV-"0001" after 11ns; --с задержкой 11ns
end if;
end if;
if ((D_U='0' and TEMP_QV = "1111") OR (D_U='1' and TEMP_QV = "0000") ) then --УсловиЯ переключениЯ сигнала переноса
CO <= '1' after 25ns; --задержка при переключении равна 25ns
else CO <= '0' after 25ns;
end if;
if (CTEN='0' and CO='1' and CLK ='0' ) then --УсловиЯ переключениЯ сигнала на выходе
--наращиваниЯ счета
RCO <= '0' after 9ns; --задержка при переключении равна 9ns
else RCO <= '1' after 9ns;
end if;
end process;
Q<=TEMP_QV; --Выходному сигналу присваиваетсЯ значение временной переменной
check1: process -- Контроль временных соотношений
begin
wait until (LOAD'event and LOAD='1'); -- Ограничение на времЯ предустановки данных:
assert D'stable(20ns) -- В течение 20 ns не должно происходить
-- переключений на входах D
Report "WARNING 1 (Setup Time D[3..0] from LOAD < 20ns)" -- предупреждение при
Severity warning; --несоблюдении условиЯ
end process check1;
check2: process
begin
wait until (D'event and LOAD='1'); -- Ограничение на времЯ удержаниЯ данных:
assert LOAD'stable(20ns) -- В течение 20 ns не должно происходить
-- переключений на входе LOAD
Report "WARNING 2 (Hold Time D[3..0] from LOAD < 20ns)" -- предупреждение при
Severity warning; --несоблюдении условиЯ
end process check2;
end \IE13_FUNC\;
Как можно заметить, величины задержек, используемые в VHDL-модели, соответствуют значениям, измеренным в пункте 9.3.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.