НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 130131132133134135136 ... 233


Входной сигнал DIR задает направление счета. Когда сигнал DIR имеет высокий уровень, то значение счетчика уменьшается на единицу с приходом каждого импульса синхронизации. При низком уровне на входе DIR содержимое счетчика, наоборот, увеличивается. Сигнал CLR осуществляет синхронный сброс счетчика (рис. 5.32).


Рис. 5.32. Схема реверсивного счетчика Исходный CUPL код, реализующий такой счетчик:

COUNT10.PLD

Name

CountlO;

Partno

CA0018;

Revision

Date

07/16/87;

Designer

Kahl;

Company

ATI;

Location

None;

Assembly

None;

Device

pl6rp4;

/***********************************************************/

Decade Counter This is a 4-bit up/dovm decade counter with synchronous clear capability. An asynchronous ripple carry output is provided for cascading multiple devices. CUPL state machine syntax

/* is used */

/***********************************************************/

/* Allowable Target Device Types: PAL16RP4, GAL16V8, EP300 */

/** Inputs **/ Pin 1 = elk; Pin 2 = clr; Pin 3 = dir; Pin 11 = !oe;

/* counter clock

/* counter clear input

/* counter direction input

/* Register output enable

/* Outputs

Pin [14..17) = [Q3..01; /* counter outputs

Pin 18 = carry; /* ripple carry out

/* Declarations and Intermediate Variable Definitions

field count = [Q3..0]; /* declare counter bit field



Sdefine SO bOOOO $define SI -ЬООО! $define S2 bOOlO $define S3 "bOOll $define S4 bOlOO $define S5 bOlOl $define S6 bOllO $define S7 >b0111 $define S8 -blOOO $define S9 blOOl field node = tclr,dirl; up = mode: 0 ,-down = mode;1; clear = mode:[2..3);

/* Logic Equations */ sequence count {

/* declare filed node control */

/* define count up mode */

/* define count down mode */

/* define count clear mode */

/* free running counter

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

present

next

down

next

clear

next

carry;

/* assert carry output */

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

Далее приведено описание входных и выходных выводов в соответствии с диаграммой, приведенной на рис. 5.32.

Секция Declarations and Intermediate Variable Definitions файла содержит описание переменных, упрощающих описание схемы.

Имя count присвоено выходным переменным Q3, Q2, Q1 и Q0.



Команда $DEFINE используется для присвоения имен десяти бинарным состояниям, представленным на выходе системы конечных автоматов. Имена состояний в последствии можно использовать в логических выражениях для представления соответствующих бинарных чисел.

Ключевое слово FIELD используется для определения входных сигналов CLR и DIR в состояние, названное mode. Это состояние описывается следующим набором выражений:

up = mode:О; dovm = mode: 1 ; clear = mode [2. .3] ,-

Состояние mode описывает входные сигналы CLR и DIR таким образом, что приведенные выше три выражения становятся эквивалентными следующим выражениям:

up = !с1г & !dir ; dovm = !clr & dir ;

clear = (clr & !dir) # (clr & dir) ;

Три различных режима работы счетчика определяются следующим образом: "Р суммирование - на входах DIR и CLR присутствует низкий уровень; down вычитание - на входе DIR присутствует высокий уровень, на входе CLR - низкий;

clear сброс - на входе CLR присутствует высокий уровень, на входе CLR произвольный.

Секция Logic Equations файла содержит описание состояний счетчика с помощью синтаксиса конечных автоматов. В первой строке с ключевым словом SEQUENCE переменной count (т. е. выходам Q3, Q2, Q1 и Q0) присваиваются определенные бинарные значения.

Присутствующие здесь наборы из трех операторов проверки условий предназначены для определения всех возможных состояний выходов на последующем и предыдущем шагах в зависимости от трех режимов работы счетчика. Например, в случае состояния S4 в режиме суммирования следующим состоянием будет S5, в режиме вычитания - S3, в режиме сброса счетчик перейдет в состояние SO. Данный пример показывает преимущества синтаксиса конечных автоматов для ясного и четкого описания функционирования разрабатываемого устройства.

В данном примере состояние SO (бинарное 0000) используется как состояние, в которое устройство переводится при прохождении сигнала CLR. Однако, следует помнить о важности начальной установки какого-либо состояния. В общем случае, рекомендуется в качестве начального достоверного состояния использовать состояние с нулевыми значениями на всех выходах, т. е. 0000, что не позволит системе "зависать". Это может произойти, если в момент включения напряжения питания на выходах установятся шестнадцатеричные значения А - F, для которых не определено ни одного условного оператора.

Ниже показано, как данный проект может быть записан как виртуальный. Это тот же самый файл, но в нем сделаны изменения, необходимые для демонстрации отличий между виртуальным проектом и проектом, ориентированным на конкретное устройство.



0 ... 130131132133134135136 ... 233