2. Проектирование автоматов
Проектирование АП содержит следующие этапы:
1) исходное задание функционирования;
2) формализованное задание функционирования;
3) минимизация состояний;
4) кодирование состояний;
5) составление таблицы переходов;
6) определение функций возбуждения элементов памяти (триггеров);
7) минимизация функций возбуждения триггеров;
8) переход к базису выбранной для реализации схемотехнологии;
9) составление логической схемы;
10) сборка и проверка автомата.
Исходное задание функционирования может иметь различную форму, в том числе и словесную. От неё переходят к формализованному заданию – таблицам, формулам, диаграммам состояния и т. п. Далее выполняются минимизация и кодирование состояний автомата, в результате чего получается таблица переходов, на основании которой можно найти функции возбуждения триггеров.
Минимизация и кодирование состояний в общем случае является задачей, решение которой может потребовать значительных усилий, однако при проектировании узлов ЭВМ и цифровой автоматики она чаще всего проста, и её решение подсказывается самой формулировкой задания на проектирование. Традиционно широко применяется кодирование состояний автомата двоичными кодами, при котором триггеры используются в схеме экономно. Для некоторых новых СБИС программируемой логики, снабжённых большим числом триггеров, экономия их числа при построении автомата несущественна. Для таких случаев применение кодирования кодами "1 из N" может быть предпочтительным, т. к. приводит к более быстродействующим схемам, хотя и требующим значительного числа триггеров.
Функции возбуждения триггеров, обеспечивающие переходы АП из одного состояния в другое, реализуются его комбинационной частью. Они, как сказано в перечислении этапов проектирования, минимизируются и переводятся в базис выбранных средств реализации автомата. Это положение следует понимать в широком смысле, поскольку в зависимости от средств реализации КЦ требования к формам представления функций возбуждения могут существенно различаться. Точнее, можно говорить о приведении функций к виду, удобному для воспроизведения данными средствами.
После выполнения указанных действий можно получить логическую схему АП. Заканчивается процесс проверкой работы узла с помощью моделирования или макетирования.
Рассмотрим более подробно методику проектирования автоматов, содержащих триггеры (рис. 2).
В тактируемых автоматах элементами памяти служат синхронные триггеры, причём любой автомат можно построить на любом типе триггера (D, JK, RS, Т и др.).
При двоичном кодировании состояний автомата число триггеров в его схеме равно n = {log2N}, где N – число состояний автомата и {} – знак округления до ближайшего справа (большего) целого числа (округления в сторону +∞).
При кодировании кодом "1 из N" число триггеров равно числу состояний автомата: n = N, т. к. каждому состоянию соответствует один триггер в единичном состоянии при нулевом состоянии остальных.
Рис. 2. Структурная схема автомата Мура
Будем считать, что закон функционирования автомата определён и кодирование его состояний произведено. Значит, известна последовательность состояний триггеров, принимаемых ими в каждом такте под управлением входных сигналов x1 , x2 , ..., xk и текущего состояния триггеров Q1 , Q2 , ..., Qn . Предмет синтеза – получение функций возбуждения φi и ψi , для каждого входа всех триггеров, обеспечивающих необходимые переходы автомата.
Функции выхода для автоматов Мура зависят только от состояния автомата, поэтому нахождение выходов Z1 , Z2 , ..., Zj осуществляется комбинационной схемой, на которую подаются только выходы триггеров Q1 , Q2 , ..., Qn . Все триггеры тактируются общим синхросигналом С. После завершения выработки функций возбуждения комбинационной схемой поступает очередной тактовый сигнал С, переводящий триггеры в новое состояние.
Вид функций возбуждения зависит от логического типа триггеров. Поэтому одним из средств синтеза служат "словари" для триггеров.
При поиске функций возбуждения триггеров вначале составляется таблица (табл. 1), содержащая следующие данные.
Таблица 1
Входы в момент времени t |
Состояния триггеров |
Необходимые сигналы на всех входах каждого триггера |
||||||||||||||
Q (старое) |
Qн (новое) |
|||||||||||||||
x1 |
x2 |
… |
xk |
Q1 |
Q2 |
… |
Qn |
Q1 |
Q2 |
… |
Qn |
φ1 |
ψ1 |
… |
φn |
ψn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Столбцы φ1 , ψ1 , ..., φn , ψn определяют функции возбуждения триггеров.
Многовариантность реализаций автомата связана с выбором типа триггеров и комбинационной части.
Относительно наиболее распространённых типов триггеров JK и D можно отметить следующее. Триггер типа JK обладает более развитыми логическими функциями, поэтому для него функции возбуждения в среднем более просты, но число их вдвое больше, чем для триггера D. Что же даст более простое решение, заранее неизвестно.
Комбинационная часть автомата может быть построена на логических элементах, мультиплексорах, ИС программируемой памяти, программируемых логических матрицах и т. д.
Состояния автомата можно кодировать двоичными кодами, кодами "1 из N" и др.
Автомат можно построить, приспособив к необходимому функционированию типовую ИС среднего уровня интеграции (счётчик, сдвигающий регистр), добавив к ним специально спроектированную логическую часть.
Реализации автомата с использованием ИС памяти, программируемых логических матриц и тому подобных устройств поясняются далее (после рассмотрения соответствующих средств). Далее следуют примеры построения автоматов на уже изученных типовых элементах при кодировании состояний двоичными кодами и кодами "1 из N".
