Проектирование цифрового узла ИЕ10 – четырёхразрядный двоичный счётчик с асинхронной установкой в состояние логического нуля, страница 5

- вход тактирования C – выход данных Q8,Q4,Q2,Q1 – 15нс;

Рис. 9 Задержка распространения сигнала вход cброса – выход данных Q8,Q4,Q2,Q1 - 24нс;

7.7.  Оценка предельных скоростных (частотных) возможностей

исследуемого узла

Рис 10 Работа проектируемого узла при тактовой частоте 30МГц

Рис. 11 Работа проектируемого узла при тактовой частоте 31МГц

Таким образом, после оценки предельных скоростных (частотных) возможностей работы счётчика ИЕ10 делаем вывод о его работоспособности при заданных условиях. При частоте повторения тактирующих импульсов 30Мгц счётчик работает без сбоев. При увеличении частоты до 31МГц начинаются многочисленные сбои и ошибки.


7.8.  Функциональное описание проектируемого и оформление его в

виде макромодели

              Целью данного пункта курсовой работы является овладение ещё одним мощным инструментом моделирования – высокоуровневым логико-временным моделированием. Теперь мы не собираемся раскрывать структуру объекта, а хотим смоделировать его работу, причём также точно, как если бы он моделировался на низком уровне. Это вовсе не означает, что такой инструмент не предоставляет возможностей по имитации временных соотношений в схеме и нагрузочных характеристик. Всё это можно сделать с помощью прямого функционального описания объекта и его временных характеристик, используя специальные примитивы LOGICEXP, PINDLY и CONSTRAINT.

            Ниже приведён вариант реализации такого функционального описания:

**Директива начала макромодели

.SUBCKT 555IE10_macro C_I ECT_I ECR_I NR_I NEWR_I D1_I D2_I D4_I D8_I

+ Q1_O Q2_O Q4_O Q8_O CR_O

+ OPTIONAL: DPWR=$G_DPWR DGND=$G_DGND

+ PARAMS: MNTYMXDLY=0 IO_LEVEL=0

*

**Необходимые объявления

U1 JKFF(4) DPWR DGND $D_HI NR MCLK

+ JA JB JC JD KA KB KC KD

+ Q1 Q2 Q4 Q8 $D_NC $D_NC $D_NC $D_NC

+ D0_EFF IO_STD

*

**Начало примитива LOGICEXP, описывающего логику работы компонента

**Число входов равно 13, а число выходов из лог-го блока – 20.

U161LOG LOGICEXP(13,20) DPWR DGND

+ C_I ECT_I ECR_I NR_I NEWR_I D1_I D2_I D4_I D8_I Q1 Q2 Q4 Q8

+ MCLK CR JA JB JC JD KA KB KC KD C ECT ECR NR NEWR D1 D2 D4 D8 IEN

+ D0_GATE IO_STD IO_LEVEL={IO_LEVEL}

+ LOGIC:

+   C = { C_I }

+   ECT = { ECT_I }

+   ECR = { ECR_I }

+   NR = { NR_I }

+   NEWR = { NEWR_I }

+   D1 = { D1_I }

+   D2 = { D2_I }

+   D4 = { D4_I }

+   D8 = { D8_I }

+   ILD = { ~NEWR }

+   IEN = { ECT & ECR }

+   IA1 = { IEN | ILD }

+   IA2 = { ~(D1 & ILD) }

+   IB1 = { (Q1 & IEN) | ILD }

+   IB2 = { ~(D2 & ILD) }

+   IC1 = { (Q2 & Q1 & IEN) | ILD }

+   IC2 = { ~(D4 & ILD) }

+   ID1 = { (Q4 & Q2 & Q1 & IEN) | ILD }

+   ID2 = { ~(D8 & ILD) }

+   MCLK = { ~C }

+   CR = { Q8 & Q4 & Q2 & Q1 & ECR }

+   JA = { ~(ILD & IA2) & IA1 }

+   KA = { IA1 & IA2 }

+   JB = { ~(ILD & IB2) & IB1 }

+   KB = { IB1 & IB2 }

+   JC = { ~(ILD & IC2) & IC1 }

+   KC = { IC1 & IC2 }

+   JD = { ~(ILD & ID2) & ID1 }

+   KD = { ID1 & ID2 }

*

**Начало примитива PINDLY, описывающего временные задержки компонента

**Число путей равно 5, число входов разрешения – 0, число внутренних узлов – 10.

U161DLY PINDLY (5,0,10) DPWR DGND

+ CR Q1 Q2 Q4 Q8

+ C NEWR ECR NR ECT D1 D2 D4 D8 IEN

+ CR_O Q1_O Q2_O Q4_O Q8_O

+ IO_STD MNTYMXDLY={MNTYMXDLY} IO_LEVEL={IO_LEVEL}

+ BOOLEAN:

+   CLOCK = { CHANGED_LH(C,0) }

+ PINDLY:

+   Q1_O Q2_O Q4_O Q8_O = {

+     CASE(

+       CLOCK & NEWR!='0 & TRN_LH, DELAY(-1,13NS,20NS),

+       CLOCK & NEWR!='0 & TRN_HL, DELAY(-1,15NS,23NS),

+       CLOCK & NEWR!='1 & TRN_LH, DELAY(-1,17NS,25NS),

+       CLOCK & NEWR!='1 & TRN_HL, DELAY(-1,19NS,29NS),

+       CHANGED_HL(NR,0), DELAY(-1,26NS,38NS),

+       DELAY(-1,26NS,38NS)

+       )

+     }

+   CR_O = {

+     CASE(

+       CHANGED(ECR,0), DELAY(-1,11NS,16NS),