- •Тверь 2004
- •Введение
- •Арифметика цвм Формы представления чисел в эвм
- •Представление чисел со знаком в эвм
- •Переполнение разрядной сетки
- •Модифицированные коды.
- •Умножение двоичных чисел в форме с плавающей запятой
- •Умножение чисел с фиксированной запятой на дсдк, схема 1
- •Умножение двоичных чисел с фиксированной запятой на дсок, схема 1
- •Умножение двоичных чисел с фиксированной запятой на дсдк, схема 2
- •Умножение двоичных чисел с фиксированной запятой на дсок, схема 2
- •Умножение двоичных чисел с фиксированной запятой на дсдк, схема 3
- •Умножение двоичных чисел с фиксированной запятой на дсок, схема 3
- •Умножение двоичных чисел с фиксированной запятой на дсдк, схема 4
- •Умножение двоичных чисел с фиксированной запятой на дсок, схема 4
- •Деление двоичных чисел с плавающей запятой.
- •Деление двоичных чисел с фиксированной запятой с восстановлением остатка
- •Деление двоичных чисел с фиксированной запятой без восстановления остатка.
- •Алгоритмы перевода чисел из системы счисления с основаниемpв систему счисления с основаниемq Перевод правильной дроби из кода д1 в двоичную систему счисления
- •Перевод правильной дроби из двоичной системы счисления в код д1
- •Перевод целого числа из кода д1 в двоичную систему счисления
- •Перевод целого двоичного числа в код д1
- •Основные сведения о конечных цифровых автоматах
- •Абстрактная теория цифровых автоматов
- •Совмещенная модель автомата (с-автомат)
- •Функционирование цифрового автомата во времени
- •Канонический метод структурного синтеза цифровых автоматов
- •Элементы памяти в цифровых автоматах
- •Проектирование автомата Мили Кодированная таблица переходов-выходов
- •Проектирование автомата Мура
- •Принцип микропрограммного управления в цифровых автоматах
- •Алгоритм отметки гса и построение автомата Мура
- •Тривиальная реализация цифрового автомата
- •Кодирование состояний. Гонки в автомате
- •Замена входных переменных и кодирование состояний
- •Кодирование микрокоманд
- •Матричная реализация комбинационных схем и автоматов
Замена входных переменных и кодирование состояний
Обычно число переменных, от которых существенно зависит каждый переход в микропрограммном автомате (МПА), невелико по сравнению с мощностью множества входных переменных. Пусть МПА задан таблицей переходов-выходов, Табл. 1. Рассмотрим способ реализации МПА, основанный на замене множества входных переменных Х множеством новых переменных Р, содержащим, как правило, существенно меньшее число элементов. Обозначим через X{am} множество входных переменных, определяющих все переходы автомата из состоянияam. В рассматриваемом примере :
X(a1)={x1},X(a2)=,X(a3)={x7,x8},X(a4)={x1,x2,x3},X(a5) = {x4,x6},X(a6) = {x5,x7},X(a7)=,X(a8) = {x6}.
Из этих выражений видно, что наибольшее число переменных (три) случается на переходе из состояния а4. Обозначим это число в общем случае черезGи образуем новое множество переменныхP={p1,p2 , ... ,pG}. Ясно, что мощность этого множества меньше мощности множества входных переменных Х. На практике бывает значительно меньше. Тогда каждую переменную из множества Х можно заменить переменной из множества Р так, чтобыpg=xl, если в состоянииamпеременнаяxlзаменена переменнойpg.
Предположим, что в примере замена переменных уже сделана так, как это представлено в Табл. 2. В этой таблице на пересечении строки am и столбцаpgзаписан элементxl , если в состоянииamпеременнаяxlзаменяется переменнойpg.
Таблица 32
am |
as |
X(am,as) |
[am] |
[as] |
P(am, as) |
Yt |
D1 D2 D3 |
h |
a1 |
a1 a3 |
x1 x1 |
000 |
000 001 |
p1 p1 |
- Y0 y7 Y8
|
0 0 0 0 0 1 |
1 2 |
a2 |
a3 |
1 |
011 |
001 |
1 |
y10 y11 Y4 |
0 0 1 |
3 |
a3 |
a6 a8 a2 |
x7 x7 x8 x7 x8 |
001 |
101 111 011 |
p2 p2p3 p2p3 |
y10 y11 Y4 Y0 y2 y5 y10 Y1 |
1 0 1 1 1 1 0 1 1 |
4 5 6 |
a4 |
a1 a3 a7 a4 |
x1 x3 x1 x3 x1 x2 x1 x2 |
010 |
000 001 100 010 |
p1p3 p1p3 p1p2 p1p2 |
y3 y4 Y2 y1 y3 y4 Y3 y3 y4 Y7 y1 Y6 |
0 0 0 0 0 1 1 0 0 0 1 0 |
7 8 9 10 |
a5 |
a4 a5 a8 |
x4 x6 x4 x6 x4 |
110 |
010 110 100 |
p1p2 p1p2 p1 |
y6 y13 Y9 y6 y13 Y9 y6 y8 Y5 |
0 1 0 1 1 0 1 0 0 |
11 12 13 |
a6 |
a2 a3 a8 |
x5 x5 x7 x5x7 |
101 |
011 001 111 |
p1 p1p2 p1p2 |
y10 y11 Y4 y12 Y10 y10 y11 Y4 |
0 1 1 0 0 1 1 1 1 |
14 15 16 |
a7 |
a5 |
1 |
100 |
110 |
1 |
y1 Y6 |
1 1 0 |
17 |
a8 |
a8 a5 |
x6 x6 |
111 |
111 110 |
p2 p2 |
- Y0 y9 y11 Y7 |
1 1 1 1 1 0 |
18 19 |
Предположим, что связь входных переменных и состояний, переход из которых они инициируют, а также новые переменные, заменяющие исходные, представлены в Табл. 2. В этой таблице в столбцы p1,p2,p3записаны имена новых переменных, от которых существенно зависит переход из состоянияamв любое состояниеas. Из таблицы видно, что р1должна быть равна х1в состояниях а1и а4, х4в состоянии а5, х5в состоянии а6. Тогда выражение для р1будет иметь вид
p1=a1x1a4x1a6x5.
Действительно, если МПА находится в состоянии а1, то а4= а5= а6= =0, а а1= 1, поэтому р1 = х1. Выражения для р1, р2, и р3можно получить непосредственно из табл. 2. Однако, если в какой либо клетке данного столбца таблицы стоит прочерк, то функция не полностью определенная, т.е. переменнаяpgможет быть равна любой переменной в состоянииam. Точно так же переменная р1не определена в состояниях а2, а7и а8. В связи с этим в выражение для р1можно добавить всевозможные слагаемые:a2xt,a3xt,a7xt,a8xt, используя их для упрощения р1. В качествеxtследует выбирать только переменные из столбца р1. Тогда выражение для р1 примет вид
p1 = a1x1 a4x1 a5x4 a6x5 [(a2 a3 a7 a8) & (x1 x4 x5)],
где доопределяющие слагаемые заключены в квадратные скобки. Для р2и р3получим аналогичные выражения и преобразуем их таким образом, чтобы дизъюнктивный сомножитель при каждой исходной переменной содержал имена тех состояний, переход из которых зависит от этой переменной, и тех состояний, которые не зависят от этой переменной.
p1 = (a1 a4 [a2 a3 a7 a8] )x1 (a5 [a2 a3 a7 a8] )x4
(a6 [a2 a3 a7 a8] )x5;
p2 = (a3 a6 [a1 a2 a7] )x7 (a4 [a1 a2 a7] )x2 (a5 a8 [a1 a2 a7] )x6;
p3 = (a3 [a1 a2 a5 a6 a7 a8] )x8 (a4 [a1 a2 a5 a6 a7 a8] )x3.
Для кодирования состояний МПА используем диаграмму Вейча, размещая в ней имена состояний таким образом, чтобы они склеивались между собой, образуя интервалы наименьшего ранга. В каждой склейке могут участвовать метки состояний, соответствующие переменной xj, в данном столбце табл.2, и метки состояний, занесенных в квадратные скобки данного уравнения. Если для кодирования состояний используются не все возможные кодовые комбинации, соответствующие всем наборам значений внутренних переменных, то неиспользуемые коды образуют области неопределенности функции (диаграммы), которые могут участвовать в любых склейках. Необходимо только следить за тем, чтобы в склейку, определяющую конъюнкцию при переменной xj, не попадали метки состояний , для которых обозначен переход в другие состояния под действием других переменных в этом же столбце таблицы. Очевидно, что разным способам размещения меток в диаграмме будут соответствовать разные выражения, определяющие новые внешние переменные МПА. Искусство разработчика состоит в минимизации суммарной сложности выражений, определяющих значения новых переменных.
T1
T2 a5
a8
a2
a4
T3 a7
a6
a3
a1
Таблица 33
Pg
am p1 p2 p3 a1 x1 - - a2 - - - a3 - x7 x8 a4 x1 x2 x3 a5 x4 x6 - a6 x5 x7 - a7 - - - a8 - x6 -
В правой части Табл. 2 приведен возможный вариант кодирования состояний. В этом случае уравнения для новых входных переменных микропрограммного автомата примут вид:
p1 = t1 x1 t1t2x4 t2 t3x5,
p2 = t2x7 t1t3x2 t1t2x6,
p3=t2x8 t2x3.
Введем в структурной таблице МПА, Табл. 1, дополнительный столбец P(am,as), в котором входные переменные из множества Х заменены переменнымиp1,p2,p3в соответствии с Табл.2. В столбцы [am], [as] запишем коды состояний МПА в соответствии с размещением меток в диаграмме Вейча, показанном в правой части Табл.2, и определим функции возбуждения элементов памяти, а именно входные сигналыD- триггеров.
Следующим этапом проектирования МПА является построение логических функций возбуждения элементов памяти. Простейшим способом является построение этих функций непосредственно по таблице переходов-выходов (тривиальная реализация).
D1 = a3(p2p2p3) a4p1p2 a5(p1p2p1) a6p1p2 a7 a8(p2 p2);
D2 = a3(p2p3 p2p3) a4p1p2 a5(p1p2 p1p2) a6(p1 p1p2) a7 a8(p2 p2);
D3 = a1p1 a2 a3(p2 p2p3 p2p3) a4p1p3 a6(p1 p1p2 p1p2) a8p2.
Преобразуя эти выражения с использованием правил склеивания, обобщенного склеивания и поглощения, получим:
D1 = a3(p2 p3) a4p1p2 a5 (p1 p2) a6p1p2 a7 a8;
D2 = a3p2 a4p1p2 a5p1 a6(p1 p2) a7 a8;
D3 = a1p1 a2 a3 a4p1p3 a6 a8p2.
Можно проверить, что суммарная сложность схем, реализующих преобразование переменных и функции возбуждения элементов памяти, меньше, чем при тривиальной реализации функций исходной таблицы. При больших таблицах этот выигрыш более существен.
Замену переменных и кодирование состояний автомата можно выполнять различными способами, которые будут приводить к различным выражениям для функций D1, D2,D3и различным значениям сложностей схем. Поэтому важно выполнить замену переменных и кодирование таким образом, чтобы обеспечить минимальное число термов в окончательных уравнениях. С этой целью рекомендуется руководствоваться следующими правилами:
до замены переменных произвести минимизацию числа строк таблицы переходов-выходов структурного автомата, так как это способствует уменьшению числа переменных, определяющих переход в строках таблицы;
при замене переменных нужно стремиться поместить каждую переменную xiв одном столбце таблицы замены, что, однако, не всегда возможно;
при кодировании состояний важно, чтобы дизъюнкции в круглых скобках склеились в одну конъюнкцию.