Московский государственный университет путей сообщения
Опубликован: 06.09.2012 | Доступ: свободный | Студентов: 1233 / 168 | Оценка: 5.00 / 5.00 | Длительность: 35:22:00
Специальности: Разработчик аппаратуры
Лекция 2:

Модели цифровых устройств

< Лекция 1 || Лекция 2: 123 || Лекция 3 >

Альтернативные графы (бинарные диаграммы решений)

Бинарные диаграммы решений являются ациклическими ориентированными графами, представляющими булевы функции. Этот тип модели был предложен в [ 2.7 ] и в настоящее время широко используется при моделировании и генерации тестов ЦУ. Множество его вершин можно разбить на три подмножества: внутренние узлы (степень входа равна 1, степень исхода равна 2 ), листья (степень входа равна 2, степень исхода равна 0) и корень (степень входа равна 0, степень исхода равна 2). Логические значения 0 или 1, принимаемые булевой функцией, соответствуют листьям диаграммы. Внутренние вершины соответствуют переменным булевой функции. Путь на графе из корневой вершины до одного листа, в зависимости от значений переменных булевой функции, определяет ее значение. Например, на рис.2.6 представлена бинарная диаграмма решений для булевой функции f=\overline ab\overline c+ac.

Бинарная диаграмма решений

Рис. 2.6. Бинарная диаграмма решений

Для определения значения булевой функции начинаем двигаться из корневой вершины вниз к листьям дерева. При прохождении каждой внутренней вершины, необходимо решить – по какой ветви (левой или правой), в зависимости от значения переменной, соответствующей текущей вершине, мы должны идти дальше. Значение булевой функции (\text{0 или 1}) определяется последней вершиной такого пути - висячей вершиной (листом дерева). Допустим, что нам необходимо вычислить значение данной булевой функции c помощью бинарной диаграммы ( рис. 2.6) при следующих значения переменных: a=0, b=0, c=1. Начиная с корневой вершины, при прохождении вершины a выбираем левую ветвь (так как a=0), далее в вершине b также выбираем левую ветвь и попадаем в лист дерева, соответствующий 0 (в данном случае функция не зависит от значения переменной с). Следует отметить, что иногда листья дерева могут соответствовать не только константам 0,1, но и переменным. Так для нашего примера листом является вершина с, поскольку при a=1 значение функции определяется этой переменной (f=c). Точка соответствует инверсии конечного результата. Например, при a=0, b=1 для нашего примера получаем f= \overline c. Если при прохождении по графу встречается несколько инверсий (точек), то конечный результат инвертируется в случае их нечетного числа.

Рассмотрим построение бинарной диаграммы из таблицы истинности на примере булевой функции, заданной табл.2.5 [ 2.7 ] . Сначала строится полное двоичное дерево, представленное на рис. 2.7 а), где каждый путь от корня до листа соответствует одной строке таблицы истинности. Далее эта диаграмма упрощается следующим образом. Так как обе ветви из левого узла с помечены 0, то этот узел можно удалить и заменить его листом, помеченным 0. Дальнейший анализ показывает, что остальные узлы c имеют ветви, помеченные 1 или 0 (0 или 1), и их также можно также удалить и заменить на листья, помеченные c или \overline c. Дальнейшие упрощения показаны на рис.2.7 б)-в).

Таблица 2.5.
a b C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Бинарные диаграммы

Рис. 2.7. Бинарные диаграммы

Структурные модели

Информация о логике функционирования ДУ, которую дают описанные выше функциональные модели , является недостаточной для решения проблем генерации тестов и моделирования. При разработке алгоритмов генерации тестов и моделирования чаще используется структурная модель цифрового устройства, отражающая, кроме логики функционирования ДУ, связи между его компонентами и внешней средой. В качестве структурной модели ДУ, как правило, используется правильная логическая сеть. Логическая сеть или схема - это ориентированный граф, вершинами которого являются логические элементы, входы, выходы и узлы разветвления. Направленные дуги графа отображают соединения сети. Правильная логическая сеть - это сеть, у которой выходы никаких двух элементов не соединены вместе и каждая из функций, реализуемых на выходах ДУ, может быть представлена как функция выхода конечного автомата. Основу сети составляют логические элементы двух типов:

  1. элементы, функционирование которых описывается булевыми функциями;
  2. элементы памяти, функционирование которых описывается моделью конечного автомата.

Внешнее описание схемы

Структурная модель ДУ может быть представлена, например, с помощью простого специализированного языка описания схемы международного каталога ISCAS-89 [6], который позволяет описывать ее входы и выходы, компоненты и связи между ними.

На рис.2.8 представлена логическая схем s27 из каталога ISCAS-89 , описание которой на этом языке приведено на рис.2.9 (сравнив эти рисунки легко освоить данный язык для текстового ввода). Из рис. 2.8 видно, что описание схемы начинается с комментариев (в первой позиции стоит символ ‘#‘), содержащих сведения о схеме: число внешних входов, число внешних выходов и D-триггеров, число вентилей по типам. Далее следуют строки описания для каждого элемента схемы, включая внешние входы и выходы. Каждая строка описания содержит:

  1. имя элемента (для внешних входов INPUT, а для внешних выходов OUTPUT);
  2. знак равенства "=" для логических вентилей;
  3. тип вентиля для логических вентилей;
  4. перечисленные в скобках имена вентилей-предшественников данного элемента, которые позволяют сразу определить количество входов данного вентиля.
Графическое описание схемы S27.

Рис. 2.8. Графическое описание схемы S27.

Допускаются следующие типы вентилей:

  1. DFF – D-триггер, описание триггеров должно идти непосредственно за описанием внешних входов и выходов схемы;
  2. AND - вентиль И;
  3. NAND - вентиль НЕ-И;
  4. OR - вентиль ИЛИ;
  5. NOR - вентиль НЕ-ИЛИ;
  6. XOR - вентиль сумма по mod2;
  7. XNOR - вентиль равнозначность;
  8. BUFF - буфер (повторитель).

Часто в структурных моделях применяются макроэлементы. При этом элемент описывается в теле макроса, которое используется далее на более высоком уровне. Как правило, допускается несколько уровней вложения, что позволяет использовать иерархический подход к описанию схем.

Кроме связей элементов, в некоторых языках описания может быть представлена информация о временных задержках элементов. Например, это может быть сделано следующим образом:

G12 = NOR(G1, G7) delay 20

Это утверждение показывает величину задержки распространения сигнала от входов к выходу данного логического вентиля в некоторых единицах. Текстовое описание схемы S27

# 4 inputs G6 = DFF(G11)
# 1 outputs G7 = DFF(G13)
# 3 D-type flipflops G14 = NOT(G0)
# 2 inverters G17 = NOT(G11)
# 8 gates (1 ANDs + 1 NANDs + G8 = AND(G14, G6)
2 ORs + 4 NORs) G15 = OR(G12, G8)
INPUT(G0) G16 = OR(G3, G8)
INPUT(G1) G9 = NAND(G16, G15)
INPUT(G2) G10 = NOR(G14, G11)
INPUT(G3) G11 = NOR(G5, G9)
OUTPUT(G17) G12 = NOR(G1, G7)
G5 = DFF(G10) G13 = NOR(G2, G12)

Свойства структурных моделей

Как было показано выше, структурная модель представляется ориентированным графом, в котором элементы и связи схемы отображаются соответственно в вершины и дуги графа. Внешние входы и выходы схемы при этом отображаются в специальные вершины. Поэтому для исследования свойств структурной модели схемы можно использовать методы теории графов. Например, на рис.2.9 а), б) приведена схема и ее представление ориентированным графом. Отметим, что в данной схеме каждая дуга соединяет только две вершины (сигнал с выхода любого элемента поступает на вход только одного элемента - преемника). Эти схемы не содержат разветвлений (fan out free circuits). Граф такой схемы является деревом.

Представление древовидной схемы графом

Рис. 2.9. Представление древовидной схемы графом

Схема с разветвлениями представляется двудольным ориентированным графом, который является более общей моделью по сравнению с древовидной структурой. Здесь элементы и связи отображаются в вершины графа таким образом, что каждая дуга соединяет вершину, отображающую элемент схемы, с вершиной, соответствующей связи этого элемента. На рис.2.10 для примера показан такой граф [ 2.7 ] . Здесь вершины, соответствующие связям, отмечены знаком \bigotimes. Такая модель позволяет представлять схемы с элементами, имеющими несколько выходов, и является более общей.

Двудольный граф схемы

Рис. 2.10. Двудольный граф схемы

Следует отметить, что наличие сходящихся разветвлений (reconvergent), как мы увидим дальше в "Машинные модели логических схем и управление процессом моделирования " , существенно осложняет построение тестов. На нашем примере рис. 2.10имеется сходящееся разветвление, содержащее два пути, которое соединяет вершины ERD и B1. В схемах, состоящих из простейших вентилей И, ИЛИ, НЕ-И, НЕ-ИЛИ, НЕ, часто используется понятие четности инверсий пути, которое определяется четностью (суммой по mod2) числа инвертирующих вентилей вдоль данного пути.

Уровень логического элемента в комбинационной схеме определяется как мера расстояния этого элемента от внешних входов. При этом внешним входам присваивается уровень, равный 0. Далее уровень l(i) элемента i, на входы которого поступают сигналы с выходов элементов k_1,k_2,…,k_p, определяется следующим образом l(i)=1+\underset j \max l(k_j)

В последовательностной схеме , для вычисления уровней элементов сначала производится условный обрыв линий обратных связей и получившимся псевдовходам присваивается уровень, равный 0. Уровни остальных элементов вычисляются по той же формуле. Для примера на рис.2.11 представлена последовательностная схема , в которой уровень 1 имеют элементы E, D, J; уровень 2F, K; уровень 3G; уровень 4W.

 Ранжированная последовательностная схема

Рис. 2.11. Ранжированная последовательностная схема

Иногда вместо явного вычисления уровней используется упорядочивание и нумерация элементов в соответствии с их расстоянием от внешних входов. При этом для любых элементов с номерами i_1<i_2 если l(i_1)\leqslant\l(i_2).

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Дмитрий Медведевских
Дмитрий Медведевских

Добрый день  можно поинтересоваться где брать литературу предложенную в курсе ?Большинство книг я не могу найти  в известных источниках