Структурные и поведенческие модели цифрового узла в пакетах DesignLab 8, OrCAD 9.1, Active HDL 6.1, страница 8

Данный эксперимент отражает все режимы работы узла (табл. 2). Режим Z-состояния наступает при высоком уровне сигнала на входе #EZ.

На приведённых ниже временных диаграммах показаны все случаи задержек распространения сигналов, измеренные с помощью режима Measurement Mode.

Рис. 49. Задержки  tPLH от D для Q,  tPHL  от D для #Q, tPHL от D для Q, tPLH от D для #Q.

Рис. 50. Задержки tPLHот Sдля QtPHL от S для #QtPHL  от S для Q, tPLH  для #Q,

tPLZ для Q, tPHZдля #Q.

     Рис. 51. Задержки tPHZ  для Q,  tPLZ  для #Q.         Рис. 52. Задержки tPZH  для Q,  tPZL  для #Q.

9.4. Поведенческая модель узла на языке VHDL.

LIBRARY ieee;                                                           --подключение необходимых библиотек

USE ieee.std_logic_1164.all;

USE work.orcad_prims.all;

ENTITY \KR1533KP15M\ IS PORT(                           --описание входов и выходов узла

D0 : IN  std_logic;

D1 : IN  std_logic;

D2 : IN  std_logic;

D3 : IN  std_logic;

D4 : IN  std_logic;

D5 : IN  std_logic;

D6 : IN  std_logic;

D7 : IN  std_logic;

S0 : IN  std_logic;

S1 : IN  std_logic;

S2 : IN  std_logic;

NEZ : IN  std_logic;

Q : OUT  std_logic;

NQ : OUT  std_logic);

END \KR1533KP15M\;

ARCHITECTURE model OF \KR1533KP15M\ IS

signal S : std_logic_vector(2 downto 0);                                   --вектор, используемый для объединения

                                                                             --управляющих сигналов

SIGNAL Q1: std_logic;                                                --переменные для хранения выходных                                       

SIGNAL NQ1: std_logic;                                             --значений

BEGIN       

S <= S2&S1&S0;                                                         --инициализация вектора S        

PROCESS(NEZ,D0,D1,D2,D3,D4,D5,D6,D7,S)

    variable PREQ: std_logic;           

    BEGIN 

            IF    (S="000") THEN PREQ := D0;                  --выбор данных, соответствующих

            ELSIF (S="001") THEN PREQ := D1;              --входным управляющим сигналам

            ELSIF (S="010") THEN PREQ := D2;

            ELSIF (S="011") THEN PREQ := D3;

            ELSIF (S="100") THEN PREQ := D4;

            ELSIF (S="101") THEN PREQ := D5;

            ELSIF (S="110") THEN PREQ := D6;

            ELSIF (S="111") THEN PREQ := D7;

            end if; 

    IF (Q1'DELAYED = '1' OR Q1'DELAYED = '0')    THEN     --передача сигналов на выход     

        IF (NEZ='1' AND Q1'DELAYED ='0') then                      --обработка перехода в Z-состояние

            Q1<= 'Z' after 22NS;                                                    --для различных переключения

            NQ1<= 'Z' after 34NS;                                                 --с соответствующими задержками

        ELSIF (NEZ='1' AND Q1'DELAYED ='1') then    

            Q1<= 'Z' after 31NS;  

            NQ1<= 'Z' after 22NS;  

        ELSIF (S'EVENT AND Q1'DELAYED='0') THEN           --обработка переключения

            Q1 <=PREQ AFTER 18NS;                                         --управляющих входов

            NQ1 <=NOT(PREQ) AFTER 23NS;   

        ELSIF (S'EVENT AND Q1'DELAYED='1') THEN

            Q1 <=PREQ AFTER 23NS;    

            NQ1 <=NOT(PREQ) AFTER 23NS;   

        ELSIF ((D0'EVENT OR D1'EVENT OR D2'EVENT OR D3'EVENT OR D4'EVENT OR D5'EVENT OR D6'EVENT OR D7'EVENT)  AND Q1'DELAYED='0') THEN --обработка

            Q1 <=PREQ AFTER 10NS;                                                                 --переключения

            NQ1 <=NOT(PREQ) AFTER 15NS;                                                    --входов данных

        ELSIF ((D0'EVENT OR D1'EVENT OR D2'EVENT OR D3'EVENT OR D4'EVENT OR D5'EVENT OR D6'EVENT OR D7'EVENT)  AND Q1'DELAYED='1') THEN

            Q1 <=PREQ AFTER 15NS;

            NQ1 <=NOT(PREQ) AFTER 15NS;