![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation А(15:01. 74x381 13 QOJ. u PO.L 74x381
13 Q1 L m P1 L ALU1 CO GO -C G2 P2 12 C4 11 C8 C12 -eALU.L -PfiLLJ. .13 02J. 14 P2 L ALU2 74x381 G 0-PP 13 азл .Ft15.0i Рис. 5.96.16-разрядное АЛУ С ускоренным групповым переносом Когда последовательно включается больше четырех АЛУ, их можно разбить на группы групп ( supergroups ), каждая со своей собственной микросхемой 182. Например, 64-разрядный сумматор имел бы четыре фуппы групп, состоящие каждая из четырех АЛУ и одной микросхемы 182. Сигналы с выходов G L и P L каждой из микросхем 182 можно подать на входы микросхемы 182 следующего уровня, так как они показывают, генерирует или передает переносы данная фуппа Фупп: module add title Adder Exercise Input and output pms A7..AO, B7..BO pin; SUMS..SUMO pin istype com; Set definitions A = [0, A7. .AO] ; В = [0, B7. .BO] ; SUM = [SUMS..SUMO]; equations SUM = A + B; end add Табл. 5.54. Программа на языке ABEL для 8-разрядного сумматора Хотя программа, описывающая сумматор, очень мала, ее трансляция требует большого времени и при этом возникает огромное число термов в минимальных двухуровневых суммах произведений. В то время как SUMO содержит только два терма-произведения, выражения последующих SUMi состоят из 5 2 - 4 термов; в частности, SUM7 состоит из 636 термов, а выражение для переноса из старшего разряда (SUM8) состоит из 2-1 =255 термов-произведений! Очевидно, что сумматоры с большим числом разрядов практически нельзя реализовать на основе двухуровневой логики. G L = ({G3 + РЗ) (G3 + G2 + Р2) (G3 + G2 + G1 + Р1) (G3 + G2 + G1 + GO)) P L={P0- PI Р2- РЗ). *5.10.8. Описание сумматоров на языке ABEL и их реализация в ПЛУ Язык ABEL поддерживает операторы сложения (+) и вычитания (-), которые могут применяться к наборам. Наборы интерпретируются как целые числа без знака; например, набор, состоящий из п битов, представляет собой целое число из интервала от О до 2 -1. Вычитание выполняется путем взятия вычитаемого с обратным знаком и сложения. Для изменения знака числа берется его точное дополнение; то есть операнд поразрядно инвертируется, а затем добавляется 1. В табл. 5.54 приведен пример сложения на языке ABEL. В определении набора SUM предусмотрено на единицу большее число разрядов, чем у слагаемых, для переноса из старшего разряда; в противном случае этот перенос нельзя будет учесть. При определении наборов для слагаемых, они расширеньЕ добавлением слева 0-го бита, чтобы соответствовать размеру набора SUM. О ПЕРЕНОСЕ В нашем примере сумматора выражение для сигнала на выходе переноса (SUM8) имеет то же самое число термов-произведений (255), что и выражения для выходных сигналов меньше или больше у 8-разрядного компаратора. Это и не удивительно, коль скоро вы понимаете, что возникновение переноса присложении А + В функционально эквивалентно выполнению неравенства А>В. В связи с тем, что время от времени сумматоры и компараторы с большим числом разрядов по-прежнему необходимы в ПЛУ, в языке ABEL предусмотрена директива @ CARRY (SCARRY directive), которая указывает компилятору на необходимость синтезировать сумматор с групповым сквозным переносом с и разрядами в группе. Например, если в программу, приведенную в табл. 5.54, включить оператор SCARRY 1; , то компилятор создаст восемь новых выходных сигналов переноса в двоичных разрядах с 0-го по 7-й. Эти внутренние переносы будут использованы в выражениях для SUM1-SUM8, то есть по существу будет создан 8-разрядный сумматор со сквозным переносом, имеющий задержку, в худшем случае равную времени восьми проходов сигнала через ПЛУ. Если применен оператор SCARRY 2; , то компаратор сформирует два бита переноса одновременно, создавая четыре новых выходных сигнала переноса в разрядах 1, 3, 5 и 7. В этом случае максимальное число термов-произведений, необходимых для получения сигнала на любом из выходов, все еще остается приемлемым, всего лишь 7, и задержка в наихудшем случае равна времени только четырех проходов сигнала через ПЛУ. При трех битах в фуппе (SCARRY 3;) максимальное число термов-произведений увеличивается до 28, что становится неосуществимым. Особенно часто встречается в языке ABEL и реализуется в ПЛУ прибавление или вычитание константы, равной 1. Эта операция используется в описании счетчиков, где говорится, что очередное состояние счетчика равно текущему состоянию плюс 1 для суммирующего счетчика и минус 1 для вычитающего счетчика. Выражение для /-го разряда счетчика можно очень просто сформулировать словами: Инвертировать /-й бит, если счет разрешен и биты всех разрядов с номерами меньше / равны 1 . Реализация этой операции требует только / + 2 термов-произведений для любого значения /, а в некоторых ПЛУ и ИС типа CPLD возможно еще большее сокращение их числа, вплоть до одного терма-произведения и одного вентиля ИСКЛЮЧАЮЩЕЕ ИЛИ. *5.10.9. Описание сумматоров на языке VHDL Хотя язык VHDL имеет встроенные операторы сложения (+) и вычитания (-), они работают только с целыми и действительными числами и физическими типами. В частности, они не работают с типами BIT VECTOR и с типом STD LOGIC VECTOR стандфта IEEE. Для этих типов в стандартных пакетах определены специальные операторы. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |