Создание модели в средах проектирования DesignLab_8, OrCad_9,1 и Active-HDL_6,1 для интегральной микросхемы КР1554ИР23, страница 7

Рис.25 Диаграмма тестирования работы иерархического символа с внутренним описанием представленным в виде принципиальной схемы замещения

Необходимо отметить выявленную особенность моделирования: по приведенной диаграмме видно, что моделирование производится не в наносекундах, а в пикосекундах. Причина – при моделировании в наносекундах (режим задается в Options/Project) происходит округление дробной части задержки, что приводит к большой погрешности (задержка величиной 8.5ns приравнивается к 9ns). Так как в моделируемом узле присутствуют дробные задержки, то моделирование проводилось с меньшим шагом (в пикосекундах).

Тесовый эксперимент идентичен проведенному в пакете DesignLab_8 и описанному в пункте 3.5. На рисунках 26-30 приведены результаты изменения динамических характеристик воспроизводимых моделью узла.

Рис.26 Время задержки распространения сигнала при включении от входа С к выходам Q

Рис.27 Время задержки распространения сигнала при выключении от входа С к выходам Q

Рис.28 Время задержки распространения сигнала при переходе из состояния логического нуля в состояние высокого импеданса от входа EZ к выходам Q

Рис.29 Время задержки распространения сигнала при переходе из состояния логической единицы в состояние высокого импеданса от входа EZ к выходам Q

Рис.30 Время задержки распространения сигнала при переходе из состояния высокого импеданса в состояние низкого или высокого уровня от входа EZ к выходам Q

Проведенные измерения показывают, что модель адекватно воспроизводит все временные задержки прохождения сигналов заданные в соответствии с динамическими характеристиками реальной ИМС.

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

Разработанная VHDL-модель узла отображает временные задержки распространения сигналов от входов ИМС к ее выходам для всех возможных режимов работы. Временные характеристики соответствуют режиму работы:  температура окружающей среды T=25ºC.  Напряжение питания VCC=5В. Входная емкость Сl=50пФ.

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY KR1554IR23_VHDL 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;

C : IN  std_logic;

EZ : IN  std_logic;

Q0 : OUT  std_logic;

Q1 : OUT  std_logic;

Q2 : OUT  std_logic;

Q3 : OUT  std_logic;

Q4 : OUT  std_logic;

Q5 : OUT  std_logic;

Q6 : OUT  std_logic;

Q7 : OUT  std_logic;

VCC : IN  std_logic;

GND : IN  std_logic);

END KR1554IR23_VHDL;

ARCHITECTURE model OF KR1554IR23_VHDL IS—Тело поведенческой модели

    BEGIN

    PROCESS(D0, D1, D2, D3, D4, D5, D6, D7, C, EZ)

    variable iQ0 : std_logic;--Дополнительные переменные для хранения данных

    variable iQ1 : std_logic;--на выходах триггеров (внутри регистра), а не на

    variable iQ2 : std_logic;--выходах буферов

    variable iQ3 : std_logic;

    variable iQ4 : std_logic;

    variable iQ5 : std_logic;

    variable iQ6 : std_logic;

    variable iQ7 : std_logic;

    BEGIN

    IF C='1' AND C'EVENT

    THEN—Если поступил фронт синхросигнала

       iQ0:=D0;--Триггеры захватывают данные в любом случае

       iQ1:=D1;

       iQ2:=D2;

       iQ3:=D3;

       iQ4:=D4;

       iQ5:=D5;

       iQ6:=D6;

       iQ7:=D7;   

       IF EZ='0'

       THEN—-Если выходные буферы открыты то сигналы появляются на выходах

           --спустя задержку распространения, которая будет разной для перехода

           --из 0 в 1 и из 1 в 0   

           IF D0='1' THEN Q0<='1' AFTER 9.5ns; ELSE Q0<='0' AFTER 9ns; END IF;

           IF D1='1' THEN Q1<='1' AFTER 9.5ns; ELSE Q1<='0' AFTER 9ns; END IF;

           IF D2='1' THEN Q2<='1' AFTER 9.5ns; ELSE Q2<='0' AFTER 9ns; END IF;

           IF D3='1' THEN Q3<='1' AFTER 9.5ns; ELSE Q3<='0' AFTER 9ns; END IF;

           IF D4='1' THEN Q4<='1' AFTER 9.5ns; ELSE Q4<='0' AFTER 9ns; END IF;