Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 135
Текст из файла (страница 135)
РасХА)ирение компараторов Каскадное включение компараторов является чем-то таким, что мы обычно не стали бы делать в поведенческой модели, написанной на языке )/Н))Ь, потому что этот язык и пакет 1ЕЕЕ э ь«( 1оя1с а сХС Ь позволяют нам непосредственно определять компараторы любой желаемой длины. Однако, в действительности может потребоваться запись структурных или полуструктурных )/Н))(,-программ, которые специальным образом включают меньшие компоненты компаратора для получения высокой эффективности.
Вложенные операторы "АХ" и "Хог" могут приводить в процессе синтеза к появлению цепочек с большими задержками. Чтобы гарантировать получение быстрого двойного приоритетного шифратора, необходимо при проектировании следовать структурному или полуструктурному подходу. Можно, например, начать с описания модели быстрого 8-входового приоритетною шифратора в стиле потока данных, используя идеи, нашедшие свое отражение в принципиальной схеме ИС 74))г)48, приведенной на рис.
5.50, или в соответствующей программе на языке АВЕЬ (табл. 5.24). Затем можно два таких шифратора поместить в одну структуру, где для нахождения входа со вторым по старшинству приоритетом исключается вход с высшим приоритетом, чтобы найти второй вход, как это было в схеме, изображенной на рис.
6.6. 6.8. Примеры проектирования с использованием языка )(Н(ЭЬ 603 В табл. 6.28 приведена простая поведенческая модель 64-разрядного компаратора с выходами «равно» и «больше чем». В этой программе используется пакет 1ЕЕЕ асс( 1одйс цпэ10песч чьи встроенные функции сравнения автоматически воспринимает все сигналы типа ЯТ0 0001С ЧЕСТОЕ как целые числа без знака. Хотя эта программа безусловно синтезируема, быстродействие и размеры результирующей схемы зависят от «интеллектуальных возможностей» тех программных средств, которыми вы пользуетесь.
Табл. 6.28. ПоведенческаЯ ЧНП~.-пРогРамма длЯ 64-РазРЯдного компаРатоРа 11Ьтату 1ЕЕЕ; иве 1ЕЕЕ.в»а 1обас 1164.а11; иве 1ЕЕЕ.вса 1о81с ппвзбпеа.а11; епсасу сошр64 Ав роте ( А, В: 1п ЯТО 00010 7ЕСТОЕ (63 аовпео О); ЕО, ОТ: опт ЯТО 10010 ); епа сошр64; атсЬтвессите сошр64 атсЬ от сошр64 Ав Ье81с ЕО <= '1' ввел А В е1ве '0'; ОТ < '1' вЬеп А > В е1ве '0'; епн сошр64 атсЬ; Альтернативой может служить последовательное включение таких, например,меньших компонентов, как 8-разрядные компараторы. В табл. 6.29 представлена поведенческая модель 8-разрядного компаратора. Развитые программные средства синтеза могут по этой программе создать очень быстрый компаратор„но даже при меньших возможностях программных средств можно быть уверенным, что в любом случае такой компаратор будет значительно более быстрым, чем 64-разрядный компаратор.
Табл. 6.29. ЧНО(.-программа для 8-разрядного компаратора 11Ьтату 1ЕЕЕ; пве 1ЕЕЕ.вен 1обас 1164,а11; иве 1ЕЕЕ.всд 1ЬЕАс »пвзбпеб.а11; епсАсу сошр8 Ав ротс ( А, В: 1п ЯТО 1.001С ЧЕСТОЕ (7 йовпсо О); ЕЦ, ОТ: опс БТО Ь001С ); епд сошр8; атсЬАсесспте сошр8 атсЬ о1 сошр8 Ав Ьебзп ЕО < '1' вЬеп А В в1ве '0'; СТ < '1' вЬеп А > В е1ве '0'~ епа сошра атсЬ; 604 Глава 6. Примеры проектирования комбинационных схем Теперь мы можем написать структурную программу, которая предусматривает создание восьми таких 8-разрядных компараторов, выходные сигналы которых пропускаются через дополнительную логику, чтобы найти полный результат сравнения.
Один из способов, каким зто можно сделать, показан в табл. 6.30. Оператор (Зепетасе создает не только отдельные 8-разрядные компараторы, но также и логику покаскадного включения, с помощью которой информация, необходимая для выдачи окончательного результата, собирается путем последовательного учета сигналов на выходах отдельных каскадов, начиная с самого старшего и кончая самым младшим, Табл. 6.30.
Структурная ЧН(3Ь-архитектура для 64-разрядного компаратора агсЬ»сеспнге соаре4» агсп о. соарес а» соаропеос соара рого ( 1, в: га зтс ).сстс тес)оа (7 по~оно с); Щ, от: оы З:"С ).ОГТС): епа соармепо; мяса). еца, стс: зтО 1ОО1с тестов (7 соне о с); — , > тсг с ь.с а1ме мзпа1 ЯЩ, Зцт: Стс ьсстс тестов (в со»асс С): — мгна1 сьа!п.-э)»1»с» генное Ьея»п зщ(в) - 1; естоп = с; С1; "ог а 1а 7 доамо С яемга1е зз: спера рога пар (1(7«1»с соаапо г-с), в(7+«»в со»псе .»с), щасч), стем)); ВЩ(1) «- ВЩ(г-1) анц ЕЦЕ(»); ЗСТЫ) «ССТ(1«1) ог (СЩЫ 1) апо СТВ(1)); епа Сан»гасе: яц «- зец(с); ст - зст(с); епс сапр84» аг«Ь; Если по архитектуре, приведенной в табл. 6.28, относительно простые программные средства могут выдать в качестве результата синтеза схему медленного итерационного компаратора, то в случае архитектуры из табл. 6.30 результатом синтеза будет более быстрое устройство, поскольку в нем в более явной форме «извлекается» информация из каждого 8-разрядного звена, которая затем пропускается через более быструю комбинационную схему (состоящую всего лишь из 8-уровневой логики И-ИЛИ, а не из 64-уровневой).
Более сильные программные средства могут «распараллелить» 8-разрядный компаратор, предложив более'быструю неитерационную структуру наподобие ИС средней степени интеграции 74х682 (см. Рис. 5.84), и преобразовать нашу итерационную логику объединения сигналов, поступающих от отдельных каскадов, в двухуровневую схему, реализуюшую выражения вида «<сумма произведений», подобные тем, какие бьши приведены в программе на языке АВЕЬ в табл 6 8 6.3.5.
Компаратор с управляемым режимом работы В качестве следующего примера давайте предположим, что имеется система, в которой нужно, как правило, сравнивать два 32-Разрялных двоичных слова, но иногда во входных словах необходимо игнорировать значения одного или двух младших разрядов.
Режим работы задается двумя битами М Т и МО, квк указано в табл. 6.9. Желаемое функционирование Разрабатываемого устройства совсем легко обеспечить средствами языка ЧНЫЬ, используя оператор сазе дяя выбора нужного 6 6, Примеры проектирования с использованием языка ЧНЕ)ь 606 поведения, как это сделано в программе в табл.
6.3 !. Эта программа представляет собой вполне доброкачественное поведенческое описание, которое также полностью синтезируемо. Однако у такого описания имеется все же существенный недостаток; оно, вероятнее всего, приведет к созданию в процессе синтеза трех отдельных компараторов для обнаружения равенства или неравенства сравниваемых величин (представленных 32, 3! и 30 двоичными разрядами), по одному на каждый из случаев в операторе сазе. Отдельные компараторы могут при этом быть или не быть быстродействующими, как это обсуждалось в предыдущем разделе, но в данном примере мы не будем подробно разбирать этот вопрос.
табл. 6.3! . ЧНО~-программа с поведенческой архитектурой для 32-разрядного компаратора с управляемым режимом работы 1 Ьгвгу 1ЕСЕ) оге 1ЕЕЕ,все 1оанс 1.'Се.вы; ове 1ЕЕЕ.вм 1окис нпе1впео.в) 1; епс1су Чвоеесвр 1в рог1 ( К: 1п 310 ЬОСТС УЕСТОЬ (1 Сового 0); — вове А, В; (п зтс 10010 растер.
(31 Ооепсо О); — оевсапес гпсекегв ЕО, СТ: ооп ВТЭ '0010 ); — ссврвггвоо геео1св епо Чвооесвр; вгсгпоесовге Уво1есвр, егсь ог ТвоОесвр Ав Ьекгв ргосеев (Н, А, В) Ьекгг овсе К 1в еЬеп '00" > >1 А В гпеп ГД < 1; етое ЕО <= О'; епв Ы; >Т А > В геев СТ < '1'; етое СТ < '0'; епа г(; вп "01" > 11 А(31 сового 1) — В(31 ооеппо 1) Сьев ЕО < '1'; е1ве РД < 'О'; епа И; 11 А(31 Оопп(о 1) > В(31 Ооетжо 1) сьев ст < '1'; егве сг < 'о, епс 1т; еЬеп "10" > 11 А(31 Аовпсо 2) = В(31 Вовпоо 2) гьеп ЕО < '1'; е1ве ЕО <- '0', есп 11; >1 А(31 ее<ого 2) > В(31 сового 2) сьев ст с '1', е1м ст < '0'; ева 1 вьеп осьегв > ВО <- о ; ст <= о ; опа саве; епл ргосевв; впв Рвалесвр вгсь; Более эффективное решение заключается в выполнении только одного сравнения входных слов по 30 старшим битам и получении окончательного результата с помощью дополнительной логики, которая реализует зависящую от режима работы функцию и позволяет, по мере необходимости, учитывать значения младших разрядов.
Этот подход продемонстрирован в табл. 6.32. Результат сравнения 30 старших битов представлен внутри процесса двумя переменив)ми: к030 и 0Т30. Затем используется оператор сазе, аналогичный приведенному в предыдущей архитектуре, посредством которого получается окончательный результат в зависимости от режима работы. Если желательно, то 30-разрядный компаратор можно оптимизировать в отношении быстродействия методами, которые были рассмотрены в предыдущем разлеле. 606 Глава 6. Примеры проектирования комбинационных схем Табл. 6.32. Более эффективная архитектура для 32-разрядного комперето- ра с управляемым режимом работы агсысесспгв чпосесрв агсь от теопвспр 1в Ьев1п ргосввв (Я, Я, В) чвг1аше ЕОЗО, СТЗО: ЗТО, ьоо!С; — ЗО.Ы сопраг1воп гевп!Св ЬеВ)п гв я(з! Оочпсо з) = в(з! Сочпсо с) сьев рсзо :- ! ; е!ве есзо :- о ; еас 11; 11 я(з1 аочпсо з) > В(з! сового з) сьев стао :- ! ; е!ве стао :- О ; есп 11; саве И 1а ЧЬеп "ОО" > Ы ЕСЗО-' 1 апп Я(! Сочпсо О) = В(! Со со О) сЬеп ЕО <" '!'; в!вв ЕО < 'О'; епа 11; 11 СТЗО ' 1' ог (ЕОЗО ' 1' апо Я(! Сочпсо О) > В(! Сового О)) сЬес СТ <= '1'; е!ве СТ < 'О'; епе 11; чЬвп "О!" > 11 ЕСЗО='!' ппа Я(1) В(1) Сввп ЕС <=.
'1'; е!ве ЕС < 'О'! епа 11; 11 СТВО='1' ог (ЕСЗО='1' впа Я(1) > В(1)) <Ьеп (и < '! ; е!ве Ст <- 'О ; С Ы; чЬеп "1О" > ЕС <- ЕСЗО; Ст <- ОтЗО; чЬеп осЬегв > Ео < 'О'; СТ < 'О'; еоо савв; апв ргосевв; епп упопвсре вгсЬ; 6.3.6. Счетчик числа единиц Несколько важных алгоритмов предусматривают счет числа единичных битов в слове данных. Подсчет числа единиц недавно был включен в системы команд ряда микропроцессоров в качестве одной из основных операций.