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

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

Жанры

Искусство схемотехники. Том 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) так, чтобы были состояния (сколько?) для каждого возможного числа разменов.  Модифицируйте правила перехода соответственно. Гарантируйте, чтобы ваш усовершенствованный автомат выполнял свою основную работу — выдачу бутылок.

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

Титан империи

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

Ваше Сиятельство 11

Моури Эрли
11. Ваше Сиятельство
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Ваше Сиятельство 11

Сердце Дракона. Том 8

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

Хозяйка поместья, или отвергнутая жена дракона

Рэйн Мона
2. Дом для дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Хозяйка поместья, или отвергнутая жена дракона

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Правильный попаданец

Дашко Дмитрий Николаевич
1. Мент
Фантастика:
альтернативная история
5.75
рейтинг книги
Правильный попаданец

Барин-Шабарин 2

Гуров Валерий Александрович
2. Барин-Шабарин
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Барин-Шабарин 2

Развод с генералом драконов

Солт Елена
Фантастика:
фэнтези
5.00
рейтинг книги
Развод с генералом драконов

Не грози Дубровскому!

Панарин Антон
1. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому!

Инквизитор Тьмы 4

Шмаков Алексей Семенович
4. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 4

Пятьдесят оттенков серого

Джеймс Эрика Леонард
1. Пятьдесят оттенков
Проза:
современная проза
8.28
рейтинг книги
Пятьдесят оттенков серого

Кротовский, сколько можно?

Парсиев Дмитрий
5. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кротовский, сколько можно?

Завод-3: назад в СССР

Гуров Валерий Александрович
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Завод-3: назад в СССР