![]() ![]() ![]() ![]() ![]()
Раздел: Документация
0 ... 84 85 86 87 88 89 90 ... 119 где д{ = Xiyi, р, = ж;фу,-. На рис. 6.96,6" показана схема одноразрядного сумматора, выполненная в соответствии с (6.43). Узлы, выделенные пунктирной линией, называются полусумматорами. Сигнал </,- = 1 вырабатывается в тех случаях, когда в данном разряде перенос происходит из-за комбинации значений входных переменных х,-и у,, поэтому он называется функцией генерации переноса (Carry Generation). Сигнал р, = 1 разрешает прохождение переноса с, на выход сумматора, поэтому он называется функцией распространения переноса (Carry Propagation). Из (6.42) следует, что функции с,+1 и Si можно представить в виде: = gi V piCi, Si = g{pi © с,,(6.44) где д{ = xtyi, Pi = *i У Villa, рис. 6.97 показана схема 4-разрядного сумматора, составленная из четырех одноразрядных сумматоров SM. В этой схеме переносы с, передаются от разряда к разряду последовательно, что значительно снижает быстродействие сумматора. На основании (6.44) перенос с4 = 9з V р3(</2 V р2(дх V pi(g0 V p0c0)))(6.45) является функцией 4-го порядка относительно переменных </,-, Pi и со, что и обусловливает значительную его задержку. Сигнал С4 может быть подан на вход переноса такого же сумматора для выполнения операций сложения 8-разрядных чисел. На рис. 6.98 показаны ИС двоичных сумматоров, выполняющих функции: 155ИМ1 - одноразрядный сумматор (А0 = AXA2 V Л3 V А4, Bq = Bi в2 V2?з Vв4; символ "ф" означает функцию "монтажное ИЛИ"); 155ИМ2 - двухразрядный сумматор; 555ИМ5 - два одноразрядных сумматора; 155ИМЗ, 555ИМ6, 561ИМ1 - 4-разрядные сумматоры. Четырехразрядные сумматоры 155ИМЗ и 561ИМ1 построены по схеме, показанной на рис. 6.97, за исключением логики формирования переноса с4. На рис. 6.99 показана схема 12-разрядного параллельного двоичного сумматора с последовательными внутренним (внутри ИС) и внешним переносами. Данный сумматор может быть использован и для вычитания 12-разрядных двоичных чисел, если они представлены в дополнительном коде. При каскадировании сумматоров (рис. 6.99) быстродействие 4?г-разрядного (п - число ИС) сумматора можно существенно повысить, если перенос с4 формировать, как функцию более 155ИМ1 155ИМ2 * 1 Д1 -Цдг О" дзф SM ю Clc /146 &" 51 вг т вз<>
555ИМ5 13 12 £»1 11 - GHD,4 - V о 6-9 - НС
so со GHD, 14 - V с 155ИМЗ 155ИМ1 555ИМ6 ю 11 13 ДЗ ВЗ Д2 В2 Д1 В1 ДО ВО со SM S3 S2 S1 SO вз Д2 В2 Д1 В1 ДО ВО СО SM 12 - GHD.S - V в - GHD.te - V 7 - GHD.t* - Vc 2,з - НС з!°-1 ГЛ 561ИМ1 SM - GHD,te - V Рис. 6.98 *з-Уз" *2" У2- *1" У1- *о- Уо~
низкого порядка, чем получаемого в схеме на рис. 6.97. Снижение порядка функции с\ производится раскрытием скобок в выражении (6.45): С4 = 9з V р3с3 = 9з V рзд2 V рзР29\ V РзРгРго V Р3Р2Р1Р0С0 Полученная функция имеет второй порядок относительно переменных </,-, и с0, а значит обеспечивается меньшая задержка переноса C4. В сумматоре 555ИМ6 уменьшены задержки всех переносов с,-. Двоичные сумматоры с параллельным переносом. Сумматоры являются основными цифровыми узлами, на основе которых могут быть построены устройства, выполняющие другие арифметические операции. Скорость выполнения вычислений в ЭВМ существенно зависит от быстродействия сумматоров, поэтому при проектировании многоразрядных сумматоров должны использоваться методы, позволяющие увеличить их быстродействие [20, 24]. Для увеличения быстродействия многоразрядных сумматоров, получаемых последовательным включением 4-разрядных сумматоров, необходимо уменьшить время распространения сигнала с0 от входа до выхода C4. Из (6.44) следует: с«+1 = 9i V PiCi, сг = д0 V рос0, с2 = 9i V PiCj = дх V Ргд0 V PiPoCo, Сз = 92 V р2с2 = 92 V p2<7i V р2Р\до V Р2Р1Р0С0, . 4 = 9з V рз92 V p3P29i V РзР2Рг9о V p3P2PiPoA). Из (6.42) следует, что с,+1 = xty, V х,с{ V yiCi = x,j7, V х{с, V у,с, = д{ V р%с{, где = х{ V у{, g, = х{у{ (р,- = xiyi, д{ = х{ V г/;, т. е. определения функций р, и </, в (6.44) взаимно поменяли). Тогда разряды суммы Si = p{gi ф с,- и с, = Vi V р,с,, сг = #0 V р0со,1 сг = 9\ V Picx = <7г V pxgQ V ргр0го, - > (6.48) сз = 92 V р2сг = <72 V Р20г V P25i5o V РгРгРоо, J С4 = 5з V р3с3 = 53 V р352 V РзР29~1 V Р3Р2Р1 <7о V РзРгРгРоёо- (6.49) Если внутренние переносы в 4-разрядном сумматоре реализуются двухъярусной логикой в соответствии с выражениями (6.46) или (6.48), то перенос называется параллельным в отличие от последовательного переноса, показанного на рис. 6.97. Структурная схема 4-разрядного сумматора с параллельным переносом представлена на рис. 6.100 (CRU - Carry Unit - (6.46) (6.47) xys xys xys xys о о о 1 1 1 г г г з з з 555ИМ6 11 О о П 11 о о 11 о о 11 О о ПС - ЯР cpu Рис. 6.100 У1 -J pi xiB дз В,-IB3 -А\ -и Да s3 1-s2 St I- s„ SM SI C4 - C„ saj- 53 S26- 5, Si Рис. 6.101 Рис. 6.102 устройство переноса). Устройство переноса выполняет функции (6.46) и (6.47) или (6.48) и (6.49). Интегральная схема 555ИМ6 (рис. 6.98) представляет собой 4-разрядный сумматор с параллельным переносом, выполненный в соответствии с (6.48) и (6.49) [24]. Структурная схема реализации одного разряда Si показана на рис. 6.101. Каскадирование ИС 555ИМ6 производится так же, как показано на рис. 6.99. Если в (6.42) все переменные xi, yi и ct заменить на инверсные Xi, y~i и Ci, то функции Si и с,+1 также изменятся на инверсные: Si = х{ ф г7- ф с{, ci+1 - Xifi V х V у&.(6.50) На рис. 6.102 показаны эквивалентные обозначения 4-разрядных сумматоров, вытекающие из (6.50), для наиболее общего случая, когда используются прямые и инверсные входные сигналы в одном и том же сумматоре. Это позволяет использовать сумматоры для сложения чисел, представленных как в прямом, так и инверсном коде. Все сумматоры, приведенные на рис. 6.98, могут быть использованы для построения устройств сложения и вычитания многоразрядных двоичных чисел. Применения сумматоров. Покажем, что 4-разрядный сумматор можно использовать в качестве двух одноразрядных сумматоров. С учетом внутренних переносов сумматор, показанный на рис. 6.103,а, на основании соотношений Si = А{ ф В{ © d, Ci+i = AiBi V Aid V BiCi(6.51) описывается функциями: So = A0 © Bo ® Co, Si = Ax © Bi © Ci, S2 = A2 © B2 © C2, 53 = Л3 ® B3 © C3, C4 = A3B3 V Л3С3 V £3Сз, где Ci = Л0£0 V A0Co V £0Co, C2 = 4,2?, V Л1С1 V 2ВД, C3 = Л22?2 V Л2С2 V B2C2 - внутренние сигналы ИС. Подставив в эти функции значения (рис. 6.103,а) Ло = х, Во = у, Со = с0, Ai = Bi = 0, А2 = В2 = с0, А3 = х, В3 = у, получим: So = s0, Si = ci, S2 = 0, S3 = x © j/ © c0 = s C4 = xy V xc0 V yc0 = Cl, т.е. 4-разрядный сумматор при указанных на рис. 6.103,асоединениях входов может быть использован в качестве двух независимых одноразрядных сумматоров.
Рис. 6.103 На рис. 6.103,6 показано упрощенное условное графическое обозначение двоичного сумматора, где в левом и правом полях указаны веса входов и выходов сумматора. Действительно, входы Ло, Во и Со на основании (6.51) логически равноценны (взаимозаменяемы) и имеют вес, равный 1. Так же логически равноценны входы Ai и Bi (г = 1,2,3), поэтому приведенное на рис. 6.103,6 обозначение 4-разрядного сумматора более удобно в применении, чем обозначение на рис. 6.103,а. На рис. 6.103,е показано упрощенное обозначение двух одноразрядных сумматоров, выполненных на основе 4-разрядного сумматора. Сложение чисел, представленных в прямом коде, можно выполнить с помощью предварительного преобразования прямого кода в дополнительный. Чтобы сумму представить в прямом коде, необходимо выполнить обратное преобразование. Такие преобразования (прямого кода в дополнительный и дополнительного в прямой) легко осуществить с помощью ЛЭ, выполняющих функцию сумма по модулю два, и двоичных сумматоров на основании правил, приведенных в § 6.9. Так как правила преобразования прямого кода в дополнительный и дополнительного кода в прямой идентичны, то эти преобразования выполняются одной и той же схемой. На рис. 6.104,а показана схема преобразования 8-разрядных кодов чисел А (х7 - знаковый разряд). а) х =1 =1 =1 =1 п sm sm SUB- -О. С4 S3-Q V Уп =1 г х -В0 со до sm
Рис. 6.104 Пусть на вход подается прямой код Г 0.Х, если X > 0, 1 Jn ~ I 1.Х, если X < 0, где X = Х = x6x$x4x3x2XiXo. Если х7 = 0, то а,- = 0 ф я,- = ж,-, &i = Xi, i = 0,1,...,6, т.е.код не изменяется, так как число положительное. Если х7 = 1, то а,- = 1 ф х,- = х,- (г = 0,1,..., 6) и сумматор производит вычисление суммы х7.Х + 1 - \.xsxbx4x3x2xixa + 1 = [Х"\д, 0 ... 84 85 86 87 88 89 90 ... 119 |