Главная страница » Электрика в театре » Мультиплексоры демультиплексоры в последовательностных схемах

1 ... 16 17 18 19 20 21 22 ... 39

ГЛАВА 9

ПРИМЕНЕНИЕ РЕГИСТРОВ В ЛОГИЧЕСКИХ СХЕМАХ

Регистры сдвига могут быть использованы в составе логических схем различными способами. Во-первых, с их помощью удобно-выполнять преобразование данных из параллельной формы представления в последовательную и наоборот. Возможность такого преобразования позволяет разработчику находить целесообразный компромисс по стоимости и производительности между характеристиками аппаратных логических средств и пропускной способности линий интерфейса [9]. Другой путь использования регистров сдвига - генерация различных кодов и кодовых последовательностей, применяемых для обеспечения корректности пересылаемых и принимаемых данных. Кроме того, для ряда инженерных задач подобные последовательности - весьма удобное средство генерации периодических сигналов.

Регистры находят также применение при обработке данных. Наряду с загрузкой и сдвигом регистры позволяют легко выполнять такие действия, как сброс, установка и формирование дополнения. Кроме того, с помощью регистров без труда реализуются логические операции И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ.

9.1. ХРАНЕНИЕ ДАННЫХ В РЕГИСТРАХ

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

В любой /?5-триггер устройства, показанного на рис. 9.1, можно загрузить 1 или 0. Схему, образованную /?5-триггером и инвертором в указанном сочетании, принято называть Л-триг-гером (триггером данных или триггером задержки). Стоимость подобного регистра невелика. Недостаток его в том, что сразу же после появления на входе новых данных предыдущее содер-



Оо Hf

1- fS- -- RS-

т/тгёр воз

-1 RS-

f\ rpuiesp

Рис. 9.1. Регистр для запоминания данных.

жимое регистра уничтожается. Кроме того, единственная возможность очистить регистр - подать нули на все его входы.

На рис. 9.2 показана другая схема регистра. Такое устройство удобнее в применении. Следует, однако, помнить, что комбинация входных сигналов i?5 = ll недопустима. Данные, загруженные в такой регистр, сохраняются там до тех пор, пока не поступит сигнал по линии сброса. Такое решение может оказаться нецелесообразным, если, например, в интервале между


тршгер 90S

I- fS---- I- /!S --

триггер

Разрешение угиеиия

григгер 307

триггер SOS

Линия сброса

Рис. 9.2. Регистр для хранения данных. .

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

о

KS-григгер

Рис. 9.3. Регистр на синхронных /?5-триггерах.



rpuissp

тришр

гаиггер 3IS

триггер

л

л

Рис. 9.4. Базовая схема регистра сдвига на JK триггерах.

ВХОДНЫХ сигналов установки и сброса /?5-триггеров одной серией тактовых импульсов (ТИ). Соответствующая схема показана на рис. 9.3. Когда ТИ = 0, данные в регистре сохраняются. Но-, вые данные принимаются, когда ТИ=1.

9.2. РЕГИСТРЫ СДВИГА

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

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

Данные в регистр могут быть загружены по любому из двух входов: A=a%a2aiao или Bbsbzbibo. Имеются четыре режима управления, задаваемые управляющими входами X и У. При XY=Ol регистр функционирует как последовательный. Новые входные данные загружаются со стороны старшего разряда. При этом все остальные биты сдвигаются на одну позицию в

Управляющие Входы у

ВагоВше сигналь/

SLI SR1

Вь/а7о0нь/е сигналы

Qj а, а, йа


3 Ьг Ь, bo Oj a а, а^ Ва:однь/е сигналы

Рис. 9.5. Условное обозначение регистра сдвига.



Ое в, SLI bo

Cz йз uf bz

h h h h Мультиплексор 318

/ 4 h

lo I, Мультиплексор 919

JK-mpueeep

920 Д

JK-триггер

9Z1 Д

JK-триггер 9ZZ

JK-триггер

згз

Мультиплексор 9Z

4 h Ii lo

Мультиплексор 9ZS

I.i If lo

У

bj &o Ог Oj

bj йг SRI as

Разрешение

Рис. 9.6. Типовой управляемый регистр сдвига на С-триггерах и мультиплексорах.

сторону младших (вправо). При Х=10 регистр также работает как последовательный. Новые данные загружаются в этом случае через младший разряд регистра. При каждой загрузке все остальные разряды сдвигаются на одну позицию в сторону старших (влево). Информационными входами при последовательной работе являются SRI для сдвига вправо и SLI лля сдвига влево. Соединив RSI с Qo или SLI с Qs, можно построить схему кругового сдвига. При XY=00 в регистр загружается информация через входы А, а при Х= 11 - через входы В. Оба этих вида загрузки называются параллельными операциями. Функционирование управляемого регистра сдвига описывается в табл. 9.1..

13-1272



9.3. ФОРМИРОВАНИЕ КОДОВ ПОСРЕДСТВОМ РЕГИСТРОВ СДВИГА

Регистры сдвига находят весьма широкое применение. Одним !из примеров является их использование в схемах сопряжения .ЭВМ между собой или ЭВМ и периферийных устройств. Дан-,ные, подлежащие передаче, могут быть преобразованы из параллельной формы в последовательную; при этом достигаются хокращение числа линий связи, экономия кабеля и т. д.

-Bbixod

УпраВшемый регистр ТИ

сдвига 9Z7

2 Ьг bf bo

Розреииение

Од а, о о

Входы для

параллельной

загрузки

Рис. 9.7. Генерация бита четности с помощью регистра сдвига.

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

Тиблица 9.1

Описание функционирования управляемого регистра сдвига

Функция

X Y

О О

Загрузка В регистр данных через вхоВы А

Сдвиг влево

Зогрузна В регистр Ванных через входы В

Сдвиг вправо

Старший разряд

Сдвиг Влево

Младший разряд

ния бита четности (рис. 9.7), функционирующее следующим образом. Сначала на время одного тактового импульса управляющим сигналам придается значение ХУ=00. При этом в регистр загружаются данные через входы а%, Ог, а\, а^. Затем значения управляющих сигналов изменяются и им присваивается значение XY\ = 01, а на линии разрешения устанавливается высокий уровень на время действия пяти тактовых импульсов. В течение первых четырех тактовых импульсов выходной сигнал имеет значения Оо, а\, и Сз



Л

в

с

п

с

с

с

С

в табл. 9.2. приведен код Хемминга для обнаружения и исправления ошибок, рассматриваемый в упражнении У.2.6 [2]. Этот код может быть генерирован с помощью управляемого регистра сдвига.

Обнаружение и исправление ошибок осуществляется следующим образом. Наличие ошибки выявляется посредством функции ошибки Е: £=626160. где eW ®X®Y®1, ex = W®X®Z® т, efi = W®Y®Z®n. Между значением Е и битом, содержащим ошибку, имеет место прямое соответствие, определяемое табл. 9.3.

В качестве примера рассмотрим передачу цифры 4. Переменные при этом имеют следующие значения:

ABCD WXYtZmn

0 1 0 0 0 1 0 1 0 1 0

Предположим, что при передаче имела Таблица 9.3

место такая ошибка, что разряд Z значения функции Е принял значение 1 и передаваемый код имел вид

0 10 1110.

Тогда 62=0, 61 = 1, бо=0 и соответственно £=3. По табл. 9.3 определяем, что имеется ошибка в разряде Z.

Предположим теперь, что при передаче произошла ошибка в разряде I, который принял значение О, и после

Е

Бит с ошиБкой

п

соответственно, а на пятом такте он равен ao®ai®a2®az. Последний бит является битом четности.

Таблица 9.2

Корректирующий код Хеммиига



лередачи код имеет вид

0 1 0 0 0 1 0.

Значит, 62=1, ei = 0, ео=0 и, следовательно, £=4. В соответствии с табл. 9.3 определяем, что произошла ошибка в разряде I.

Читателю рекомендуется самому проверить действие корректирующего кода применительно к передаче всех двоично-десятичных чисел ABCD с одной ошибкой.

Первоочередной задачей является генерация кода Хемминга в соответствии с входными сигналами ABCD. Напомним, что, как было отмечено в упражнении У.2.5, значения переменных кода Хемминга определяются следующими уравнениями:

W=A, Z==D.

Х = В, m=A®B®D,

Y=C, n-A®C®D.

l=A®B®C,

Приведем еще два соотношения, в справедливости которых читатель может убедиться сам:

т=п@В@С, l=m®C®D.

Обратите внимание, что буквы в коде Хемминга следуют в порядке, определяемом функцией ошибки Е. Передача их не обязательно должна происходить именно в этом порядке. В то же время следует не упускать из виду необходимость выполнения соотношений, задаваемых табл. 9.3.

На рис. 9.8 показана схема формирования кода Хемминга с помощью управляемого регистра сдвига, на входы аз, Сг, a,i и ао которого подаются соответственно переменные D, С, В и А. Схема работает следующим образом. Сначала во время одного тактового импульса управляющим сигналам присваивается значение .Х^У=00. Тем самым данные, поступившие на входы asajGiOo, фиксируются в регистре

QUiQo=aiao=DCBA.

На время действия второго тактового импульса управляющие сигналы меняются на XY=10, а на селекторный вход мультиплексора подается сигнал 0=1. Так как Qo=A=W, выходной сигнал принимает значение W. Мультиплексор 929 выбирает у регистра выход Q2. Таким образом,

SRI- Q3@Qz@Qo=D@C@A=п.

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



Мультиплексор

. 91 ffo

б

УпрпВляет/й регистр сдбиъа <

928 Раареше-

пис

i>3 %

Оз °г а, % J) С В А

ЭРис. 9.в. Генерация кода, обнаруживающего и исправляющего ошибки.

присваивается нулевое значение. При этом мультиплексор 929 выбирает выход Qi. Таким образом, SRI=Q3@Qi®Qo.

На третьем тактовом импульсе Сз= , Qi = C и Qo=B, т. е. ЗД1=п®С®В=т. Так как Qq=B=X, то на выходе схемы имеет место X.

На четвертом тактовом импульсе 0з=1П, Qi=D и Qo=C, т. е. SRI=m®D®C=l. Так как Qo=C=Y, то сигнал на выходе схемы равен У.

На пятом тактовом импульсе Q3=l, Q2=m, Qi=n и Qo=D. Так как Qo=D=Z, на выходе в этот момент имеет место значение Z.

В течение последующих трех тактов на выход поступают сигналы п, т и I. Таким образом, код передается в следующей последовательности W X Y Z пт I.

9.4. ФОРМИРОВАНИЕ КОДОВЫХ

ПОСЛЕДОВАТЕЛЬНОСТЕЙ ПОСРЕДСТВОМ РЕГИСТРОВ СДВИГА

Регистры сдвига применяются также и для формирования периодических кодовых последовательностей [9, 18]. Автор ис-шользовал периодические последовательности с целью получе-



Выход

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

1. Записать необходимую последовательность в виде строки таблицы (см. первую строку табл. 9.4).

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

3. Первые п строк образуют входную информацию; п - минимальное число, необходимое для генерирования последовательности длиной = 2 , где k больше или равно числу строк квадратной матрицы. Используя первые п строк таблицы в качестве входных данных, нужно построить карту Карно. Если два столбца входных данных одинаковы, то для формирования входной информации карты Карно необходимо добавить еше одну строку из табл. 9.4. Этот процесс следует повторять до тех пор, пока не останется ни одной пары одинаковых входных столбцов. Следующая строка табл. 9.4 представляет собой выходную последовательность. Функция /, задаваемая картой Карло, определяет входную информацию для регистра сдвига.

ния тестовых сигналов для подачи на вход больших генераторов. Использование подобных последовательностей дает ряд преимушеств:

1. Они являются периодическими и поэтому легко поддаются анализу.

2. Их легко формировать с помошью регистров сдвига.

3. Они без затруднений обрабатываются на различной аппаратуре, так как состоят из двоичных сигналов.

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

Для генерирования периодической последовательности необхо-

Таблица 9.4 Таблица формирования последовательности



00 01 11 10

Рис. 9.9. Карта Карно для генерирования последовательности.

ф

Карта Карно, построенная в соответствии с табл. 9.4, показана на рис. 9.9. Реализация последовательностной схемы представлена на рис. 9.10.

Данная схема функционирует следующим образом. Сначала во время одного такта управляющие сигналы имеют значение XY=Q)Q); при этом информация записывается в регистр через входы as, а2, Oi и Оо, причем ао не используется. Таким образом, QzQiQi = asa2ai.

Значения Сз, Сг и Oi - любые три двоичные цифры в последовательности, кроме ООО и 111. Зададим в качестве примера 03021= 100.

Затем значение управляющих сигналов изменяется на ХУ= = 01 (сдвиг вправо), и по мере поступления тактовых импуль-

Выход


Упраблявмый регистр сдбига 930

<

Pas ре-

швиие

Ug Oz С/

Рис. 9.10. Генератор последовательностей на основе управляемого регистра сдвига.



1 ... 16 17 18 19 20 21 22 ... 39

© 2000-2025. Поддержка сайта: +7 495 7950139 добавочный 133270.
Заимствование текстов разрешено при условии цитирования.