41. Содержательные и закодированные гса
Граф-схемой алгоритма (ГСА) называют ориентированный связанный граф, содержащий одну начальную вершину (А0), одну конечную (Аk) и произвольное конечное множество операторных (A = {a1, ..., ak-1}) и условных (P = {p1, ..., pf}) вершин. Данные вершины изображены на рисунке 5.4 под буквами а, б, в и г соответственно.
Рисунок 5.4 – Типы вершин ГСА
Конечная, операторная и условная вершины имеют по одному входу, начальная вершина входов не имеет, как и показано на рисунке. Начальная и операторная вершины имеют только по одному выходу, а условная - два выхода, помеченных символами 1 и 0. Конечная вершина выходов не имеет.
При построении ГСА должна удовлетворять следующим условиям:
1. Входы и выходы вершин соединяются друг с другом с помощью дуг, направленных всегда от выхода к входу;
2. Каждый выход соединен точно с одним входом;
3. Любой вход соединяется, по крайней мере, с одним выходом;
4. Любая вершина графа лежит, по крайней мере, на одном пути из начальной вершины к конечной вершине;
5. Один из выходов условной вершины может соединяться с ее входом, что недопустимо для операторной вершины. Такие условные вершины будем иногда называть возвратными вершинами;
6. В каждой условной вершине записывается один из элементов множества X = {x1, ..., xL}, называемого множеством логических условий. Запись одинаковых элементов множества X в различных условных вершин разрешается;
7. В каждой операторной вершине записывается оператор (микрокоманда) Yt - подмножество множества Y = {y1, ..., xN}, называемого множеством микроопераций. Y = {yt1, ..., ytu, ..., ytU}; ytU Y, u = 1, ..., Ut. При Ut = 0 Yt = , Разрешается также запись в различных операторных вершинах одинаковых подмножеств множества операций.
Оператор или микрокоманда – совокупность микроопераций, выполняемых одновременно за один такт. Микрооперации, выполняемые совместно (одновременно) в течении одного такта называются совместимыми микрооперациями.
Микрокоманду, состоящую из пустого множества микроопераций обозначают символом Y0. Реализация такой микрокоманды равносильна отсутствию выполнения каких-либо элементарных операций. В случае синхронных дискретных устройств микрокоманду Y0 удобно интерпретировать как пропуск как пропуск такта, когда не поступают никакие сигналы от устройства управления к операционному устройству.
Чтобы синтезировать схему операционного устройства, необходимо принять некоторый способ выполнения операции в устройстве и описать его в строке микропрограммы. Микропрограмма, представляющая функции операционного устройства безотносительно к средствам, которые могут быть использованы для реализации заданной функции, называется функциональной микропрограммой. Функциональная микропрограмма фиксирует в себе алгоритм выполнения операции, рекомендуемый проектировщиком, и используется как исходная форма представления функций устройства, на основе которой синтезируется структура, достаточная для реализации заданных функций.
Для записи функциональных микропрограмм используется язык функционального микропрограммирования (Ф - язык).
Средства языка должны обеспечивать описание алгоритмов выполнения операции слов, микрооперации, логический условий и порядка их выполнения – с такой степенью детализации, которая обеспечит синтез структуры устройства.
Ф - язык является средством описания функций операционных устройств на уровне микропрограммирования безотносительно к структуре, которая может быть использована для реализации этих функций.
Объектами, описываемыми средством Ф - языка, являются функциональные микропрограммы, определяющие алгоритм выполнения операций в устройствах. Функциональная микропрограмма содержит в себе две части:
-
Описание слов и массивов, устанавливающее типы и форматы слов, с которыми оперирует микропрограмма.
-
Содержательный граф микропрограммы, который определяет алгоритм выполнения операций в содержательной форме – в виде описания микроопераций и логических условий.
Основным элементом информации, с которым оперирует Ф – микропрограмма, является слово. Наименование и формат слова задаются в следующем виде C(П1:П2), где С – идентификатор; П1 и П2 – номера старшего и младшего двоичных разрядов слова. Разряды слова номеруются направо неотрицательными целыми числами n1>0, n2>0, n1<n2. Одноразрядное слово состоит только из идентификатора С.
Совокупность слов, имеющих одинаковую длину, может объединятся в массив. Массив описывается в следующем виде: M[m1:m2](n1:n2), где M – идентификатор массива; m1,m2 – границы номеров слов, составляющих массивов, причем m1<m2; n1,n2 – номера старшего и младшего разрядов слова.
В зависимости от способа использования значений выделяют следующие типы слов:
-
Входные слова – значения присваиваются вне микропрограммы и используются внутри микропрограммы.
-
Внутренние – значения присваиваются и используются только внутри микропрограммы.
-
Вспомогательные – значения присваиваются и используются только внутри микропрограммы, но существуют не постоянно, а только в течении такта автоматного времени (типа А).
-
Выходные – значения присваиваются в микропрограмме и используются вне ее (типа О).
Двоичное выражение определяет правило вычисления двоичного значения путем выполнения операций над первичными двоичными значениями. Константы записываются в следующем виде 11002, 148, 1210, С16.
Первичные двоичные значения, слова и поля – объединяются в двоичное выражение с помощью двоичных операций, к которым относятся обычно следующие операции: - инверсия, конкатенация, - конъюнкция, -дизъюнкция, + - сложение, - - вычитание, - сложение по модулю 2.
Примерами двоичных выражений являются следующие конструкции:
А; В(0); А; С+1; С+А(1:15); С+112 А(1:15)+1.
Последнее выражение вычисляется в следующем порядке – вначале инвертируются разряды 1-15 слова А А(1:15); затем формируется составляющее значение 110 А(1:15); выполняется сложение с С составным значением С+112 А(1:15); и последняя сумма складывается с 1.
В синтаксическом смысле микрооперация – это оператор присваивания, посредством которого слову присваивается значение двоичного выражения. Микрооперация состоит из левой части, знака присваивания (:=) и двоичного выражения в правой части.
Все микрооперации подразделяются на семь классов:
-
установки;
-
инвертирования;
-
предачи;
-
сдвига;
-
счета;
-
сложения;
-
бинарные логические;
-
комбинированные.
Микрооперация передачи – обеспечивает присваивание слову значение другого слова (А:=В). Микрооперация сдвига служит для изменения положения разрядов слова по отношению к начальному пути перемещения каждого разряда на k позиций влево или вправо. Операции сдвига обозначаются следующим образом:
Rh(A) – удаление из двоичного выражения А k младших правых разрядов, то есть сдвиг на k разрядов вправо.
Lk(A) – удаление из двоичного выражения A k старших левых разрядов, то есть сдвиг на k разрядов влево.
Бинарные логические микрооперации присваивают слову значение, получаемое поразрядным применением микроопераций , , к парам соответствующих разрядов слагаемых. Например, С:=АВ.
Комбинированные микрооперации – это микрооперации, не принадлежащие ни к одному из вышеперечисленных классов. Комбинированная микрооперация содержит в себе несколько действий, присущих микрооперациям разных классов.
Функция операционного автомата сводится к вводу – выводу и хранению слов информации, выполнению микроопераций и вычислению логических условий. Набор элементов, на основе которых могут строиться структуры с определенным свойствами, называется структурным базисом. Структурный базис операционных автоматов должен содержать элементы, обеспечивающие передачу и хранение слов информации и вычисление значений функций, на основе которых строятся микрооперации и логические условия. Для этих целей наиболее широко используем следующий набор элементов:
-
шины, обеспечивающие передачу слов информации;
-
регистры, обеспечивающие хранение слов;
-
комбинационные схемы, посредством которых вычисляются значения функций.
Рассмотрим в качестве примера содержательную ГСА, описывающую устройство сложения двоичных чисел с использованием обратного кода. Sm=A+B (рис. 2.5).
После построения содержательной ГСА логические условия и микрооперации кодируются символами x1, ..., xL и y1, ..., yN соответственно.
Условия переходов (из условных вершин).
x1: signSm;
x2: signRg;
x3:переполнение?.
Микрооперации (из операторных вершин):
y1: Sm:=A;
y2: Rg:=B;
y3: Sm:=[Sm]обр;
y4: Sm:=Sm+[Rg]обр;
y5: Sm:=Sm+Rg;
y6: PP:=1.
Микрокоманды и соответствующие им микрооперации:
Y1={ y1, y2};
Y2={ y3};
Y3={ y4};
Y4={ y5};
Y5={ y6}.
Затем строится закодированная ГСА, в которой микрооперации и условия заменены идентификаторами (рис.5.6).
Рисунок 5.5 – Содержательная ГСА
Рисунок 5.6 – Закодированная ГСА
- 1. Двоичные сигналы в цифровой технике
- 2. Интегральные технологии
- 3. Переключательные схемы. Логические элементы и (and), или (or), не (not)
- 4. Переключательные схемы. Логические элементы и-не (nand) или-не (nor) исключающее или (xor), эквивалентность (xnor), буфер
- 5. Ассоциативность функций и (and), или (or), и-не (nand) или-не (nor), xor, xnor.
- 6. Степени интеграции микросхем. Позитивная и негативная логика
- 7. Операции кубического исчисления конъюнкция (and), дизъюнкция (or), исключающее или (xor)
- 8. Операции кубического исчисления пересечение, объединение и дополнение
- 9. Кубические покрытия элементов и (and), или (or), и-не (nand) или-не (nor), xor, xnor (доделать!!!)
- 10. Два подхода в минимизации систем булевых функций
- 11. Автоматизация проектирования
- 12. Сумматоры
- 13. Мультиплексоры
- 14. Демультиплексоры
- 15. Дешифраторы
- 16. Шифраторы
- 17. Программируемые логические матрицы (плм или pla)
- 18. Программируемая матричная логика (пмл или pal)
- 19. Универсальные логические модули на основе мультиплексоров (lut)
- 20. Асинхронные триггеры: rs-триггер, r*s*-триггер
- 21. Асинхронные триггеры: jk-триггер, j*k*-триггер
- 22. Асинхронные триггеры: d-триггер, vd-триггер, т-триггер
- 23. Синхронные триггеры
- 24. Одноступенчатые и двухступенчатые триггеры
- 25. Параллельные регистры. Последовательные регистры
- 26. Последовательно-параллельные регистры
- 27. Синтез триггеров на базе других триггеров (доделать!!!)
- 28. Определение абстрактного цифрового автомата
- 29. Автомат Мили
- 30. Автомат Мура
- 32. Задание автомата графом переходов
- 33. Табличный способ задания автоматов
- 34. Автоматная лента
- 35. Задание автомата деревом функционирования
- 36. Матричный способ представления автомата
- 37. Алгоритм трансформации автомата Мура в автомат Мили
- 38. Алгоритм перехода от автомата Мили к автомату Мура
- 39. Концепция операционного и управляющего автомата
- 40. Принцип микропрограммного управления
- 41. Содержательные и закодированные гса
- 42. Канонический метод структурного синтеза сложного цифрового автомат
- 43. Канонический метод синтеза микропрограммных автоматов Мили
- 44. Кодирование состояний автоматов с целью минимизации аппаратурных затрат
- 45. Противогоночное кодирование состояний автоматов. Кодирование состояний автоматов, реализуемых на плис
- 46. Канонический метод синтеза микропрограммных автоматов Мура
- 47. Vhdl-модель управляющего автомата Мили
- 48. Vhdl-модель управляющего автомата Мура
- 49. Vhdl-модель операционного автомата
- 50. Синтез канонической структуры операционного автомата
- 51. Характеристики операционного автомата. Явление гонок в операционных автоматах
- 52. Эквивалентные операции и обобщенный оператор
- 53. Операционный автомат типа I
- 54. Операционный автомат типа м
- 55. Оа типа im с параллельной комбинационной частью
- 56. Оа типа im с последовательной комбинационной частью
- 57. Операционный автомат типа s
- 58. Дребезг механических переключателей и метод его устранения
- 59. Делитель частоты