Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KL_kur_met

.pdf
Скачиваний:
5
Добавлен:
26.03.2015
Размер:
352.15 Кб
Скачать

1

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ ТЕХНОЛОГІЧНИЙ ІНСТИТУТ

СХІДНОУКРАЇНСЬКОГО НАЦІОНАЛЬНОГО УНІВЕРСИТЕТУ ІМЕНІ ВОЛОДИМИРА ДАЛЯ (М. СЄВЄРОДОНЕЦЬК)

МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ КУРСОВОГО ПРОЕКТУ

ЗА ДИСЦИПЛІНОЮ " КОМП'ЮТЕРНА ЛОГІКА "

Для студентів денної і заочної форми навчання напряму підготовки 6.050102 "Комп'ютерна інженерія"

(електронне видання)

Сєвєродонецьк, 2013р

2

ВВЕДЕНИЕ

Настоящий курсовой проект по курсу ПТЦА предполагает практическое применение теоретических знаний студентов, полученных при изучении курса.

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

Курсовой проект выполняется по индивидуальному заданию, представленному руководителем проекта. Исходными данными для каждого задания являются:

-сокращенная таблица переходов и выходов абстрактного автомата;

-тип триггера, который будет использоваться в запоминающей части цифрового автомата.;

-типы используемых логических элементов.

Пример исходных данных приведен в разделе 2(типы логических элементов – в разделе 7).

1. СОДЕРЖАНИЕ КУРСОВОГО ПРОЕКТА

Курсовой проект выполняется в следующем порядке:

1.По заданному сокращенному описанию составляется таблица переходов и выходов абстрактного автомата.

2.Производится минимизация числа внутренних состояний автомата с применением алгоритма Ауфенкампа-Хона, строится граф переходов автомата.

3.Строятся сокращенные и полные таблицы переходов триггеров и соответствующие им матрицы переходов триггеров.

4.Выполняется кодирование входных и выходных алфавитов автомата двоичными кодами. Строятся таблицы переходов и выходов структурного автомата, а также таблицы формирования функций возбуждения элементов памяти и функций выходов автомата.

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

6.Строится функциональная схема автомата в заданном функциональном базисе. Курсовой проект должен содержать:

- титульный лист; - техническое задание; - реферат; - содержание;

- перечень условных обозначений (при необходимости); - введение; - основную часть; - заключение;

- список использованных источников;

графическая часть - граф переходов автомата и схему электрическую функциональную. Пояснительная записка выполняется в соответствии с ГОСТ. Графическая часть

выполняется на листах формата А3 или А2. Схема электрическая функциональная выполняется в соответствии с требованиями ГОСТ 2.743-82 и ГОСТ 2.708-81.

3

2.ПРИМЕР ИСХОДНЫХ ДАННЫХ

2.1Сокращенная запись таблицы переходов автомата представлена в таблице 2.1.

 

 

 

 

 

Таблица 2.1

 

 

 

у1

у2

у3

у4

у1

у2

у3

у4

у1

у2

А

а1

а2

а3

а4

а5

а6

а7

а8

а9

а10

х1

2

3

6

4

7

5

4

9

7

2

х2

5

1

3

6

10

9

8

10

9

3

х3

7

4

5

2

8

8

1

3

10

5

В таблице 2.1 первая строка – выходные сигналы автомата У = {yi}, вторая строка – состояния автомата А = {aj}, оставшиеся строки соответствуют номерам состояний, в которые переходит автомат под воздействием входных сигналов x1, x2, x3.

2.2 Пример задания типа триггера представлен таблицей 2.2. Методика построения таблиц и матриц переходов триггера для данного примера приведена в разделе 4.. Руководителем проекта может быть задан стандартный тип используемого триггера (D, T,

RS, JK, RST, D , J K ,).

Таблица 2.2

Входы

 

Выход

Х

У

Q

0

0

0

0

1

Q(t)

1

0

Q(t)

1

1

1

3. МИНИМИЗАЦИЯ ЧИСЛА ВНУТРЕННИХ СОСТОЯНИЙ АБСТРАКТНОГО АВТОМАТА

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

Процедура минимизации (алгоритм Ауфенкампа-Хона) подробно изложена в [1]. В приложении 1 к данным методическим указаниям изложено краткое содержание этой процедуры.

4.ПОСТРОЕНИЕ ТАБЛИЦ И МАТРИЦ ПЕРЕХОДОВ ТРИГГЕРА

4.1Табличный вариант задания типа триггера (пример для триггера, заданного таблицей 2.2)

Строится сокращенная таблица переходов с двумя информационными входами (табл. 4.1) и полная таблица переходов асинхронного триггера с двумя информационными входами Х и У (табл. 4.2).

При построении таблиц переходов синхронного триггера (дополнительно к входам Х и У вводится вход синхронизации С), следует иметь ввиду, что при С=0 внутреннее состояние триггера не изменяется независимо от состояний входов Х и У, т.е. Q(t+1)=Q(t), а

4

при С=1 синхронный триггер функционирует как соответствующий асинхронный. С учетом этого получаем сокращенную (табл. 4.3) и полную (табл. 4.4) таблицы переходов синхронного триггера.

Триггер имеет четыре возможные варианта переходов: “0-0”, “0-1”, “1-0”, “1-1”. Из таблицы 4.2 видим, что этим переходам соответствуют следующие комбинации сигналов Х и У (таблица 4.5).

Таблица 4.1

 

 

 

 

Таблица 4.2

 

 

 

Таблица 4.3

 

 

 

 

 

t

(t+1)

 

 

 

 

 

 

 

 

 

 

 

t

 

t+1

 

 

t

 

 

t+1

Х

 

У

 

Q

 

 

 

 

 

 

 

 

 

 

X

У

Q

Q

 

С

Х

У

 

Q

0

 

0

0

 

 

 

 

 

 

 

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

Q(t)

0

 

1

 

Q(t)

 

 

 

 

 

 

0

0

1

0

 

 

 

 

 

 

 

 

 

 

 

0

0

1

 

Q(t)

1

 

0

 

 

 

 

 

 

 

Q(t)

 

 

0

1

0

0

 

 

 

 

 

 

 

 

 

 

0

1

0

 

Q(t)

1

 

1

1

 

 

 

 

 

 

 

0

1

1

1

 

 

 

 

 

 

 

 

 

0

1

1

 

Q(t)

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

 

 

 

 

 

 

 

 

1

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

 

Q(t)

 

 

 

 

 

 

 

1

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

Q(t)

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 4.4

 

 

 

 

 

 

t

 

t+1

С

X

 

У

Q

Q

0

0

 

0

0

0

0

0

 

0

1

1

0

0

 

1

0

0

0

0

 

1

1

1

0

1

 

0

0

0

0

1

 

0

1

1

0

1

 

1

0

0

0

1

 

1

1

1

1

0

 

0

0

0

1

0

 

0

1

0

1

0

 

1

0

0

1

0

 

1

1

1

1

1

 

0

0

1

1

1

 

0

1

0

1

1

 

1

0

1

1

1

 

1

1

1

Таблица 4.5

 

 

Q(t)

Q(t+1)

X

У

0

0

0

0

 

 

0

1

0

1

1

0

 

 

 

 

 

 

1

1

1

0

0

0

 

 

1

0

1

1

0

1

 

 

1

1

Таким образом:

1.Для перехода “0-0” Х=0, У может быть равен 0 или 1

2.Для перехода “0-1” Х=1, У может быть равен 0 или 1

3.Для перехода “1-0” Х может быть равен 0 или 1, а У=0.

4.Для перехода “1-1” Х может быть равен 0 или 1, а У=1. Тогда матрица переходов триггера запишется в виде:

5

0 - 0

0

b1

0 - 1

1

b2

1 - 0

b3

0

1 - 1

b4

1

где b1, b2, b3, b4 - произвольные сигналы (0 или 1)

Установление взаимозависимости между входными переменными триггера является обязательным условием, обеспечивающим возможность максимального упрощения схем с памятью.

4.2 Тип используемого триггера (D, T, RS, JK, RST, D , J K ,) задается руководителем проекта.

5. КОДИРОВАНИЕ АВТОМАТА

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

Для кодирования входных сигналов выписывается множество входных сигналов

Х={х1, х2 ... хМ}, которые кодируем векторами длины Квх= int (log2М), где int - округление до ближайшего большего целого числа, М - мощность (количество символов) входного

алфавита. Кодирование входных сигнал осуществляется произвольно.

Выходные сигналы автомата У={у1, у2, …уS} кодируем вектором длины Квых= int(log2S), где S - мощность выходного алфавита. Для кодирования выходных сигналов применяется весовой алгоритм [1].

1.Каждому выходному сигналу уі ставится в соответствие целое число Рі, равное числу появлений сигнала уі в таблице выходов автомата.

2.Числа Рі сортируются по убыванию.

3.Выходной сигнал уі с наибольшим весом (Рі max) кодируются кодом, содержащим все 0 (00...00).

4.Следующие L выходных сигналов (где L- число разрядов в двоичном векторе выходного сигнала) по списку убывания веса (см п. 2) кодируются кодами, содержащими одну 1 (00...01, 00...10, ... ,10...00)

5.Для кодирования следующих по списку убывания выходных сигналов используются все коды, содержащие две единицы, затем три единицы и т.д., пока не будут закодированы все выходные сигналы.

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

Состояния автомата А={а1, а2 ... аR} кодируем вектором длины Ксост= int(log2R), где R - мощность алфавита состояний. Отметим, что длина вектора кода состояния определяет и

количество элементов памяти (триггеров) данного автомата.

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

6

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

Д.А. Морозом предложен эвристический алгоритм кодирования внутренних состояний автоматов, основанный на минимизации суммарного числа изменений состояний элементов памяти автомата на всех переходах автомата [1].

При таком критерии уменьшается сложность схем, реализующих дизъюнкции на входах элементов памяти, т.е. минимизируется комбинационная схема автомата. Для оценки кодирования вводится коэффициент эффективности кодирования: Кэф= W/P; где P - общее количество переходов автомата,

W - весовая функция : W= t ij ,

где tij - расстояние Хэмминга между кодами состояний ai и aj, равное числу элементов памяти, изменяющих свое состояние на данном переходе.

Отметим, что при определении весовой функции суммирование производится по всем переходам автомата. Коэффициент эффективности позволяет оценить сложность комбинационной схемы автомата: чем меньше его значение, тем меньше сложность комбинационной схемы, и оптимальный вариант - Кэф=1.

Эвристический алгоритм кодирования состояний приведен в Приложении 2 Кодирование состояний автомата производится с применением эвристического

метода кодирования.

.

6. ФОРМИРОВАНИЕ ФУНКЦИЙ ВОЗБУЖДЕНИЯ И ФУНКЦИЙ ВЫХОДА АВТОМАТА

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

реализующей переключательные функции:

 

Для автомата Мура:

Для автомата Мили:

wn=wn1, α2,... αк)

wn=wn1, α2,... αк,z1, z 2,... z r)

φii1, α

2,... αк,z1,z2,...zr).

φii1, α2,... αк , z1, z 2,... z r).

где wn- функция выходов автомата;

φi - функция возбуждения элементов памяти;

α - функция обратной связи от элементов памяти к комбинационной схеме; z - кодированные входные сигналы.

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

В качестве примера рассмотрим автомат Мура, заданный таблицей переходов и выходов (таблица 6.1.).

7

Таблица 6.1.

 

у1

у3

у2

у3

у4

у2

у1

А

а1

а2

а3

а4

а5

а6

а7

х1

2

3

6

2

3

2

7

х2

4

7

5

4

6

4

1

Выполним кодирование алфавитов автомата, применив для этого следующие методы: для входных - произвольный, для выходных сигналов и состояний - весовой. Результаты кодирования представлены в таблицах 6.2.-6.5.

Определим длину векторов кодов всех алфавитов автомата:

Квх= int log2 2=1, Квых= int log2 4=2, Ксост= int log2 7=3.

Таблица 6.2.

 

Таблица 6.3.

 

 

 

X

 

z

 

 

 

 

 

 

 

 

Y

w1

w2

Р

 

х1

 

0

 

 

 

 

у1

0

0

2

 

х2

 

1

 

 

 

 

у2

0

1

2

 

 

 

 

 

 

 

 

 

 

у3

1

0

2

 

 

 

 

 

у4

1

1

1

Таблица 6.4.

А а1 а2 а3 а4 а5 а6 а7

Р

1

3

2

3

1

2

2

Таблица 6.5.

 

 

 

 

α1

 

α2

α3

Р

а2

0

 

0

0

3

а4

0

 

0

1

3

а3

0

 

1

0

2

а6

1

 

0

0

2

а7

1

 

1

0

2

а1

1

 

0

1

1

а5

0

 

1

1

1

С учетом принятого кодирования строим таблицу переходов и выходов структурного автомата (Таблица 6.6.).

Таблица 6.6.

У

 

 

 

w1w2

11

 

 

00

10

01

10

01

00

Аα1 α 2 α3

z

101

000

010

001

011

100

110

0

000

010

100

000

010

000

110

1

001

110

011

001

100

001

101

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

От таблицы 6.6, используя матрицу переходов триггера, перейдем к таблице 6.7, которая представляет собой систему булевых функций, записанную в табличном виде.

8

 

 

 

 

 

 

Таблица 6.7.

 

 

 

 

 

 

 

 

Исход. сост. Вх.

Сост. перех.

Т1

Т2

Т3

 

У

А α1 α2 α3

z α1 α2 α3 X1 У1 X2 У2 X3 У3 w1 w2

а1

1

0

1

0

0

0

0

b3

0

0

b1

b3

0

0

0

 

 

 

 

1

0

0

1

b3

0

0

b1

b3

0

 

 

а2

0

0

0

0

0

1

0

0

b1

1

b2

0

b1

1

0

 

 

 

 

1

1

1

0

1

b2

1

b2

0

b1

 

 

а3

0

1

0

0

1

0

0

1

b2

b3

0

0

b1

0

1

 

 

 

 

1

0

1

1

0

b1

b4

1

1

b2

 

 

а4

0

0

1

0

0

0

0

0

b1

0

b1

b3

0

1

0

 

 

 

 

1

0

0

1

0

b1

0

b1

b4

1

 

 

а5

0

1

1

0

0

1

0

0

b1

b4

1

b3

0

1

1

 

 

 

 

1

1

0

0

1

b2

b3

0

b3

0

 

 

а6

1

0

0

0

0

0

0

b3

0

0

b1

0

b1

0

1

 

 

 

 

1

0

0

1

b3

0

0

b1

1

b2

 

 

а7

1

1

0

0

1

1

0

b4

1

b4

1

0

b1

0

0

 

 

 

 

1

1

0

1

b4

1

b3

0

1

b2

 

 

Примечание: в таблице 6.7. Х1, У1, Х2, У2, Х3, У3 - функции возбуждения элементов памяти по входам Х1, ... У3 соответственно.

Из таблицы 6.7. необходимо получить канонические уравнения. Для этого, учитывая большое количество сигналов, требующих доопределения, значения функций возбуждения триггеров запишем в виде карт Карно. Для минимизации канонических выражений применяют правила минимизации неполностью определенных булевых функций.

Минимизация представлена на рис.6.1.-6.8.

2 3

00

01

11

10

2 3

00

01

11

10

1

1

0

1

1

1

0

0

0

0

1

1

1

0

0

*

0

1

1

0

*

0

w1

 

 

 

2

 

1 3

 

 

 

w2

 

1 2 1

 

2

 

3

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.6.1

Минимизация функции w1

Рис. 6.2 Минимизация функции w2

α2α3

00

 

01

11

10

 

 

 

 

 

 

 

 

z1 α1

 

 

 

 

 

 

 

 

 

00

 

0

 

0

0

1

 

 

 

 

 

 

 

 

01

 

b3

b3

*

b4

 

 

 

 

 

 

 

 

11

 

b3

b3

*

b4

 

 

 

 

 

 

 

 

10

 

1

 

0

1

0

 

 

 

 

 

 

 

 

Рис. 6.3

Минимизация функции Х1.

 

 

 

 

 

 

 

α2α3

00

 

01

11

10

 

 

 

 

 

 

 

 

z1 α1

 

 

 

 

 

 

 

 

 

00

 

b1

b1

b2

b2

 

 

 

 

 

 

 

 

01

 

0

 

0

*

1

 

 

 

 

 

 

 

 

11

 

0

 

b1

*

1

 

 

 

 

 

 

 

 

10

 

b2

b1

0

b1

 

 

 

 

 

 

 

 

Рис. 6.4 Минимизация функции У1.

9

α2α3

00

01

11

10

 

z1 α1

 

00

1

0

b4

b3

 

01

0

0

*

b4

 

11

0

0

*

b3

 

10

1

0

b3

b4

 

Рис. 6.5

Минимизация функции Х2

α2α3

00

01

11

10

 

z1 α1

 

00

b2

b1

1

0

 

01

b1

b1

*

1

 

11

b1

b1

*

0

 

10

b2

b1

0

1

 

Рис. 6.6

Минимизация функции У2.

α2α3

00

01

11

10

 

z1 α1

 

00

0

b3

b3

0

01

0

b3

*

0

11

1

b3

*

1

10

0

b4

b3

1

Рис. 6.7 Минимизация функции Х3.

α2α3

00

01

11

10

z1 α1

00

b1

0

0

b1

01

b1

0

*

b1

11

b2

0

*

b2

10

b1

1

0

b2

Рис. 6.8 Минимизация функции У3.

Рассмотрим вариант доопределения: b1=b2=b3=b4=0. В этом случае канонические выражения примут вид:

X1 z

 

 

1

 

 

 

2

 

 

3 z 2 3

 

 

 

1 2

 

3

Y1 1 2

 

 

 

z

 

 

X 2

 

 

 

 

 

 

 

 

 

 

Y2 z

 

 

1 2

 

3

 

2 3

 

1 2

 

 

1

 

 

 

2

 

 

 

3

 

 

 

 

z

z

 

 

 

X 3 z 1

 

3 z 2

 

 

Y3 z

 

1

 

2 3

 

 

 

 

3

 

 

 

 

В общем случае, при минимизации необходимо рассмотреть все возможные варианты доопределения bі и выбрать оптимальный, т.е. тот, который дает минимальные значения функций. В случае использования стандартного триггера, нет необходимости в доопределении bі.

7. ПОСТРОЕНИЕ ФУНКЦИОНАЛЬНОЙ СХЕМЫ АВТОМАТА

При построении функциональной схемы автомата будем пользоваться следующими базисами:

1.Элементы И, ИЛИ, НЕ. Количество входов элементов И, ИЛИ - от 2 до 4-х. Нагрузочная способность всех элементов - до 10.

2.Элементы И-НЕ. Количество входов - от 2 до 6. Нагрузочная способность - до 10.

10

3. Элементы ИЛИ-НЕ. Количество входов - от 2 до 6. Нагрузочная способность - до

10.

Тип используемых логических элементов задается руководителем.

Существуют различные способы реализации устойчивой работы автоматов [2]. Повидимому, наиболее надежным способом является устранение “гонок” путем разделения во времени процесса выработки сигналов возбуждения и процесса переключения состояний. Такого рода разделение достигается использованием двухступенчатой памяти.

Рассмотрим процесс построения функциональной схемы автомата на элементах И, ИЛИ, НЕ.

Заданная система булевых функций (функций выхода и функций возбуждения элементов памяти) анализируется на наличие общих частей. С помощью инверторов формируются инверсные значения входных сигналов (инверсные значения сигналов обратной связи с запоминающих элементов получают с инверсных выходов триггеров). На элементах И реализуются конъюнкции, входящие в булевы функции. Если количество переменных, входящих в конъюнкцию, превышает количество входов элемента, используется двухступенчатая схема включения (рис. 7.1). Общие части реализуются на отдельных элементах (рис. 7.2), т.е. общая часть заменяется новой условной переменной.

В соответствии с выражением булевой функции сигналы с выходов элементов И подаются на входы элементов ИЛИ для реализации дизъюнкции. Как и в предыдущем случае, могут использоваться общие части, двухступенчатые схемы. Если нагрузка на элемент превышает его нагрузочную способность, используются дублирующие элементы

(рис. 7.3).

После реализации комбинационной схемы производится синтез функциональной схемы автомата. На рис. 7.5 показана функциональная схема автомата Мура, заданного таблицей 6.1.

1

 

2

 

3

 

4

Y

5

 

1

1

2

 

3

1

 

4

1

 

Рис. 7..2 Двухступенчатая

Рис. 7.3 Выделение общей

схема “И”

части

 

1

 

1

а)

б)

Рис. 7.4. а), б) Повышение нагрузочной способности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]