Разработка цифрового узла, создание его структурных и поведенческих моделей в пакетах DesignLab 8, OrCAD 9.1, ActiveHDL 6.2, страница 9

Рис.36. Задержка распространения сигнала от информационного входа к выходу  при переключении выхода из низкого уровня сигнала в высокий.

Рис. 37. Задержка распространения сигнала от информационного входа к выходу  при переключении выхода из высокого уровня сигнала в низкий.

Рис. 38. Задержка распространения сигнала от адресного входа к выходу  при переключении выхода из низкого уровня сигнала в высокий.

Рис. 39. Задержка распространения сигнала от адресного входа к выходу  при переключении выхода из высокого уровня сигнала в низкий.

Рис. 40 Задержка переключения выхода из высокоомного состояния в высокий уровень сигнала (или задержка от входа разрешения к выходу).

Рис. 41. Задержка переключения выхода из высокоомного состояния в низкий уровень сигнала (или задержка от входа разрешения к выходу).

Рис. 42. Задержка переключения выхода из высокого уровня сигнала  в состояние высокого импеданса (или задержка от входа разрешения к выходу).

Рис. 43. Задержка переключения выхода из низкого уровня сигнала  в состояние высокого импеданса (или задержка от входа разрешения к выходу).

            Временные диаграммы показывают идентичные временные задержки для элемента со схемой замещения и для элемента с VHDL-моделью. Отмечу, что для одновременного измерения задержек один дельта-маркер использовался на сигналах элемента со схемой замещения, а другой – на сигналах узла с VHDL-моделью.

8.4. Поведенческая VHDL-модель компонента К555КП17.

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE work.orcad_prims.all;

ENTITY K555KP17_V IS --описание интерфейса модели

generic ( TPLHD : time := 11 ns ;   --блок настраиваемых параметров

        TPHLD : time := 13 ns ;--(различных задержек для проектируемого узла)

TPLHS : time := 20 ns ;   

        TPHLS : time := 21 ns ;

        TPZH : time := 11 ns ;

        TPZL : time := 15 ns ;

        TPHZ : time := 27 ns ;

        TPLZ : time := 12 ns );

port(--перечисление входных и выходных портов узла

      E00 : IN std_logic;--девятизначная логика сигнала

\00\ : IN std_logic;

      \01\ : IN std_logic;

      \02\ : IN std_logic;

      \03\ : IN std_logic;

      A1 : IN std_logic;

      A2 : IN std_logic;

      \10\ : IN std_logic;

      \11\ : IN std_logic;

      \12\ : IN std_logic;

      \13\ : IN std_logic;

      E01 : IN std_logic;

      \0\ : OUT std_logic;

      \1\ : OUT std_logic);

END K555KP17_V;--конец описанияинтерфейса

ARCHITECTURE model OF K555KP17_V IS--началоописания архитектуры элемента

signal out_0: std_logic;--вспомогательныесигналы (играют рольсигналов на выходе)

signal out_1: std_logic;   

BEGIN                

process(E00,E01,\00\,\01\,\02\,\03\,\10\,\11\,\12\,\13\,A1,A2)--началооператора процесса

variable multipl_0: std_logic;     --вспомогательные переменные

variable multipl_1: std_logic;

      begin 

      multipl_0 := not((not(A2)and not(A1) and \00\)or(not(A2)and A1 and \01\)or(A2 and not(A1) and \02\)or(A2 and A1 and \03\));--операция мультиплексирования

if out_0'DELAYED = '0' then  --если предыдущее значение сигнала на выходе было "0"

            if (E00='1') then     out_0<= 'Z' after TPLZ;   --описание перехода в Z-состояние из низкого уровня сигнала 

            elsif (A1'event or A2'event) then  out_0 <=(multipl_0) after TPLHS;     -- описание переключения выхода из низкого уровня в высокий при изменении сигнала на селекторном входе

elsif (\00\'event or \01\'event or \02\'event or \03\'event) then out_0 <=(multipl_0) after TPLHD;--описание переключенияпо информационному входу

end if;    

      else --иначе, если значение сигнала на выходе было не ноль

            if (E00='1') then     out_0<= 'Z' after TPHZ;      --описание перехода в Z-состояние из высокого уровня сигнала

            elsif (E00'event AND E00='0') then   --описание выхода из Z-состояния...

if (multipl_0 = '0') then out_0<= '0' after TPZL;--в ноль

                  elsif (multipl_0 = '1') then out_0<= '1' after TPZH;--в единичку

                  end if;

            elsif (A1'event or A2'event) then out_0 <=multipl_0 after TPHLS;-- описание переключенияпри изменении сигнала наадресном входе

            elsif (\00\'event or \01\'event or \02\'event or \03\'event) then out_0 <=multipl_0 after TPHLD;--описание переключения поинформационному входу из высокогоуровня сигнала в низкий

            end if;

      end if;

------------------------------------------------------------------------------

      multipl_1 := not((not(A2)and not(A1) and \10\)or(not(A2)and A1 and \11\)or(A2 and not(A1) and \12\)or(A2 and A1 and \13\));--тоже самое, чтои выше, толькодля второго "подмультиплексора"

      if out_1'DELAYED = '0' then 

            if (E01='1') then     out_1<= 'Z' after TPLZ;    

            elsif (A1'event or A2'event) then  out_1 <=(multipl_1) after TPLHS;               

            elsif (\10\'event or \11\'event or \12\'event or \13\'event) then out_1 <=(multipl_1) after TPLHD;

            end if;    

      else

            if (E01='1') then     out_1<= 'Z' after TPHZ;     

            elsif (E01'event AND E01='0') then

                  if (multipl_1 = '0') then out_1<= '0' after TPZL;

                  elsif (multipl_1 = '1') then out_1<= '1' after TPZH;

                  end if;

            elsif (A1'event or A2'event) then out_1 <=multipl_1 after TPHLS;     

            elsif (\10\'event or \11\'event or \12\'event or \13\'event) then out_1 <=multipl_1 after TPHLD;

            end if;

      end if;

end process; --конец операторапроцесса

\0\ <= out_0; --присвоить значения выходным сигналам

\1\ <= out_1; 

END model; --конец описания архитектуры

Рис. 44. VHDL-модель узла К555КП17.