Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
схемотехника / Сборник лаб работ 2006.pdf
Скачиваний:
135
Добавлен:
27.03.2016
Размер:
2.05 Mб
Скачать

СИНТЕЗ СИНХРОННЫХ СЧЕТЧИКОВ

Рис. 4.2. Обобщенная схема логической структуры счетчика

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

Сигналы с выходов триггеров поступают на входы комбинационной схемы, которая преобразует поступившую информацию. Сигналы с выходов комбинационной схемы подаются на логические входы триггеров. Преобразованная информация не воспринимается триггерами до тех пор, пока на синхронизирующие входы триггеров не поступит считаемый сигнал. Информация, находящаяся на входах каждого триггера, так сформирована комбинационной схемой, чтобы с приходом очередного считаемого сигнала осуществить переход счетчика из текущего состояния в следующее. Функции возбуждения входов i-го триггера можно записать в виде:

E1(t) = f1[Q1(t), Q2(t), ... ,Qn(t)] , E2(t) = f2[Q1(t), Q2(t), ... ,Qn(t)] .

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

97

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

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

Матрица переходов триггера

Закон функционирования любого триггера можно задать с помощью матрицы переходов [1]. Число строк матрицы переходов для любого триггера равно четырем, что определяется числом возможных переходов триггера из одного состояния в другое, а количество столбцов — числу логических входов триггера:

Q(t)

Q(t +1)

E1

E2

...

Em

0

0

 

a100

a002

...

a00m

 

 

 

 

0

1

 

a101

a012

...

a01m

 

 

1

0

 

a1

a 2

...

a m

 

 

 

 

 

 

10

10

 

10

 

 

1

1

 

a1

a 2

...

a m

 

 

 

 

 

 

11

11

 

11

 

 

Элемент матрицы

ai

представляет собой значение

 

 

Q(t)Q(t+1)

 

 

 

 

 

 

входного сигнала Ei, под воздействием которого триггер переходит из состояния Q(t) в состояние Q(t+1). При этом каждый элемент матрицы может быть равен единице, нулю или являться неопределенным коэффициентом, если значение сигнала на входе не влияет на данный переход триггера.

Матрицу переходов триггера составляют по таблице переходов этого триггера.

98

Матрица переходов DV-триггера

Рассмотрим на примере DV-триггера процесс составления матрицы переходов. Из таблицы переходов DV-триггера (см. лабораторную работу 3) найдем значения входных сигналов D и V, которые вызывают переход триггера из состояния Q(t) = 0 в состояние Q(t+1) = 0. Ими являются следующие три пары сигналов: D = 0, V = 0; D = 0, V = 1 и D = 1, V = 0.

Положим, что переменная D принимает произвольное значение (0 или 1), тогда переменная V зависит от значения D. Если D = 0, то переменная V может быть равна как 0, так и 1; если же D = 1, то переменная V обязательно должна быть равна нулю.

Эту зависимость можно отразить в матрице переходов следующим образом. В столбце D первой строки запишем а1, а в столбце V — логическое произведение a1b1 , где а1 и b1 неопре-

деленные коэффициенты, которые могут принимать значение как 0, так и 1.

Примечание. Рассуждение можно было провести иначе. Пусть переменная V принимает произвольное значение, тогда переменная D зависит от значения V. В этом случае элементами первой строки матрицы будут a1b1 и а1. Обе возможности заполнения первой

строки матрицы являются равнозначными, поэтому остановимся на первом варианте.

Переход типа «0-1» происходит при подаче на входы сигналов D = 1 и V = 1, а переход типа «1-0» — под воздействием сигналов D = 0 и V = 1. Эти значения сигналов являются элементами второй и третьей строк матрицы соответственно.

Наконец, переход типа «1-1» вызывается следующим сигналами: D = 0, V = 0; D = 1, V = 0 и D = 1, V = 1. Если положим, что переменная D принимает произвольное значение (0 или 1), то переменная V зависит от значения D. Если D = 0, то значение переменной V должно быть равно 0, а если D = 1, то переменная V может принимать произвольное значение.

Таким образом, если в столбце D элемент четвертой строки матрицы положить равным а2, то в столбце V этой строки необходимо записать логическое произведение a2b2.

99

Закон функционирования DV-триггера, описанный с помощью матрицы переходов, имеет следующий вид:

 

 

 

 

D

V

0

0

 

a1

a1b1

 

0

1

 

1

1

1

0

 

0

1

1

1

 

a2

a2b2

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

Матрица переходов JK-триггера

Аналогично получают матрицу переходов для JK-триггера:

 

 

 

 

J

K

0

0

 

0

a1

 

0

1

 

1

a2

1

0

 

a3

1

1

1

 

a4

0

Рассмотрим метод синтеза синхронных счетчиков на примере проектирования двоично-десятичного счетчика.

ПРИМЕР

Спроектировать двухразрядный двоично-десятичный счетчик на сложение с системой кодирования 2421 (2, 4, 2, 1 — веса двоичных разрядов). Один десятичный разряд построим на DV-триггерах, другой — на JK-триггерах. В данной системе кодирования каждая десятичная цифра представляется четырехразрядным двоичным эквивалентом, как показано в табл. 4.1.

100

 

 

Двоично-десятичный код 2421

Таблица 4.1

 

 

 

 

 

 

 

 

 

 

 

 

Десятичные

Двоичный эквивалент в коде 2421

Номера двоичных

 

цифры

2

 

4

2

1

наборов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0

0

0

0

 

 

 

 

 

 

 

 

 

1

0

 

0

0

1

1

 

 

 

 

 

 

 

 

 

2

0

 

0

1

0

2

 

 

 

 

 

 

 

 

 

3

0

 

0

1

1

3

 

 

 

 

 

 

 

 

 

4

0

 

1

0

0

4

 

 

 

 

 

 

 

 

 

5

1

 

0

1

1

11

 

 

 

 

 

 

 

 

 

6

1

 

1

0

0

12

 

 

 

 

 

 

 

 

 

7

1

 

1

0

1

13

 

 

 

 

 

 

 

 

 

8

1

 

1

1

0

14

 

 

 

 

 

 

 

 

 

9

1

 

1

1

1

15

 

 

 

 

 

 

 

 

 

 

Составление функций возбуждения триггеров счетчика

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

Получить кодированную таблицу переходов счетчика просто. Для этого необходимо в одном столбце записать десять двоичных наборов, представляющих в данной системе кодирования все десятичные цифры. Эти состояния отнесем к моменту времени t и будем называть текущим состоянием счетчика. Текущие состояния счетчика записаны в колонках 1-4 табл. 4.2.

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

101

мер, если текущее состояние счетчика Q3, Q2, Q1, Q0 = 0100 (десятичная цифра 4), то новое состояние счетчика, в которое он перейдет, будет равно 1011 (десятичная цифра 5 в системе кодирования 2421). Данные состояния отнесем к моменту времени t+1 и будем называть следующим (будущим) состоянием счетчика. Следующие состояния счетчика записаны в колонках 5-8 табл. 4.2.

Для составления функций возбуждения каждого DV-триггера счетчика воспользуемся его матрицей перехода.

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

a)образовать десятичный номер каждого двоичного набора текущего состояния счетчика, считая двоичную запись состояния счетчика как двоичное число с естественными весами разрядов (см. столбец «Номер набора» в табл. 4.1 и 4.2; заметим, что таким же образом заданы состояния в вариантах задания);

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

Рассмотрим первую строку табл. 4.2. Счетчик из состояния Q3 = 0, Q2 = 0, Q1 = 0, Q0 = 0 должен перейти в состояние Q3 = 0, Q2 = 0, Q1 = 0, Q0 = 1, т.е. для триггеров T3, T2, T1 реализуется переход «0-0», а для триггера T0 — переход «0-1». В соответствии с первой строкой матрицы переходов DV-триггера в столбцах 9, 11, 13 табл. 4.2 необходимо записать а0 , а в столбцах 10, 12, 14 —

a0b0 ; а в соответствии со второй строкой матрицы (переход «0-1»)

встолбцах 15, 16 следует проставить «1».

102

Таблица 4.2

Таблица переходов и функций возбуждения DV-триггеров счетчика

Деся-

Номер

 

Значения выходов триггеров

 

 

 

 

 

Функции возбуждения триггеров

 

 

 

Время, t

 

 

Время,

t+1

 

 

 

 

 

 

 

Время,

t

 

 

 

тичная

набора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цифра

 

Q3

Q2

Q1

Q0

Q3

Q2

 

Q1

Q0

D3

V3

 

D2

V2

D1

V1

D0

V0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

 

7

8

9

10

 

 

11

12

13

14

15

16

0

0

0

0

0

0

0

0

 

0

1

a0

a0b0

 

a0

a0b0

a0

a0b0

1

1

1

1

0

0

0

1

0

0

 

1

0

a1

a1b1

 

a1

a1b1

1

1

0

1

2

2

0

0

1

0

0

0

 

1

1

a2

a2b2

 

a2

a2b2

a2

a2b2

1

1

3

3

0

0

1

1

0

1

 

0

0

a3

a

b

 

1

1

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

3

 

3

 

 

 

 

 

 

 

4

4

0

1

0

0

1

0

 

1

1

1

1

 

 

0

1

1

1

1

1

5

11

1

0

1

1

1

1

 

0

0

a11

a11b11

 

1

1

0

1

0

1

6

12

1

1

0

0

1

1

 

0

1

a12

a12b12

 

a12

a12b12

a12

a12b12

1

1

7

13

1

1

0

1

1

1

 

1

0

a13

a13b13

 

a13

a13b13

1

1

0

1

8

14

1

1

1

0

1

1

 

1

1

a14

a14b14

 

a14

a14b14

a14

a14b14

1

1

9

15

1

1

1

1

0

0

 

0

0

0

1

 

 

0

1

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 4.3

Таблица переходов и функций возбуждения JK-триггеров счетчика

Деся-

Номер

 

Значения выходов триггеров

 

 

 

Функции возбуждения триггеров

 

 

 

Время, t

 

 

Время,

t+1

 

 

 

 

 

Время , t

 

 

 

 

тичная

набора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цифра

 

Q3

Q2

Q1

Q0

Q3

Q2

 

Q1

Q0

J3

K3

 

J2

K2

J1

K1

 

J0

K0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

 

7

8

9

10

 

11

12

13

14

 

15

16

0

0

0

0

0

0

0

0

 

0

1

0

a0

 

0

a0

0

a0

 

1

a0

1

1

0

0

0

1

0

0

 

1

0

0

a1

 

0

a1

1

a1

 

a1

1

2

2

0

0

1

0

0

0

 

1

1

0

a2

 

0

a2

a2

0

 

1

a2

3

3

0

0

1

1

0

1

 

0

0

0

a3

 

1

a3

a3

1

 

a3

1

4

4

0

1

0

0

1

0

 

1

1

1

a4

 

a4

1

1

a4

 

1

a4

5

11

1

0

1

1

1

1

 

0

0

a11

0

 

1

a11

a11

1

 

a11

1

6

12

1

1

0

0

1

1

 

0

1

a12

0

 

a12

0

0

a12

 

1

a12

7

13

1

1

0

1

1

1

 

1

0

a13

0

 

a13

0

1

a13

 

a13

1

8

14

1

1

1

0

1

1

 

1

1

a14

0

 

a14

0

a14

0

 

1

a14

9

15

1

1

1

1

0

0

 

0

0

a15

1

 

a15

1

a15

1

 

a15

1

Во второй строке табл. 4.2 для триггеров Т3, Т2 имеет место переход «0-0», следовательно, в столбцах 9, 11 следует проставить a1 , а в столбцах 10, 12 — a1b1 . Триггер Т1 переходит из состояния 0 в

состояние 1, поэтому в столбцах 13, 14 запишем «1». Для реализации перехода триггера Т0 из состояния 1 в состояние 0 (этому соответствует третья строка матрицы переходов DV-триггера) занесем в столбец 15 второй строки табл. 4.2 нуль, а в столбец 16 — «1».

Подобным образом заполняют остальные строки табл. 4.2.

Составление функций возбуждения каждого триггера десятичного разряда счетчика на JK-триггерах выполняется с использованием матрицы переходов JK-триггера и ничем не отличается от вышеприведенного. Поэтому ограничимся приведением сформированной таблицы переходов и функций возбуждения JK-триггеров счетчика (табл. 4.3).

Минимизация функций возбуждения

Представим функции возбуждения в минимальной дизъюнктивной нормальной форме. Для этого занесем на диаграммы Вейча функции возбуждения триггеров.

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

105

риваемых коэффициентов (рис. 4.5 и 4.6).

Из таблицы переходов десятичного счетчика в коде 2421 видно, что из 16 возможных состояний используются только 10. Остальные шесть являются запрещенными, они никогда не появляются при правильной работе счетчика. Эти состояния 0101, 0111, 1001, 0110, 1000 и 1010 (им соответствуют незаполненные поля диаграмм Вейча). На этих наборах аргументов значения функций можно выбирать произвольно. При этом минимизация функций возбуждения сводится к минимизации не полностью определенных переключательных функций. Отметим на диаграммах Вейча эти состояния символом Х (см. рис. 4.4 и 4.5).

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

При этом необходимо помнить следующее:

a)выбор значений коэффициентов аi и bi осуществляется для каждого триггера независимо от другого триггера;

b)диаграммы Вейча для функций возбуждения входов J и K одного JK-триггера между собой не связаны;

c)диаграммы Вейча для функций возбуждения входов D и V одного DV-триггера взаимозависимы (см. матрицу переходов DV-триггера).

Поясним последнее замечание. В поле одного и того же набора в D- и V-диаграммах Вейча могут быть записаны неопределенные коэффициенты, содержащие одинаковый неопределенный коэффициент. Например, в клетке двенадцатого набора в D-диаграмме записан коэффициент а12, а в V-диаграмме — a12b12 (см. рис. 4.4). В

этом случае, задав, например, в D1-диаграмме коэффициент а12 равным 1, необходимо это значение подставить и в член a12b12 V1-

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

Функции возбуждения триггеров приведены на рис. 4.4 и 4.5.

106

Рис. 4.4. Диаграммы Вейча функций возбуждения DV-триггеров

107

Рис. 4.5. Диаграммы Вейча функций возбуждения JK-триггеров

108

Организация связи между двоично-десятичными счетчиками

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

Для нашего двоично-десятичного счетчика при достижении конечного состояния Q3 Q2 Q1 Q0 = 1111 (последняя цифра в системе кодирования 2421) необходимо сформировать двоичный сигнал декодирования последнего состояния счетчика — ТС (terminal count).

С целью получения минимального выражения функции декодирования последнего состояния занесем на диаграмму Вейча единицу на том наборе, который соответствует десятичной цифре 9 в данном двоично-десятичном коде, а также запрещенные состояния. Остальные клетки диаграммы заполним нулями (рис.4.6). Выполнив покрытие единицы, получим минимальное выражение:

ТС = Q2 Q1 Q0 .

Рис. 4.6. Диаграмма Вейча функции декодирования

Схема двоично-десятичного счетчика, построенного на FDCE- триггерах ПЛИС XC10PC84, приведена на рис. 4.7. FDCE-триггер - это DV-триггер, если принять вход Е за вход V. Временная диаграмма работы счетчика приведена на рис.4. 8.

109

Рис. 4.7. Двоично-десятичный счетчик в коде 2421 на DV-триггерах

110

Рис. 4.8. Временная диаграмма работы двоично-десятичного счетчика в коде 2421 на DV-триггерах

Схема двоично-десятичного счетчика, построенного на JKтриггерах (FJKCE-триггер ПЛИС XC10PC840), и временная диаграмма его работы приведены на рис. 4.9 и 4.10 соответственно.

Используемые триггеры имеют вход сигнала разрешения для синхроимпульсов CE (clock enable). Аналогичный вход имеет и счетчик (см. рис. 4.9). Данный вход разрешения используется для организации переноса при соединении двоично-десятичных счетчиков (рис. 4.11).

Дальнейшее увеличение разрядности двоично-десятичных счетчиков требует организации выходного сигнала переноса CEO (clock enable out) в соответствии с выражением (см. рис. 4.9):

CEO = ТС & CE.

Многоразрядные счетчики получают путем соединения выхода CEO одного разряда с входом CE следующего разряда и объединением входов C и CLR всех счетчиков соответственно.

111

Примечание. По такой схеме реализованы сигналы переноса в счетчиках библиотечного набора элементов системы Xilinx Foundation.

Рис. 4.9. Двоично-десятичный счетчик в коде 2421 на JK-триггерах

112

Рис. 4.10. Временная диаграмма работы двоично-десятичного счетчика в коде 2421 на JK-триггерах

Рис. 4.11. Соединение двух двоично-десятичных счетчиков

113

Динамические параметры счетчика

Динамическими параметрами счетчика являются:

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

CEO.

Время установления нового состояния на выходах счетчика равно промежутку времени между активным фронтом считаемого сигнала и моментом установления на выходах триггеров нового состояния. Это время определяется задержками переключения триггера:

tз01.Q = tз01.TP,

tз10.Q = tз10.TP .

Максимальное значение данного параметра показывает, через какое время после подачи считаемого сигнала можно опрашивать новое состояние счетчика.

Задержки формирования сигналов переноса ТС и СЕО счетчика определяются задержкой переключения триггера и задержкой логического элемента (см. рис. 4.10):

tз10.ТС = tз10.ТР+ tз10,

tз10.СЕО = tз10.ТР+ 2tз10.

114