Операционные автоматы

Рассмотрим элементы с обратной связью. Если в структуре устройства появ­ляется обратная связь, его свойства существенно меняются.

Рассмотрим роль обратной связи для простейшего примера. Пусть в струк­туре устройства с входами R и S находятся всего два элемента ИЛИ – НЕ, связи между которыми неизвестны. Если рассматривать только комбинаторный подход, то мы определим лишь одну возможность подсоединения входа S ко входу эле­мента 1 и соответственно входа R к элементу 2, т.е. получим дублирование функ­ций (рис. 25 а).

Произведем другое соединение с введением обратной связи, т.е. выход X под­соединим к входу 2-го элемента, выход Y – к входу 1-го (рис. 25 б). Про­ана­лизируем функции: X = X(R, Y), Y = Y(S, X).

Рис. 25

Для рис. 25 б запишем , . Подставим значения:

1. R = 1. S = 0.   , ;
2. R = 0. S = l.   , ;
З. R = 0. S = 0.   , .  

Подача R = 0 или S = 1 в виде импульсного сигнала приведет к уста­новке этого элемента в единичное (X = 0, Y = l) или нулевое (Х = 1, Y = 0) состояние, которое будет потом сохраняться бесконечно долго, т.к. при R = S = 0, X = , Y = .

Пусть R = 1, S = 1. Если подставить эти значения в формулы, то получим X = Y = 0. Однако это состояние не может быть устойчивым, т.к. при разной длитель­ности импульс­ных сигналов R и S по их заднему фронту возникнет ситуа­ция либо R = l, S = 0, либо R = 0, S = 1. Поскольку соотношения реальной дли­тельности импульсов R и S неиз­вестны, то остается неопределенным и са­мо состояние после окончания импуль­сов. Поэтому режима R = S = 1 следует избегать, считая его запрещенным.

Итак, простейшая схема из 2 элементов при наличии обратных свя­зей при­обретает новое качество, новые свойства – она становится автома­том с двумя ус­тойчивыми состояниями, который называется триггер. Триггер такого типа назы­вается RS-триггером*.

Построение более сложных операционных устройств осуществляется тремя путями:

· увеличением количества элементов при непосредственных связях между ними (от входа к выходу), т.е. построением каскадных схем;

· увеличением числа каскадов;

· увеличением «внутренних» связей между элементами разных каскадов, т.е. вве­дением обратных связей.

Покажем, что новое качество системы можно получить и с помощью первого пути, т.е. комбинацией элементов. Вместо одного RS-триггера по­ставим в ряд n триггеров. Получим n -разрядный запоминающий регистр. В приведенном на рис. 26 запоминающем регистре введены дополнитель­ные элементы «И», а также сиг­налы синхронизации (ci):

c 1 – запись кода;

c 2 – считывание обратного кода;

c 3 – считывание прямого кода.

Рис. 26

Запоминающий регистр есть простой операционный автомат (ОА), который выполняет две функции:

  • преобразование во времени:

x (t + T) = x (t), т.к. код x (t), записываемый по сигналу c 1 в момент времени t, может быть вос­произведен через произвольный интервал Т.

  • преобразование прямого кода x (t) в обратный код (t + Т), где Т – время хране­ния кода.

Количество состояний регистра памяти определяется его разрядностью (n) и уже при n = 16 становится равным 216 = 65 536.

Установим два запоминающих регистра с так называемым парафазным спо­собом передачи информации между ними (рис. 27). Вместо n разрядов получен регистр на 2 n бит, но первые n бит связаны со вторыми n битами парафазной свя­зью, позволяющей без установки в нулевое состояние второго регистра перепи­сывать в него код из первого регистра при по­даче сигнала синхронизации C2. Об­ратим внимание на термин парафазная связь. Связь между двумя триггерами яв­ляется парафазной, если подача сигнала на входы с одного триггера (или любого другого внешнего устрой­ства) осуществляется одновременно как по сигнальному входу S, так и по входу установки R. Т.е. при записи «1» необходимо подать ком­бинацию S = l, R = 0, а при записи «0» – комбинацию S = 0, R = l. Такой способ за­писи (парафазный) не требует предварительной нулевой установки тригге­ра, в который записывается «1» или «0». Этот же принцип используется и для системы триггеров (регистр). Какой бы код N(t) в регистре ни хра­нился до момента вре­мени (t + 1), при парафазной записи новый код N(t + 1) «вытеснит» старый код N(t).

Рис. 27

Предыдущий код в первом регистре x (t) может быть переписан во второй ре­гистр в момент t + τ, а на место x (t) может быть записано новое значение при по­даче сигнала с 1, т.е. для любого момента времени, разде­ленного интервалом τ, между переписью сигналов в обоих регистрах бу­дет текущее состояние кода x (t) и его предыдущее состояние x (t – l), где единица эквивалентна интервалу τ. Такая «конст­рукция» регистров используется как память автоматов (что будет рассмотрено позднее).

Соединим регистры не прямой парафазной связью, как на рис. 27, а со сдви­гом на один разряд через соответствующие схемы «И» с сигналом синхрони­зации с 4 (рис. 28). Этот сдвиг будем называть сдвигом влево. На примере четы­рех раз­рядов покажем сдвиг влево и вправо (универсальный регистр сдвига) с возвратом сдвинутого кода со второго регистра на пер­вый. Схемы «И» для упро­щения на рис. 28 не показаны, но сохранены сигналы с 4 (сдвиг влево) и с 5 (сдвиг вправо).

Рис. 28

Очевидно, что для того чтобы производить сдвиг, необходим RS-триггер, хранящий направление сдвига. Необходим также и счетчик для подсчета количества произведенных сдвигов (рис. 29). Под сдвигом кода (имеющего к тому же числовое значение в ДПК) понимается такое логическое преобразование, которое при сдвиге на один разряд влево увеличивает числовое значение в два раза, а при сдвиге на один разряд вправо уменьшает числовое значение в два раза. Для сдвигов на два разряда числовые значения будут изменяться в четыре раза и т.д.

Например, пусть исходный 8-разрядный код имеет вид 00101100, что со­ответствует числу 44 в ДПК. При сдвиге на один разряд влево получим код 01011000, т.е. 88, при сдвиге на один разряд вправо – код 00010110, т.е. 22, на два разряда вправо – код 000010110, т.е. 11. Если будем сдвигать далее, то младшая цифра кода (1) потеряется (00000101), но при циклическом сдвиге получим код 10000101, т.к. значение младшего разряда (1) перенесется в старший разряд кода.

Пусть необходимо произвести сдвиг на N разрядов. Запишем на счетчик в параллельном коде дополнительный код числа N, т.е. = + 1. Тогда, добавляя при каждом сдвиге в счетчик одну единицу, после N сдвигов на счетчике полу­чим код + N, но N g + N = ( + N) + l. Таким образом, получим «обнуление» счетчика и еди­ницу переполнения, которую нужно записать на специальный RS-триггер пере­полнения для хранения условия переполнения счетчика.

Рис. 29

Тогда весь операционный автомат для сдвига примет вид, приведенный на рис. 29. На рис. 30 а приведена блок-схема алгоритма управления регистром сдвига, а в табл. 17 дана расшифровка микроопераций. Этот операционный авто­мат для своей правильной работы требует подачи определенной последовательно­сти импульсов во времени, т.е. подключения управляющего автомата для формирования этой по­следовательности импульсов с учетом значений логических сигналов (алгоритм рис. 30 б).

α 1 – 1 – сдвиг влево, 0 – вправо.

α 2 – 1 – все сдвиги произведены.

Существует несколько способов организации регистров сдвига [18, 35, 52]. Здесь рассмотрена одна из их реализаций.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: