Создание структурной и поведенческой модели мультиплексора КП 5 (или его зарубежного аналога) на языках SPICE, DSL, VHDL и SimCode, страница 4

Работа стабильная.

.

Рис.9. Демонстрация скоростных свойств узла при частоте 15.5MHz

Работа стабильная.

Рис.10. Демонстрация скоростных свойств узла при частоте 16MHz. Узел работает не корректно.

7.8.Функциональное описание моделируемого узла.

* 555KP5  MULTIPLEXER/DATA SELECTOR 8-1 LINE

*

.SUBCKT 555KP5 A_I B_I C_I D0_I D1_I D2_I D3_I D4_I D5_I D6_I D7_I W_O

+ OPTIONAL: DPWR=$G_DPWR DGND=$G_DGND

+ PARAMS: MNTYMXDLY=0 IO_LEVEL=0

*

ULSKP5LOG LOGICEXP(11,12) DPWR DGND* БЛОКЛОГИКИ

+ A_I B_I C_I D0_I D1_I D2_I D3_I D4_I D5_I D6_I D7_I

+ A B C D0 D1 D2 D3 D4 D5 D6 D7 W

+ D0_GATE IO_LS IO_LEVEL={IO_LEVEL}

+ LOGIC:

+   A = { A_I }

+   B = { B_I }

+   C = { C_I }

+   D0 = { D0_I }

+   D1 = { D1_I }

+   D2 = { D2_I }

+   D3 = { D3_I }

+   D4 = { D4_I }

+   D5 = { D5_I }

+   D6 = { D6_I }

+   D7 = { D7_I }

+   IA = { ~A }

+   IB = { ~B }

+   IC = { ~C }

+   ID0 = { D0 & IA & IB & IC }

+   ID1 = { D1 & A & IB & IC }

+   ID2 = { D2 & IA & B & IC }

+   ID3 = { D3 & A & B & IC }

+   ID4 = { D4 & IA & IB & C }

+   ID5 = { D5 & A & IB & C }

+   ID6 = { D6 & IA & B & C }

+   ID7 = { D7 & A & B & C }

+   W = { ~(ID0 | ID1 | ID2 | ID3 | ID4 | ID5 | ID6 | ID7) }

*

ULSKP5DLY PINDLY (1,0,11) DPWR DGND*БЛОКЗАДЕРЖЕК

+ W

+ A B C D0 D1 D2 D3 D4 D5 D6 D7

+ W_O

+ IO_LS MNTYMXDLY={MNTYMXDLY} IO_LEVEL={IO_LEVEL}

+ BOOLEAN:

+   DATA = { CHANGED(D0,0) | CHANGED(D1,0) | CHANGED(D2,0) | CHANGED(D3,0) |

+     CHANGED(D4,0) | CHANGED(D5,0) | CHANGED(D6,0) | CHANGED(D7,0) }

+   SELECT = { CHANGED(A,0) | CHANGED(B,0) | CHANGED(C,0) }

+ PINDLY:

+   W_O = {

+     CASE(

+       SELECT & TRN_HL, DELAY(-1,32NS,32NS),

+       SELECT & TRN_LH, DELAY(-1,23NS,23NS),

+       DATA & TRN_LH, DELAY(-1,21NS,21NS),

+       DATA & TRN_HL, DELAY(-1,20NS,20NS),

+       DELAY(-1,21NS,33NS)

+       )

+     }

*

.ENDS

*

*$

7.9. Схема верификации символа с подключённой к нему макромоделью.

Рис.11. Схема верификации символа с подключённой к нему макромоделью.

Рис. 12.    График из постпроцессора моделирования

8.Моделирование в пакете Orcad 9.1.

8.1  УГО моделируемого узла.

Рис. 13.   УГО моделируемого узла

8.2  Принципиальная схема замещения проектируемого узла

Рис. 14.   Принципиальная схема  моделируемого узла.

8.3  Схема верификации иерархического символа

Рис. 15.   Схема верификации  моделируемого узла

8.4  Результаты моделирования в пакете OrCad 9.1.

Рис.16.Диаграмма  работы узла 555КП5

Рис.17. Задержки распространения от информационных входов до выхода.

Рис.18. Задержки распространения от адресных входов до выхода.

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

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE work.orcad_prims.all;

ENTITY \555KP5\ 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;

A : IN  std_logic;

B : IN  std_logic;

C : IN  std_logic;

W : OUT  std_logic;

VCC : IN  std_logic;

GND : IN  std_logic);

END \555KP5\;

ARCHITECTURE model OF \555KP5\ IS

BEGIN   

process(D0,D1,D2,D3,D4,D5,D6,D7,A,B,C)

begin

if (A'EVENT OR B'EVENT OR C'EVENT) THEN           //изменение (событие) на селекторных входах

IF A ='1' THEN                                                       //определение с какого входа данных

              if B='1'  THEN                                          поступит информация на выход

                                           if C='1' THEN                          //задержка при переходе выхода:

                                                          if D7='1'then W<='0' after 32ns;             //- в состояние «0» 

                                                                         else     W<='1' after 23ns;          //- в состояние «1»

                                                           end if;