Чтение онлайн

на главную - закладки

Жанры

Искусство схемотехники. Том 2 (Изд.4-е)
Шрифт:

/** Inputs **/

Pin = elk; /* clock — positive edge */

Pin = c0; /* coin type — low bit */

Pin = c1; /* coin type — high bit */

Pin = reset; /* reset input */

/** Outputs **/

Pin 18 = !Q0; /* bit 0 of state variable */

Pin 17 = !Q1; /* bit 1 */

Pin 16 = !Q2; /* bit 2 */

Pin 15 = !bottle; /* bottle disgorge command */

/* Define machine states with symbolic names;

"enough" = 25 cents or more */

$define S0 'b'000

$define S5 'b'001

$define S10 'b'010

$define S15 'b'011

$define S20 'b'100

$define ENOUGH 'b'101

/* define intermediate variables */

nocoin = !c0 & !c1 & !reset;

nicke1 = c0 & !c1 & !reset;

dime = !c0 & c1 & !reset;

quarter = c0 & c1 & !reset;

/* Define state bit variable field */

field statebit = [Q2..0];

/* Transition rules for vending machine */

sequence statebit {

present S0 if nocoin next S0;

if nicke1 next S5;

if dime next S10;

if quarter next ENOUGH out bottle;

present S5 if nocoin next S5

if nicke1 next S10;

if dime next S15;

if quarter next ENOUGH out bottle;

present S10 if nocoin next S10

if nicke1 next S15;

if dime next S20;

if quarter next ENOUGH out bottle;

present S15 if nocoin next S15

if nicke1 next S20;

if dime next ENOUGH out bottle;

if quarter next ENOUGH out bottle;

present S20 if nocoin next S20

if nicke1 next ENOUGH out bottle;

if dime next ENOUGH out bottle;

if quarter next ENOUGH out bottle;

present ENOUGH next S0; }

Рис. 8.81. Спецификация

торгового автомата на языке CUPL.

Как и прежде, мы начнем с определения входных-выходных контактов. Заметим, что мы добавили вход reset (сброс) так, чтобы вы могли перейти к начальному состоянию S0 (нет монеты). Затем мы определим состояния, потом правила перехода между ними. Если какие-либо выходы, либо регистровые, либо комбинационные, необходимо генерировать в течение состояний или переходов между состояниями, они определяются в то же самое время. В этом примере выход «бутылка» специфицируется как раздельный выходной регистр, т. е. выходные состояния дешифрировать не нужно. Фактически нужен только выход, а биты Q0-2 машины состояний могут быть представлены во внутренних регистрах, которые не генерируют прямо выводы; некоторые программируемые логические устройства имеют также внутренние регистры в дополнение к обычным выходным регистрам.

Заметим, что вы должны определить точно переход из некоторого состояния в себя, также, как мы делали для входа «нет монеты». Неопределенное условие безусловно сбрасывает состояние во все нули. Это происходит

потому, что эти условия собираются в комбинационную логику для выставления на D-входы регистров и, таким образом, если условие не удовлетворяется, то соответствующий D-вход не подтверждается. Рис. 8.82 показывает вывод из языка CUPL.

** Expanded Product Terms **

Q0.d =>

!Q0 & !Q1 & cQ & !reset

# !Q0 & !Q2 & cO & !reset

# Q0 & !Q2 & !c0 & !reset

# Q0 & !Q2 & c1 & !reset

# !Q0 & !Q1 & Q2 & c1 & !reset

Q1.d =>

!Q1 & !Q2 & !c0 & c1 & !reset

# !Q0 & Q1 & !Q2 & !c1 & !reset

# Q1 & !Q2 & !c0 & !c1 & !reset

# Q0 & !Q1 & !Q2 & cO & !c1 & !reset

Q2.d =>

!Q0 & !Q1 & Q2 & !reset

# Q1 & !Q2 & c1 & !reset

# !Q2 & c0 & c1 & !reset

# Q0 & Q1 & !Q2 & c0 & !reset

bottle.d =>

!Q2 & c0 & c1 & !reset

# !Q0 & !Q1 & Q2 & c0 & !reset

# !Q0 & !Q1 & Q2 & c1 & !reset

# Q0 & Q1 &!Q2 & c1 & !reset

statebit =>

Q2, Q1, Q0

Рис. 8.82. Выход CUPL для торгового автомата.

Ничего очевидного или простого в логике, поскольку и состояние автомата (S0-S5) и входящие переменные (С0-1) определены в виде двоичных чисел, а логика работает по отдельным битам. Таким образом, результирующая логика не сильно связана с первоначальным описанием состояний (рис. 8.81). Фактически, конкретный выбор состояний (возрастающий двоичный код 0–5) мог бы быть различным, это полностью изменило бы результирующую логику. В этом случае этот пример легко укладывается в ограничениях ПМЛ 16R6 (8 термов произведений на регистр): если это не так, мы могли бы попытаться переопределить состояния, что часто приводит к более простой логической реализации. Заметим, что вход сброса действует, заменяя безусловность всех D-входов, которую мы задали посредством нашего задания промежуточных переменных «нет монеты», «5 цент» и т. д.

Упражнение 8.30. Проконтролируйте правильность конечных логических выражений, посредством проверки нескольких правил перехода. Вы должны испытать все переходы от 00, или от «5 центов», или «10 центов» к какому-либо другому состоянию.

Упражнение 8.31. Хорошие торговые автоматы имеют размен. Перерисуйте диаграмму состояний (рис. 8.80) так, чтобы были состояния (сколько?) для каждого возможного числа разменов.  Модифицируйте правила перехода соответственно. Гарантируйте, чтобы ваш усовершенствованный автомат выполнял свою основную работу — выдачу бутылок.

Поделиться:
Популярные книги

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Бастард Императора. Том 5

Орлов Андрей Юрьевич
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 5

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Неоконченный романс

Мельникова Ирина Александровна
Любовные романы:
остросюжетные любовные романы
8.98
рейтинг книги
Неоконченный романс

Поцелуй на снегу

Кистяева Марина
1. Время любви
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Поцелуй на снегу

Игра Кота 3

Прокофьев Роман Юрьевич
3. ОДИН ИЗ СЕМИ
Фантастика:
фэнтези
боевая фантастика
8.03
рейтинг книги
Игра Кота 3

Законы Рода. Том 4

Андрей Мельник
4. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 4

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

(Не)свободные, или Фиктивная жена драконьего военачальника

Найт Алекс
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(Не)свободные, или Фиктивная жена драконьего военачальника

Совершенный: охота

Vector
3. Совершенный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Совершенный: охота

Кодекс Охотника. Книга XIX

Винокуров Юрий
19. Кодекс Охотника
Фантастика:
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XIX

Сердце Дракона. Том 20. Часть 1

Клеванский Кирилл Сергеевич
20. Сердце дракона
Фантастика:
фэнтези
боевая фантастика
городское фэнтези
5.00
рейтинг книги
Сердце Дракона. Том 20. Часть 1

Право на месть

Ледова Анна
3. Академия Ровельхейм
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Право на месть

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер