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

Модели логических элементов

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Аннотация: В лекции рассмотрены модели логических элементов в различных в двоичном и многозначных алфавитах. Введены табличные и функциональные модели элементов в различных алфавитах. Определены различные модели задержки для элементов.

Модели логических элементов в двоичном алфавите

Моделирование ДУ в конечном счете сводится к моделированию функций отдельных логических элементов, которые используются программой супервизором. Моделирование одного комбинационного логического элемента есть вычисление значений его выходных переменных по заданным входным значениям. Для элемента с памятью необходимо вычислить значения его выходов и переменных следующего состояния по заданным входным значениям и текущему состоянию. Метод вычисления зависит от многих факторов, таких как тип элемента, алфавит моделирования системы, способ хранения входных значений и т.п. [ 2.4 ] .

Таблицы истинности

Сначала рассмотрим модели логических элементов в двоичном алфавите. Простейшей моделью логического элемента комбинационного базиса в двоичном алфавите является табличная модель, реализующая его таблицу истинности, рассмотренная в "Модели цифровых устройств" . Пусть значения булевой функции хранятся в одномерном битовом массиве V[i]. При вычислении значения выхода с помощью таблицы истинности необходимо выполнить следующие действия:

  1. сформировать из двоичных значений входов одно двоичное слово;
  2. перевести это двоичное слово в целое число – i;
  3. определить значение выхода z=y[i].

Рассмотрим для примера таблицу истинности вентиля И с тремя входами, представленную в табл.4.1.

При этом в памяти компьютера хранятся только значения функции (столбец Y для нашего примера). Вычисление значения выхода элемента по данным значениям входов сводится к получению индекса и выборке с его помощью нужного значения. Пусть для определенности в нашем примере входные значения x_1=1,x_2=0,x_3=1 дают индекс i=101_2=5_{10} массива Y; таким образом, получаем Y[5]=0. Несмотря на свою простоту, это очень эффективный и быстрый метод вычисления. Но, очевидно, при увеличении числа входов он требует больших затрат памяти.

Таблица 4.1.
a b c Y
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1

Таблицы zoom

При использовании таблиц истинности в моделировании необходимо сначала определить тип соответствующего логического элемента. Поэтому определение типа элемента и собственно вычисление выходного значения выполняются в два этапа. Эти два шага можно объединить в один следующим образом [ 2.5 ] . Пусть t является номером типа элемента и S - максимальный размер таблицы истинности (для всех типов). Тогда можно построить таблицу zoom размера t \times S, в которой хранятся t таблиц истинности, которые начинаются с позиции 0, S,…, (t-1)S. Для вычисления значения выхода элемента с использованием такой таблицы необходимо упаковать тип элемента и значения его входов в одно слово, которое определяет индекс в таблице zoom, как это показано на рис.4.1.

Применение zoom таблиц позволяет значительно ускорить процесс вычислений, поскольку заменяет последовательность вычислений одним шагом выборки необходимого значения.

Программные функциональные модели

Очень распространенным методом построения моделей является составление программы с помощью логических операторов языка высокого уровня (например, C) или ассемблера непосредственно по логическому выражению булевой функции или логической схеме, построенному с помощью операций конъюнкции, дизъюнкции и отрицания (иногда и \oplus).

Zoom таблица

Рис. 4.1. Zoom таблица

В отличие от предыдущих табличных методов, в которых модель элемента представлена фактически структурой данных, а сама программа вычисления значения выхода является универсальной, здесь модель элемента представляется непосредственно программой (и она уникальна для каждого типа элемента). Часто программная модель компилируется на основе структурной модели автоматически. Рассмотрим этот метод на примере схемы, представленной на рис.4.2.

С использованием языка программирования С эта схема моделируется следующим образом:


E=A\&B;\\
F=!(C\&D);\\
Y=E\mid\mid F;
Пример схемы

Рис. 4.2. Пример схемы

Эта программа компилируется в машинный код и далее используется при моделировании путем вызова соответствующей функции.

С применением ассемблера модель этой схемы (представляющей логический элемент) имеет следующий вид.


\text{LDA A    /*  загрузка сумматора А */}\\
\text{AND B    /*  вычисление A\&B*/}\\
\text{STA E      /*  запоминание  E*/}\\
\text{LDA C     /*  загрузка сумматора C */}\\
\text{AND D     /*  вычисление C\&D*/}\\
\text{INV           /*   инвертирование  C\&D  */}\\
\text{OR  E        /*  вычисление  }E\vee \overline{C\&D}*/\\
\text{STA Y      /*  запоминание  выхода Y */}

Алгоритмические функциональные модели

При этом подходе функционирование элемента задается с помощью некоторого алгоритма. Например, для вентиля И y=x_1 \& x_2 \& x_3 это можно сделать следующим образом:


\text{если x1= 0, то y = 0;}\\
\text{если x2= 0, то y = 0;}\\
\text{если x3= 0, то y = 0;}\\
\text{иначе y = 1.}

Этот метод широко используется на функциональном уровне ЯРП поскольку позволяет, например, описать систему команд микропроцессора.

При построении моделей логических элементов применяются также альтернативные графы (двоичные диаграммы) и т.п.

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Дмитрий Медведевских
Дмитрий Медведевских

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

Артур Гибадуллин
Артур Гибадуллин
Россия, г. Нижневартовск