ОперационныйСинтез (775245), страница 6
Текст из файла (страница 6)
Некоторое упрощение схем: достигнуто за счет использования свойства самодвойственности функции суммы S(i)и переноса P(i+1).
которое проявляет себя в том, что функция принимает инверсное значение при инвертировании всех ее переменных. Условное обозначение; микросхем и логическая схема двухразрядного сумматора изображены на рис. 7, а,б.
3.7. Дешифраторы.
Дешифратор является комбинационной логической схемой, преобразующей двоичный позиционный код в унитарный, т.е. код, содержащий в своих разрядах только одну единицу. Мы будем описывать, дешифратор как y{1: к} = ДШ(x{1:n}). В дешифраторе разрядность к выходного кода у всегда больше разрядности п входного кода х. Для полных дешифраторов к и п связаны соотношением к= 2n. Для частичных дешифраторов к лежит в пределах 2n+1 <= к < 2n.
Схема дешифратора реализует совокупность конъюнктивных конституент вида:
куда переменные х входят либо непосредственно, либо под знаком отрицания. На это обстоятельство указывает волнистая черта над переменным X.
Рис. 7. Микросхемы комбинационных сумматоров: а - К155ИМ2; б - К155И1ЛЗ; в- логическая схема двух разрядов сумматора.
Для удобства описания дешифраторов номер i разряда выходного кода у(i) делают равным номеру конституенты, формирующей единицу этого разряда; поэтому нумерацию выходного поля начинают с нуля: y{0:m} = ДШ(x{1:n}), где m=k-1 и
Рис.8. Дешифраторы: а - условное изображение; б - линейный дешифратор; в –двухступенчатый дешифратор; г - пирамидальный дешифратор
Условное изображение дешифратора приведено на рис. 8,а. В зависимости от способа реализации выражений (3.26) дешифраторы делятся на одноступенчатые (линейные), двухступенчатые и многоступенчатые. В линейных дешифраторах выражений y{i] реализуются индивидуально на схемах "И". Такие дешифраторы обладают наивысшим быстродействием, но требуют значительных материальных затрат - сложность схем "И" растет с увеличением разрядности входного кода. Принято сложность дешифраторов оценивать количеством входов элементов, приходящихся на один выход дешифратора.
где N - сумма входов всех элементов дешифратора.
Логическая схема линейного дешифратора приведена на рис. 8,б. Она включает в себя инверторы входных переменных и п – входовые схемы "И". Нетрудно подсчитать количество входов элементов дешифратора
N = n + n*2n,
откуда
S лин.ДШ = n/2n + n n.
Более экономным по затратам являются двухступенчатые дешифраторы. Они строятся по выражениям(3.26), реализуемым как система. Для этого конституенты (3.25) разбиваются на части, объединяемые функцией "И":
Поскольку отдельные части являются общими для многих выходных сигналов, суммарный объем схем, из которых строится дешифратор, значительно сокращается. В теории доказывается, что наибольший выигрыш получается при разбиении конституент на две равные части:
y{i} = (x{1}x{2}…x{n/2})(x{n/2+1}…x{n})
При таком разбиении двухступенчатый дешифратор строится из двух линейных дешифраторов половинной длины, выходы которых объединяются двухвходовыми схемами "И". Иногда такой дешифратор называют матричным. Логическая схема, двухступенчатого дешифратора приведена на рис.8,в. Для него величина N подсчитывается как Nмат. ДШ = 2NлинДШ + Nсх.”И” .
Используя (3.28) получаем
откуда величина S определится как
Из выражения (3.30) видно, что эффективность двухступенчатого построения с увеличением разрядности входного кода даже растет. Ограниченность числа входов схем "И", применяемое в дешифраторе, приводит к построению многоступенчатых схем. В пределе количество ступеней дешифратора может сравняться с разрядностью входного кода, тогда дешифратор может быть построен на одних двухвходовых схемах "И". Такой дешифратор называется пирамидалъным; он может быть реализован по выражению (3.25), в котором все переменные, кроме первых двух, разделены скобками;
Логическая схема пирамидального дешифратора приведена на рис. 7.в. Для подсчета N необходимо учитывать закономерность построения дешифратора - каждая следующая ступень содержит удвоенное количество схем "И": N = n +4*2 + 8*2 + … + 2n*2, откуда S определяется как
Недостатком пирамидального дешифратора является разная длина пути прохождения переменных через схему, что приводит к разбросу моментов окончания формирования разрядов выходного кода. Этот недостаток исправляется стробированием дешифратора.
Рис. 9. Двоично-десятичный дешифратор К155ИД1: а- условное обозначение; б - подключение к газоразрядному индикатору; в - подключение к МС K155
Микросхемы серии K155 содержат только один "чистый" дешифратор. Это схема К155ИД1, которая представляет собой частичный дешифратор двоичного кода в десятичный унитарный код. Схема используется для управления высоковольтными индикаторами, для чего на его выходах стоят транзисторы с открытым коллектором. Перепад напряжения на коллекторе составляет около 60 В, что позволяет зажигать и гасить газоразрядные индикаторы с напряжением поджига в 150 В. Условное обозначение К155ИД1 и схема его подключения к индикатору приведены на рис. 9,а и б. Если схема К155ИД1 работает на другие элементы этой серии, то ее выход необходимо подключить к источнику +5В через сопротивление порядка 3 кОм (рис. 9,в). Серия K155 содержит ряд микросхем, куда дешифратор входит составной частью, но с этими микросхемами мы познакомимся несколько позже.
3.8. Мультиплексоры
Мультиплексор представляет собой устройство, подключающее одну из входных информационных шин к выходной шине. Выбор входной шины осуществляется при помощи некоторого управляющего кода. Поскольку все входные шины мультиплексора несут одинаковую функциональную нагрузку, мы будем их описывать одним и тем же именем, а разделять при помощи номера в квадратных скобках. Запись A[i]{1:n} означает что мы имеем дело с n-разрядной шиной i , входящей в совокупность шин А. Подобно тому как символы объединяются в слова, а провода в шины, шины объединяются в группу шин, или массив шин. Этот массив имеет одно имя и описывается как A[1:m]{1:n}где т- число шин в массиве. Выделение шины i из массива шин осуществляется при помощи ее коммутации управляющим сигналом V[i].
Поскольку к выходу мультиплексора всегда подключается только одна из входных шин, управляющий код V{1:m} должен быть унитарным, содержащим единицу только в одном разряде. Для сокращения числа входов мультиплексора целесообразно управляющий код формировать внутри мультиплексора при помощи дешифратора, на который извне подается коротким двоичный код S{1:k} . Условное обозначение мультиплексора изображено на рис. 10,а.
Мы будем описывать мультиплексор следующим предложением операционного описания MC{1:n} = MC(A[S{1:k}]{1:n}.S{1:k}).
Это предложение говорит о том, что на выходе мультиплексора появляется сигнал с той входной шины, номер которой совпадает с численным эквивалентом кода управляющего сигнала S{1:k}. Общее количество входных шин мультиплексора лежит в пределах 2k-1 <= m < 2k.
Операционная схема мультиплексора изображена на рис. 10,а. Она включает в себя коммутаторы входных шин, схему объединения шин по "ИЛИ" и дешифратор управляющего кода. Мультиплексирование является поразрядной операцией, поэтому схема мультиплексора (за исключением дешифратора управляющего кода) может быть разбита на т идентичных схем одноразрядных мультиплексоров (рис. 10,б).
Рис. 10. Мультиплексор: а - условное изображение; б - операционная схема; в -схема разряда.
Микросхемы K155 включают в себя двухразрядный мультиплексор со стробированием на четыре входа (К155КП2), одноразрядный мультиплексор без стробирования на 8 входов (К155КП5), одноразрядный мультиплексор со стробированием на 8 входов (К155КП7) и одноразрядный мультиплексор со стробированием на 16 входов (К155КП1).
Все мультиплексоры имеют встроенные дешифраторы, поэтому при построении многоразрядных схем входы S{1:k} должны быть объединены.
Рис. 11. Микросхемы мультиплексоров: а - К155КП2; б – К155КП5; в – К155КП7; г – К155КП1
Условное обозначение микросхем мультиплексоров представлено на рис. 11.
3.9. Демультиплексоры
Демультиплексоры решают задачу, обратную мультиплексированию: они подключают входную шину с одной из выходных шин. Выбор выходной шины осуществляется управляющим кодом S{1:k}. Условное обозначение демультиплексора приведено на рис. 12,а.
Рис. 12. Демультиплексор: а - условное изображение; б - операционная схема; в – схема разряда.
Демультиплексор описывается следующим предложением операционного описания: DMC[S{1.k}]{1.n}=DMC(A{1.n).S{1.k}), которое говорит о том, что входной код А{1:n} появляется на той выходной шине демультиплексора, номер которой равен численному эквиваленту управляющего кода.
Операционная схема демультиплексора изображена на рис. 12,6. Она включает в себя набор коммутаторов кода, управляемых от встроенного дешифратора. Демультиплексирование, как и мультиплексирование, является поразрядной операцией, поэтому схема демультиплексора разбивается на т разрядных схем. В таких схемах дешифрацию и коммутацию можно совместить в одной схеме "И", тем самым превращая демультиплексор в коммутируемый дешифратор (рис. 12,в).
Микросхемы серии К155 включают в себя одноразрядный дешифратор – демультиплексор на 16 выходов К155ИДЗ (рис. 13, б) и двухразрядный демультиплексор на 4 выхода-К155ИД4 (рис. 13,а). Сигналы коммутации (стробирования) формируются по двум входным сигналам как для К155ИДЗ и
- для К155ИД4. При построении многоразрядных схем входы управляющего кода S{1:k} объединяются. Дешифратор - демультиплексор может использоваться как обычный дешифратор. Для этого достаточно стробирующий сигнал сделать единичным (WQ=W1 = 0 для К155ИД3 и D =1, S1=S2=E=0 для К155ИД4)
Рис.13. Микросхемы демультиплексоров: а- 155ИД4; б- 155ИД3.
Глава 4. ОПЕРАЦИОННЫЕ ЭЛЕМЕНТЫ АВТОМАТНОГО ТИПА.
4.1. Предварительные замечания
Операционные элементы автоматного типа представляют собой логические устройства с памятью и относятся к классу конечных автоматов. Выходные сигналы этих элементов формируются как по значениям входных сигналов, так и по значениям внутреннего состояния элемента. Поэтому операционный элемент автоматного типа можно рассматривать как устройство, преобразующее входное слово А и слово состояния Q в выходное слово В. Операционный элемент автоматного типа строится, как правило, в виде автомата Мypa [2] , у которого выходное слово В комбинационно формируется по слову состояния Q или является его повторением (В = Q). В этом случае при описании операционных элементов имя выходного слова В используется и как имя его внутреннего состояния.
Как известно, автоматы могут быть построены либо по синхронному, либо по асинхронному принципу [2] . Рассматриваемые нами операционные элементы будут строиться как автоматы синхронного типа, в которых преобразование входной информации в выходную происходит под воздействием управляющего сигнала [2] . Синхронность построения обеспечивает возможность одновременного изменения всех состояний элементарных автоматов (триггеров), составляющих операционный элемент, поэтому внутреннее состояние автоматного операционного элемента и его выходные сигналы могут изменяться в любой последовательности. Введение в операционный элемент управляющих сигналов приводит к необходимости разделения входных сигналов элемента на две категории - информационные сигналы и управляющие сигналы.
Теперь мы можем несколько по-иному подойти к объяснению функционирования операционного элемента автоматного типа. Будем говорить, что выходные сигналы автоматного операционного элемента являются функцией его входных информационных сигналов и сигналов внутреннего состояния, но эта зависимость проявляет себя лишь под воздействием управляющих сигналов. В ряде случаев входные информационные сигналы могут быть постоянными и формироваться внутри операционного элемента. Тогда изменение выходных сигналов будет определяться только значением внутреннего состояния операционного элемента. Часто в операционных элементах используют такие управляющие сигналы, действие которых на элемент не зависит от внутреннего состояния. Такие управляющие сигналы называются установочными, они используются для перевода операционного элемента в начальное состояние (обнуление, установка начального кода).
Итак, работа операционного элемента автоматного типа описывается предложением операционного описания следующего вида:
У: В{1:k}= F(A{1:n},Q{1:m}), (4.1),
где A{1:n} - входное информационное слово; B{1:k} - выходное слово; Q{1:m} - слово состояния; F - функция преобразования; У -управляющий сигнал; : (двоеточие) - символ запоминания выходного слова после прекращения действия управляющего сигнала.
Это предложение говорит нам о том, что на вход автоматного операционного элемента приходит n - разрядный информационный код А, который совместно с m - разрядным кодом внутреннего состояния Q под воздействием управляющего сигнала У формирует k - разрядный выходной код В, как это предписано функцией преобразования F. После прекращения действия управляющего сигнала У новое значение выходного кода B сохраняется за счет действия внутренней памяти элемента. В том случае, когда выходное слово В повторяет слово состояния Q, предложение операционного описания имеет вид
У: B{1:k}=F(A{1:n}, В{1:m}). (4.2)
Здесь выходное слово и слово состояния имеют, в общем случае, разную разрядность, поскольку не все триггеры операционного элемента могут участвовать в формировании кода выходного сигнала. Если слово A{1:n} представляет константу, то его исключают из операционного описания:
y: B{1:k} = F(Q{1:m}) (4.3)
или
y: B{1:k} = F(B{1:m}) .
При воздействии на операционный элемент установочного сигнала в правой часта предложения операционного описания записывают значение установочного кода. Например, обнуление элемента описывается как
УН: B{1:k} = 0. При соединении автономных операционных элементов в операционном устройстве удобно присваивать их выходным шинам имена, отражающие характер преобразования информации в этих элементах:
у: F{1:k} = F(A{1:n},Q{1:m}). (4.4)
Выполнение операционным элементом двух или многоместных операций подчеркивается разделением входного информационного слова на ряд полслов:
y: B{1:k}=F(A1{1:r1} Al{1:ri}, Q{1:m}). (4.5)
Графическое изображение операционных элементов автоматного типа строится аналогично изображению комбинационных операционных элементов; единственным отличием является ряд управляющих сигналов, подключаемых по входу элемента. Эти управляющие сигналы должны обязательно иметь разные имена, начинающиеся с буквы у (управление). Для выделения установочных сигналов будем их имена начинать с комбинации УН. На рис. 14 приведено условное обозначение нескольких автоматных операционных элементов, отличающихся разрядностью выходного кода, количеством входных шин и управляющих сигналов. Наша промышленность выпускает большое количество микросхем, которые могут быть использованы для построения операционных элементов автоматного типа, однако при реализации конкретных операционных элементов мы ограничимся применением серии K155.

Рис. 14. Условное изображение операционного элемента автоматного типа: а - с двумя входными шинами; б - с одной входной шиной и тремя управляющими сигналами; в - без входной шины; г - с одноразрядным выходом и одним управляющим сигналом.
Рассмотрим наиболее распространенный набор операционных элементов, куда входят регистры, накапливающиe сумматоры и счетчики.
4.2. Регистры
4.2.1. Определение регистров. Регистром называется устройство, служащее для приема, хранения и сдвига поступающих на него кодов. Если регистр используется только для хранения кода, то он называется статическим; если в его функцию включен также и сдвиг, то сдвигающим или сдвиговым регистром.
Рис. 15. Условное, изображение регистра: а - статический; б - сдвигающий; в – реверсивный.
В том случае, когда сдвиг допускается только в одну сторону, регистр называется однонаправленным, если в обе стороны, - то реверсивным. Условное обозначение регистров приведено на рис. 15.
4.2.2. Операционное описание регистров. Запись кода на регистр описывается предложением
УЗАП: РЕГ{1:k} = A{1:k}. (4.6)
которое указывает на то, что под действием управляющего сигнала УЗАП выходной код регистра PEГ{1:k} приобретает значение его входного информационного кода А{1:k}. При записи кода на регистр предварительного обнуления, как правило, не требуется; новый код стирает старый, записанный под воздействием предыдущего импульса записи.
Входной код целиком или частью может быть константой, тогда запись кода описывается как
УЗАП: PEГ{1:k} = KOH{l:n} . A{1:m},
где k = n + m , поскольку разрядность входного и выходного кода должна быть обязательно равной. Пусть, например, в первые четыре разряда регистра РЕГ{1:k} всегда поступают единицы, тогда запись кода на регистр опишется как
УЗАП: РЕГ{1:k} = 1111 . A{5:k} .
В частности, в качестве константы может выступать нулевой код, тогда обнуление регистра опишется выражением
УЗАП: РЕГ{1:k} = 0 (4.7)
или при наличии установочного сигнала обнуления:
УН: РЕГ{1:k} = 0.
Сдвиг кода в регистре можно интерпретировать как запись на регистр его собственного кода, предварительно сдвинутого вправо или влево на требуемое число разрядов. В зависимости от характера заполнения освободившихся от сдвига разрядов регистра различают:
а) Сдвиг с заполнением нулями: УСДВ: PEГ{1:k} = 0 . РЕГ{1:k-1}. Предложение описывает сдвиг кода регистра вправо на один разряд с записью в освободившийся первый разряд регистра константы 0.
б) Сдвиг с заполнением единицами: УСДВ: РЕГ{1:k} = 11 . РЕГ{1:k-2}. Здесь сдвиг осуществляется на два разряда вправо с записью в освободившиеся левые разряды регистра константы 11.
в) Циклический сдвиг: УСДВ: РЕГ{1:k} = PЕГ{2:k} . РЕГ{1}.
Запись отображает сдвиг на один разряд влево с записью в k - й разряд регистра переменной, ранее находившейся в первом разряде.
г) Сдвиг с записью входного кода А: УСДВ: РЕГ{1:k} = А.РЕГ{1: k-1}.
При сдвиге вправо на один разряд в освободившийся при сдвиге первый разряд записывается одноразрядный код А. Если заполнение освободившихся разрядов специально не оговаривается, то предполагают, что туда записываются нули. В этом случае операцию сдвига можно описать обобщенным предложением вида
УСДВ: РЕГ{1:k} = СДВ П(Л) n (РЕГ{1:k}) , (4.8)
которое надо понимать так: содержимое регистра РЕГ{1:k} сдвигается вправо (П) или влево (Л) на n разрядов. В случае циклического сдвига в имя функции СДВ добавляется буква Ц:
УСДВЦ: РЕГ{1:k} = СДВЦ П(Л) n (PEГ{1:k}). (4.9)
4.2.3. Построение регистров. Регистры строятся как регулярные структуры, состоящие из однотипных элементов - разрядов регистра. Разряды регистра соединяются между собой, обеспечивая односторонний или реверсивный сдвиг записанного в регистре кода нa один или несколько разрядов. При построении разрядов регистра чаще всего используются D- или R-S- триггеры, функции возбуждения которых формируются на комбинационных логических схемах.
Рассмотрим построение промежуточного i - го разряда реверсивного регистра для сдвига на один разряд. Если в качестве элемента памяти используется D - триггер, то его функционирование может быть описано как
D{i} - A{i}-УЗАП + D{i-1} УСДBП + D{i+ 1} УCДBЛ,
где УЗАП - импульс записи, кода на регистр; УСДВП - импульс сдвига вправо; УСДВЛ - импульс сдвига влево.
Действительно, под воздействием одного из управляющих сигналов в триггер D[i] заносится либо значение разряда входного кода A{i}, либо содержимое левого D - триггера D{i-1}, либо содержимое правого D - триггера D{i+1}. Заметим, что управляющие сигналы никогда не приходят одновременно.
При использовании R-S -триггеров их функции возбуждения формируются как R - D и S - D . Логическая схема разряда реверсивного регистра изображена на рис. 16. Применение синхронного триггера обеспечивает такой режим работы регистра, при котором изменение выходного кода происходит по окончанию действия синхронного импульса С.
Рис. 16. Разряд реверсивного регистра
В том случае, когда "реверсивность" работы регистра не требуется, из схемы рис. 16 исключают один из сигналов сдвига, одну из связей с соседним разрядом и схему "И" элемента "И-ИЛИ". При некоторых применениях сдвигающий регистр должен сдвигать информацию на полбайта (4 разряда) или байт (8 разрядов) под воздействием единственного сдвигающего импульса. Это можно организовать применением черезразрядных связей (через три или семь разрядов).
4.2.4. Дополнительное применение регистров. Возможность организации сдвига позволяет использовать регистры для преобразования кодов из последовательной формы в параллельную и обратно. Первое преобразование осуществляется подачей последовательного кода А на вход первого разряда и записи его со сдвигом вправо k раз. В результате сдвига код A займет все k разрядов регистра и будет интерпретироваться входными сигналами регистра как параллельный i - разрядный код. Последовательный код из параллельного могло получить обращением к одному и тому же разряду регистра, работающего в режиме циклического сдвига. В отличие от предыдущего случая количество сдвигающих импульсов, необходимых для преобразования, должно быть на единицу меньше.
4.2.5. Микросхемы сдвигающих регистров. Микросхемы серии K155 содержат два сдвиговых регистра: К155ИР1 и К155ИР13. Универсальный сдвиговый регистр К155ИР1 изображен на рис. 17,а. Входа D и V1 являются информационными и используются для записи параллельного входного кода D{1:4} или последовательного кода V1. При V2 = 1 регистр работает в режиме записи по сигналу C2(УЗАП - C2 * V2); при V2 = 0 он переходит в режим сдвига по сигналу С1(УСДВ=C1*V2). Вход V1 используется либо для последовательной записи, либо для связи с соседней микросхемой в многоразрядном регистре.
В этом случае входы C1, C2, V2 становятся общими (рис. 17,б).
Выходные сигналы сдвигающего регистра изменяются по отрицательному перепаду импульсов С1 и С2. На рис. 17,в изображен восьмиразрядный реверсивный сдвиговый регистр К155ИР13. Шина D{0:7} используется для параллельной записи кода на регистр; входы DL и DR -для последовательной записи при сдвиге влево или вправо; управляющие сигналы записи и сдвига формируются следующим образом:
УЗАП = CSоS1
УСДВП = CSоS1 (в сторону разрядов большего индекса)
УСДВЛ = CSоS1 (в сторону разрядов меньшего индекса)
Комбинация SоS1 используется как запрет воздействия импульса С . Реверсивный регистр допускает установочное обнуление путем подачи нулевого сигнала на вход R. Как и для КТ55ИР1, изменение выходного, кода регистра К155ИР13 происходит по отрицательному перепаду импульса С . При построении многоразрядного реверсивного регистра достаточно соединить DR с Q7 предыдущей схемы, DL с Q1 последующей схемы, а входы С, Sо, S1 и R сделать общими.
Рис. 17. Микросхемы сдвигающих регистров: а - К155ИР1; б - соединение МC в многоразрядном регистре; в - К155ИР3
Рис. 18. Накапливающий сумматор: а - условное изображение; б - логическая схема разряда; в - построение на регистре и комбинационном сумматоре.
4.3. Накапливающие сумматоры
4.3.1. Определение накапливающего сумматора. Накапливающим сумматором называется устройство, осуществляющее арифметическое сложение двух кодов - внешнего по отношению к сумматору и внутреннего, отображающего состояние самого сумматора. После окончания процесса сложения сумматор принимает значение кода суммы. Сумматор может накапливать сумму любого числа приходящих на него кодов, но для этого он должен быть предварительно обнулен. Условное обозначение накапливающего сумматора приведено на рис. 18,а.
4.3.2. Операционное описание накапливающего сумматора. Накопление суммы начинается с обнуления сумматора
УН: CM{1: k} = 0, (4.10)
после чего на него может быть подано первое слагаемое
УСЛ: CM{1:k} = CM{1:k} + A{1:k}. (4.11)
Это предложение операционного описания показывает, что под воздействием управляющего сигнала УСА происходит формирование арифметической суммы кодов CM{1:k} и А{1:k}, которая после окончания действия управляющего сигнала становится новым содержимым накапливающего сумматора. Повторное выполнение операции (4.11) заносит в сумматор второе слагаемое и т.д., до тех пор, пока не будет сформирована сумма всех приходящих на него кодов. Накапливающие сумматоры, как и комбинационные, могут работать в дополнительном и обратном кодах; в последнем случае в сумматоре организуется циклический перенос. Работа сумматора в обратном коде отражается в операционном описании постановкой знака арифметического сложения в квадратик (см. 3.20).
4.3.3. Построение накапливающего сумматора. Накапливающий сумматор представляет регулярную структуру, поэтому его построение сводится к. синтезу одного его разряда. Воспользуемся выражениями для суммы CМ{i} и переноса P{i+1}, полученными ранее при синтезе комбинационного сумматора (3.23) и (3.24):
CM{i} = A{i} mod 2 B {i} mod 2 P{i};
P{i+1} = A{i} B{i} +A{i}P{i} + B{i}P{i}
и преобразуем их к функциям перехода и выхода разряда накапливающего сумматора, считая, что слагаемое В формируется состоянием сумматора:
CM{i}t+1 = [CM {i} mod 2 (A{i} mod 2 P{i})]t ; (4.12)
P{i+1}t = (A{i}B{i} + A{i}P{i} + B{i} P{i})t . (4.12а)
Выражение (4.12)описывает функцию внешних переходов триггера, входящего в разряд накапливающего сумматора. Для выбора типа триггера и определения его функции возбуждения воспользуемся методом сравнения, излаженным в [2]. Анализ показывает, что наилучшим вариантом является применение Т - триггера, функция переходов которого совпадает с (4.12):
Qt+1 = (Q Т + QT)t = (Q mod 2T)t . (4.13)
Сравнивая выражение (4.12) и (4.13), заключаем, что функция возбуждения Т - триггера должна быть равна
Тi = А{i} mod2 P{i} = A{i}P{i} + A{i}P{i}. ( 4.14)
Логическая схема разряда накапливающего сумматора, построенная по выражениям (4.12,а) и (4.14), изображена на рис. 18,б. Эта схема реализует идею последовательного переноса - быстродействие ее определяется временем прохождения сигнала переноса по цепочке переноса.
4.3.4. Построение накапливающего сумматора на интегральных микросхемах. Серия K155 не содержит в своем составе схем накапливающих сумматоров, поэтому многоразрядные накапливающие сумматоры собираются из комбинационного сумматора и статического регистра, как это показано на рис. 18, в. В качестве регистра можно использовать либо сдвиговый регистр в режиме записи, либо набор D - триггеров (K155TM5 или K155TM7), запись в которые осуществляется по значению логической переменной на D - входе.
4.4. Счетчики
4.4.1. Определение счетчиков. Счетчиком называется устройство, выполняющее операцию счета сигналов, поступающих на его вход. Если при поступлении сигнала счета численный эквивалент кода счетчика увеличивается, то счетчик называется работающим на сложение, если уменьшается - то работающим на вычитание. Если в счетчике реализованы оба режима работы, то он называется реверсивным.
Счетчики, формирующие выходной код в виде двоичного позиционного кода, называются двоичными, в виде двоично-десятичного позиционного кода - двоично-десятичными. Возможно также построение счетчиков, работающих в пятиричной, шестиричной или двенадцатиричной системе счисления. Счетчики можно рассматривать как накапливающие сумматоры, в которых в качестве слагаемого А выступает константа +1 или -1. Поэтому счетчик можно определить как сумматор, накапливающий код ±1. По своей структуре счетчики значительно проще накапливающих сумматоров, поэтому они и выделены в самостоятельный класс операционных элементов.
Рис. 19. Условное изображение счетчиков: а - работающий на сложение (вычитание); б -реверсивный; в - двоично-десятичный; г - счетчик-делитель на "10".
4.4.2. Операционное описание счетчиков. Процесс счета начинается с установки в счетчик начального кода A{1:k}:
УЗАП: СЧ{1:k}=A{1:k}, (4.15)
который, в частности, может быть нулевым
УН: CЧ{1: k} = 0. (4.16)
Счетчики, работающие на сложение и вычитание, описываются аналогично накопительному сумматору:
на сложение У: СЧ{1:k} = СЧ{1: k} + 1; (4.17)
на вычитание У: СЧ{1:k} = СЧ {1: k} - 1. (4. 18)
Реверсивный счетчик требует для своей работы двух управляющих сигналов: это либо сигналы сложения и вычитания, либо сигналы счета и реверса. Поэтому мы будем использовать два варианта описания с разными сигналами счета и одним сигналом счета. При записи по первому варианту: УВЫЧ: CЧ{1:k} = CЧ{1: k} - 1.
Использование одного имени в двух предложениях описания подчеркивает тот факт, что один и тот же счетчик может работать и на сложение и на вычитание, что определяется приходом соответствующего импульса счета. Естественно, что импульсы сложения УСЛ и вычитания УВЫЧ приходят всегда в разные моменты времени, так чтобы УСЛ * УВЫЧ =0. При записи по второму варианту:
Сигнал реверса R является потенциальным сигналом, его изменение происходит между импульсами счета У; во время действия импульса счета сигнал реверса остается неизменным. Конъюнктивная связь сигнала реверса с константой указывает, что при R = 1 счетчик работает в режиме вычитания, а при R = 0 (что соответствует R =1) - в режиме сложения.
Операция счета может быть организована в системе счисления с основанием 2,5,6,10 и 12. Основание 2 мы будем считать стандартным; при работе в системах с другими основаниями этот факт будет находить свое отражение в имени счетчика — СЧПЯТ, СЧШЕСТ, CЧDEC , СЧДВЕН. Особой разновидностью счетчиков являются делители импульсов. В них выходной сигнал формируется как импульс переполнения при счете до "К". Для описания работы счетчика - делителя мы будем использовать запись УСЧ: СЧДЕЛК = СЧДЕЛК + 1.
Счетчики - делители имеют один выход, состояние триггеров счетчика не индицируется. Условное изображение некоторых видов счетчиков приведено на рис. 19.
4.4.3. Построение счетчиков. Принято счетчики рассматривать как регулярные или квазирегулярные структуры и синтезировать поразрядно. Ограниченный объем учебного пособия не позволяет нам рассмотреть синтез всех видов счетчиков, поэтому мы подробно остановимся лишь на синтезе наиболее распространенных двоичных счетчиков. Все счетчики строятся как автомат Мура, у которых выходной код совпадает с кодом состояния (СЧ {1:k} = Q{1:k}).
Таблица 2
Синтез счетчиков, работающих на сложение. Синтез счетчика начнем с построения достаточно простой схемы - трехразрядного счетчика, после чего полученные результаты распространим на многоразрядные счетчики. Для синтеза счетчика применим метод синтеза конечных автоматов, изложенный в [2]. Выходной код | S(t) | Y | |
0 | 1 | ||
0 | S0 | S0 | S1 |
1 | S1 | S1 | S2 |
2 | S2 | S2 | S3 |
3 | S3 | S3 | S4 |
4 | S4 | S4 | S5 |
5 | S5 | S5 | S6 |
6 | S6 | S6 | S7 |
7 | S7 | S7 | S0 |
Трехразрядный двоичный счетчик имеет 8 состояний S и организует счет входных сигналов от нуля до семи. Пусть каждое состояние имеет номер, равный численному значению выходного кода счетчика S0 , S1 , S2 , S3 , ... , S7 , тогда под воздействием входного сигнала (У = 1) счетчик переходит в состояние, номер которого на единицу больше номера предыдущего состояния. При достижении состояния S7 происходит переполнение и счетчик возвращается в состояние S0. Если входной сигнал отсутствует (У = 0), состояние счетчика не изменяется. Рассмотренные положения могут быть положены в основу построения таблицы переходов и выходов (табл. 2). Будем строить счетчик как автомат Мура. Тогда каждое состояние Si должно быть закодировано соответствующим ему выходным кодом i, что приводит к построению кодированной таблицы переходов (табл. 3).
Таблица 3
Выходной код | S(t) | У | |||||||
Q2, | Q1 | Q0 | 0 | 1 | |||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
2 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
3 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
4 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
6 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
7 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
Определим функции внешних переходов триггеров Q0, Ql, Q2, для чего кодированную таблицу переходов преобразуем в диаграммы Кapно (1)
После минимизации получаем:
Выражение Q0 (t + 1) совпадает с функцией переходов Т-триггера, откуда следует, что нулевой разряд счетчика целесообразно строить на Т-триггере, подавая на его вход сигнал счета У:
Т0 =У. (4.22)
Преобразуем выражение для Q1(t+1), объединяя его члены по Q1 и Q1:
Полученное выражение совпадает с функцией перехода Т -триггера, если в качестве управляющего сигнала использовать УQ0 . Отсюда следует, что и Q1 может быть построен на Т - триггере с функцией возбуждения (4.23)
Сравнивая функции возбуждения триггеров (4.22), (4.23) и (4.24), нетрудно заметить, что каждый последующий триггер перебрасывается входным импульсом Г в противоположное состояние при наличии счетного импульса У и установке всех предыдущих триггеров в единичное состояние. Распространяя это правило на случай многоразрядного счетчика, заключаем, что все разряды счетчика могут быть построены на триггерах Г - типа, функции возбуждения которых определяются как k - 1
В зависимости от способа реализации функций возбуждения различают:
1. Счетчики с параллельным переносом, у которых все функции возбуждения формируются одновременно по выражениям
(4.25)
Такие счетчики являются самыми быстродействующими, поскольку все функции возбуждения могут быть сформированы одновременно.
2. Счетчики со сквозным переносом, у которых функции возбуждения формируются на цепочке комбинационных логических схем, структура которой определяется следующим преобразованием:
(4.26)
Отсюда следует, что всякий триггер может запускаться импульсом счета предыдущего триггера, еcли последний находится в единичном состоянии. Счетчики со сквозным переносом имеют регулярную структуру и поэтому проще в построении, однако быстродействие их несколько ниже счетчиков с параллельным переносом.
3. Счетчики с последовательным переносом в качестве импульсов счета используют выходные сигналы предыдущих триггеров. Такой режим работы оказывается возможным, если применяются триггеры с динамическим входом. В том случае, когда запуск триггера происходит по перепаду 1->0 ,
(4.27)
в противном случае импульс запуска необходимо снимать с инверсного выхода предыдущего триггера:
(4.28)
Счетчики с последовательным переносом чрезвычайно просты, они не требуют дополнительных схем формирования функций возбуждения, однако это достигается путем значительного снижения их быстродействия, поскольку последующий триггер начинает опрокидываться лишь после того, как закончится опрокидывание предыдущего триггера (будет сформирован импульс счета).
4. Счетчики с групповым переносом используют положительные стороны трех предыдущих методов построения - внутри группы осуществляется параллельный или сквозной перенос, чем достигается достаточно высокое быстродействие в группе, а группы соединяются последовательным переносом, благодаря чему реализуется простота построения схемы. Логические схемы счетчиков, работающих на сложение, изображены на рис. 20.
Синтез счетчиков, работающих на вычитание. В этих счетчиках под воздействием импульсов счета (У = 1) изменение состояния происходит в сторону состояний меньшего номера S7 ->S6, S6 -> S5, ... S0 -> S7, поэтому таблица переходов принимает вид (табл. 4).
Кодирование состояний произведем так же, как и в счетчиках, работающих на сложение (табл. 5).
Рис. 20. Логические схемы счетчиков, работающих на сложение: а - с параллельным переносом; б - со сквозным переносом; в - с последовательным переносом; г - с групповым переносом.
Таблица 4
Выход- ной код | |||
b(t) | 0 | 1 | |
7 | S7 | ||
6 | S6 | ||
5 | S5 | S5 | |
4 | S4 | S3 | |
3 | S3 | S3 | S2 |
2 | S2 | S1 | |
1 | S1 | S1 | S0 |
0 |
Таблица 5
Выход- ной код | S(t) | У | |||||||
Q2 | S3 | Qo | 0 | 1 | |||||
7 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
6 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
5 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | |
4 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
3 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
2 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
По кодированной таблице переходов построим диаграммы Карно Qo(t + 1), Q1(t + 1), Q2(t + 1) (2):
Диаграммы Карно (2) После минимизации полулаем:
(4.29)
(4.30)
Полученные выражения позволяют нам сделать следующие вывода:
1. Счетчики, работающие на вычитание, могут собираться на триггерах Т -типа, функции возбуждения которых описываются выражением
(4.31)
-
В счетчиках, работающих на вычитание, в формировании функции возбуждения участвуют инверсии выходных сигналов триггеров.
-
Для преобразования счетчиков, работающих на сложение, в счетчики, работающие на вычитание, достаточно счетные импульсы формировать по противоположным выходам предыдущих триггеров. Отсюда следует, что в схемах рис. 20 следует произвести простое изменение - сигналы формирования импульсов счета брать с инверсных выходов триггеров.
Синтез реверсивных счетчиков. Реверсивные счетчики имеют две цепи переноса, одна из которых работает при сложении, а другая - при вычитании. Рассмотрим логические выражения функции возбуждения триггеров реверсивного счетчика для пар входных сигналов (УСЛ, УВЫЧ) и (У, R) и всех известных нам способов организации переноса.
Параллельный перенос:
или
Реверсивный счетчик с последовательным переносом работает на паре входных сигналов У, R. Если в наличии имеется пара УСА, УВЫЧ, то ее необходимо преобразовать в У, R. Для формирования R может быть использован R-S -триггер, у которого при R = Q входными сигналами являются Qd = УВЫЧ и Rd = УСЛ. Поскольку сигнал реверса изменяется между импульсами счета, У формируется из УСЛ, УВЫЧ с задержкой: У = ЗАД(т) (УСЛ + УВЫЧ) Величина т определяется длительностью переходных процессов, связанных с установкой режимов сложения - вычитания в конкретном счетчике.
Логические схемы наиболее интересных вариантов реверсивных счетчиков изображены на рис. 21,а, б и в; на рис. 21,г представлена логическая схема формирования сигналов реверса и счета для счетчика с последовательным переносом.
Построение счетчиков, работающих в системе счисления с произвольным основанием. Такие счетчики используют для своего построения принципы группового переноса - внутри группы осуществляется счет по заданному основанию, импульс переноса между группами возникает при переполнении по тому же основанию. Поскольку значение произвольного основания не совпадает с целой степенью двух, то для построения разряда счетчика в наборе n двоичных триггеров используются не все их состояния, а только часть, так чтобы 2(n-1) < q < 2n. В принципе из 2n состояний могут быть исключены любые - первые, последние или промежуточные, это приведет лишь к изменению соответствия между цифрами 0, 1, 2, .... q - 1 и комбинацией состояний триггеров (изменится таблица кодирования).
Рис. 21. Логические схемы реверсивных счетчиков: а - с параллельным переносом; б - со сквозным переносом; в - с последовательным переносом; г - формирование R и У на R - S -триггере
Если цифры новой системы кодируются двоичным позиционным кодом, то устройство формирования цифр можно исключить и использовать в счетчике первые q состояний. В этом случае исключению подлежат последние состояния двоичного счетчика. Так, например, при построении разряда десятичного счетчика можно использовать четырехразрядный двоичный счетчик, имеющий 10 состояний - от нулевого по девятый; импульс переноса в следующий десятичный разряд будет формироваться тогда при переходе разряда из "9" в "0". Исключение "лишних" состояний осуществляется введением в двоичном счетчике дополнительных связей. Эти связи формируют сигналы возбуждения триггеров таким образом, чтобы осуществлялся требуемый перескок через "лишние" состояния. В практических схемах это достигается формированием сигнала принудительного обнуления, который по достижению разрядом счетчика q-1 - го состояния устанавливает его в состояние "0".
4.4.4. Микросхемы счетчиков. Микросхемы серии К155 содержат самые разнообразные счетчики, отличающиеся разрядностью, основанием счета, способом формирования переноса и др. Рассмотрим наиболее интересные из них.
Два Д -триггера K155M2 могут быть использованы как двухразрядный счетчик с последовательным переносом, допускающий предварительную установку кода. Для этого достаточно соединить входы D с инверсными выходами Q. Вход синхронизации С можно теперь использовать как вход счетных импульсов Т. Установка триггера в начальное состояние осуществляется нулевыми значениями R и S; если начальной установки не требуется, то входы R и S остаются назадействованными (рис. 22,а). Четырехразрядный счетчик К155ИЕ5 представлен на рис. 22,б. Поскольку входы J и K незадействованы, это эквивалентно подаче на J и K логической единицы, что для J-K - триггера соответствует режиму счетного входа. Это означает, что с приходом импульса С1 триггер каждый раз будет опрокидываться в противоположное состояние. Из рисунка видно, что в цепи переноса первого триггера имеетcя разрыв, который позволяет использовать К155ИЕ5 как совокупность одноразрядного и трехразрядного счетчиков. Для организаций четырехразрядного счета точки Q1 и С2 гальванически соединяются. Счетчик допускает установочное обнуление конъюнктивно связанными сигналами Ro(1) и Ro(2). Четырехразрядный двоичный реверсивный счетчик представлен микросхемой K155ИE7. Он выполнен по схеме с параллельным переносом и кроме счета (С = 1) позволяет производить обнуление (R0 = 1) и установку начального кода (С = 0). Импульсы сложения УСА подаются на вход "+1", вычитания УВЫЧ - на вход "-1". Импульсы переноса p и заема р снимаются с выходов >= 15 и <= 0 соответственно. Схемы К155ИЕ7 могут соединяться в многоразрядные счетчики с групповым переносом. Для этого достаточно выходы Р и Р предыдущей схемы соединить со входом +1 и -1 последующей схемы (рис. 22,г); сигналы С и R0 становятся в этом случае общими.
Двоично-десятичный счетчик представлен микросхемой К155ИЕ2. Она представляет собой четырехразрядный двоичный счетчик с дополнительными обратными связями. Разрыв в цепи переноса первого триггера позволяет использовать ее как последовательность двоичного
Рис. 22. Микросхемы счетчиков:
а - на в -триггере K155TM2; б - четырехразрядный двоичный К155ИЕ5; в - реверсивный двоичный К155ИЕ7; г - соединение К155ИЕ7 в многоразрядный счетчик: д - двоично-десятичный К155ИЕ2; е - двоично-десятичный реверсивный К155ИЕ6; ж - двенадцатиричный К155ИЕ6; з - делитель на "10" К155ИЕ1 и пятиричного счетчиков. Схема допускает предварительную установку в "0" и "9". Логическая схема счетчика и его условное обозначение изображены на рис. 22, д.
Таблица 6
Код состояния | Q3 | ||
0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 1 | 1 | 0 |
4 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
Поскольку действие дополнительных связей не затрагивает работу первого разряда, ограничимся рассмотрением пятиричного счетчика. Построим таблицу переходов, отображающую последовательность изменений состояний триггеров Q2 , Q3, Q4 (табл. 6). Исключение состояний 5, 6 и 7 осуществляется за счет перехода от кода 4 сразу к коду 0. Это достигается соответствующей организацией переходов Q2 (4) -> Q2(0), Q2(3) -> Q4(4), Q4(4) -> Q4(0), которые в таблице отображаются горизонтальными чертами между состояниями.
В отличие от двоичного счетчика рис. 22,б единица Q4 устанавливается при помощи записи синхроимпульсом С единичного значения кода &S = Q2Q3 . Эта единица существует один такт, поскольку сразу же вступает в действие связь R = Q4 = 1, обнуляющая триггер Q4 при воздействии следующего синхроимпульса С. В то время, когда Q4 находится в единичном состоянии, его инверсный сигнал принимает нулевое значение Q4=0, которое по входам К и J блокирует действие синхроимпульса С на триггер Q2 , что приводит к сохранению в нем нулевого состояния.
Реверсивный двоично-десятичный счетчик К155ИЕ6 отличается от двоичного реверсивного счетчика лишь импульсом переноса, который формируется по коду "9" (рис. 22, е). Двенадцатиричный счетчик К155ИЕ4 изображен на рис. 22,ж. За счет введения дополнительных связей в шестиричном счетчике Q2 ,Q3, Q4 исключены состояния 6 и.
7. Счетчик-делитель представлен микросхемой К155ИЕ1 – декадным счетчиком с фазоимпульсным представлением информации (рис. 22,з). Он строится так же, как и К155ИЕ2, но выходной сигнал его формируется: Y = Х3 Х4 Q1 Q2 Q4. Входы X1 и X4 связаны конъюнктивно и используются для обнуления счетчика (R = X1 & X2 ).
Глава 5. СЛОЖНЫЕ ОПЕРАЦИОННЫЕ ЭЛЕМЕНТЫ
Сложные операционные элементы строятся из простых операционных элементов, таких, как регистры, счетчики, дешифраторы, мультиплексоры и др., и выполняют над входными кодами ряд операционных преобразований. Мы рассмотрим два из них - запоминающее устройство (ЗУ) и арифметико-логическое устройство (АЛУ).
5.1. Запоминаюшие устройства
Оперативное запоминающее устройство (ОЗУ) строится из совокупности статических регистров, объединенных единым функционированием. Для сокращения количества управляющих сигналов записи на регистры (УЗАП) и считывания с регистров (УСЧ) используется дешифратор двоичного позиционного кода в унитарный (управляющий). Выходной год дешифратора выбирает регистр, к которому в данный момент происходит обращение (запись или считывание).
Рис. 23. Логическая схема ОЗУ
Все входные шины регистров гальванически соединяются, выходные мультиплексируются по выходным сигналам дешифратора.