- •Часть 1
- •Часть 1
- •Введение 5
- •4.2.1. Обзор альтернативных решений 92
- •1. Проблемы проектрования фильтров с конечной импульсной характеристикой
- •1.1. Фильтры с конечной импульсной характеристикой
- •В большинстве приложений используются нерекурсивные фильтры с точно линейной фчх. Для такого фильтра передаточная функция имеет вид:
- •1.2. Синтез передаточных функций цифровых ких-фильтров в области дискретных и целочисленных значений коэффициентов
- •1.2.1. Критерии оптимальности решения
- •1.2.2. Начальные приближения
- •1.3. Основные этапы проектирования ких-фильтров
- •1.5. Пути повышения быстродействия устройств цифровой обработки сигналов в интегральном исполнении с применением модулярной арифметики
- •2. Варианты реализации цифрового фильтра
- •2.1. Цифровой ких-фильтр с единичными коэффициентами
- •2.2. Цифровой ких-фильтр с коэффициентами вида 2n
- •3. Методика проектирования цифровых ких-фильтров
- •3.1. Основные свойства и понятия модулярной арифметики
- •3.2. Структура устройств цифровой обработки сигналов в модулярной арифметике
- •3.3. Основные вычислительные процедуры в устройствах цифровой обработки сигналов и особенности их аппаратной реализации
- •3.2.1. Принципы построения модулярных сумматоров.
- •3.4. Вариация исходных параметров взвешенной чебышевской аппроксимации в задаче синтеза ких-фильтров без умножителей
- •3.4.1. Постановка задачи
- •3.4.2. Предварительные замечания
- •3.4.3. Возможные алгоритмы
- •3.4.4. Примеры синтеза
- •3.5. Синтез цифровых ких-фильтров без умножителей с помощью генетических алгоритмов
- •3.5.1. Введение
- •3.5.2. Применение генетических алгоритмов к синтезу фильтров
- •3.5.3. Выводы и будущие исследования
- •4. Применение цпос и плис для систем защиты информации
- •4.1. Использование плис в системах защиты информации
- •4.1.1. Способы защиты информации
- •4.1.2. Средства защиты информации
- •4.1.3. Разовые расходы на проектирование и внедрение в производство
- •4.1.4. Производительность
- •4.1.5. Цена
- •4.1.6. Настраиваемость
- •4.1.7. Масштабируемость
- •4.1.8. Доступность
- •4.1.9. Защищенность от взлома
- •4.1.10. Возможность перепрограммирования
- •4.2. Постановка проблемы
- •4.2.1. Обзор альтернативных решений
- •4.3. Описание реализации
- •4.3.1. Блок управления
- •4.3.2. Блок оценки частоты помехи
- •4.3.3. Канал обработки
- •Для уменьшения неравномерности предлагается следующая структура построения фнч канала обработки. Структурная схема фнч канала обработки представленная на рис. 4.11.
- •4.3.4. Выходное ару
- •4.4. Тестирование и заключение
- •1. Модульная схема программы
- •2. Описание программы
- •3. Руководство пользователя
- •Рис п.3. Главное окно программы
- •4. Анализ результатов работы программы
- •Параметры ачх для однородного цифрового фильтра с ких
- •Часть 1
- •394026 Воронеж, Московский просп., 14
3.3. Основные вычислительные процедуры в устройствах цифровой обработки сигналов и особенности их аппаратной реализации
Из анализа архитектур систем ЦОС, реализованных в модулярной арифметике, можно выделить следующие вычислительные процедуры, характерные для устройств данного типа (см. рис. 3.1, 3.2):
прямое и обратное модулярное преобразование;
арифметические операции модулярного умножения;
арифметические операции модулярного сложения.
Прежде чем приступить к обсуждению методов аппаратной реализации данных процедур, необходимо заметить, что значения модулей для устройств ЦОС в модулярной арифметике, как правило, не превышают значений 2 —2 . Это связано с тем, что необходимый динамический диапазон может быть обеспечен выбором модулей в указанном интервале. Так, например, в работах /12, 20/ были выбраны, соответственно, наборы модулей {3,5,7, 11, 17, 64}, перекрывающий 20-битный динамический диапазон (так как Л=Зх5х7х х 11 х 17 х 64 = 1 256 640 > 220),и{13, 17, 19,23, 29, 31, 64}, обеспечивающий 32-битный динамический диапазон (так как M=13х7х19х х 23 х 29 х 31 х 64 = 5 556 654 272 > 232). Следовательно, нас будет интересовать, в основном, реализация модулярных сумматоров и умножителей небольшой, до 7—8 бит, разрядности. Данная особенность является важной, так как определяет возможные методы реализации указанных узлов.
Рассмотрим более детально принципы построения и особенности реализации приведенных вычислительных процедур.
3.2.1. Принципы построения модулярных сумматоров.
В общем случае можно выделить три основных подхода схемотехнической реализации модулярных сумматоров (21):
прямая логическая реализация с использованием обычных блоков двоичной арифметики;
реализация с использованием таблиц состояний (так называемых look-up-tables);
гибридный метод, т. е. использование таблиц состояний наряду с блоками двоичной арифметики.
Аппаратная реализация модулярных сумматоров зависит от выбранного технологического базиса. При наличии ячеек памяти могут быть применимы подходы, связанные с использованием таблиц состояний. Однако в случае реализации в базисе произвольной логики наиболее целесообразным с точки зрения занимаемой площади и быстродействия представляется метод прямой логической реализации.
В случае прямой логической реализации суммирование по модулю mi для двух операндов а и b, находящихся в диапазоне {0, 1, ..., mi -1}, выполняется по следующей формуле:
(3.3)
Структурная схема, соответствующая формуле (3.3), приведена на рис. 3.3, а. Она состоит из обычных двоичных сумматора, вычитателя и выходного мультиплексора, который управляется знаковым разрядом вычитателя. Так как значение модуля m определено и является константой, то приведенную архитектуру можно видоизменить, добавив компаратор константы, который управляет мультиплексором (рис. 3.3, б). Несмотря на то, что вторая структура (рис. 3.3, 6) содержит на один компонент больше (добавлен компаратор) по сравнению с первой (рис. 3.3, а), в интегральном исполнении обе структуры являются примерно равнозначными, а выбор для конкретного модуля зависит, в первую очередь, от его значения. Это объясняется тем, что во втором случае может быть использован не полный, а частично-определенный вычитатель, так как нас интересуют только положительные значения (а+b- ,).
Сравнение двух структур в базисе 0,5 мкм библиотеки стандартных ячеек, выполненное в работе /22/, подтверждает приведенные выводы. Кроме того, применительно ко второй структуре может быть проведена достаточно эффективная аппаратная оптимизация для отдельных значений модулей. В работах /22, 23/ показано, что в этом случае для сумматоров по модулям типа ( ) и ( ) достигается выигрыш по занимаемой площади до 25–30 % без ухудшения, а в отдельных случаях с улучшением быстродействия.
Таким образом, можно видеть, что использование блоков двоичной арифметики при реализации модулярных сумматоров в интегральном исполнении обеспечивает большую гибкость при выполнении требований по площади и быстродействию. Например, в выбранном базисе модулярные сумматоры для небольших значений модулей могут быть построены с использованием двоичных сумматоров с последовательным переносом в целях минимизации занимаемой площади.
Для модулей большей разрядности целесообразно использовать двоичные сумматоры с ускоренным переносом для обеспечения заданного быстродействия.
Стоит отметить некоторые особенности построения модулярных сумматоров для отдельных значений модулей. Если mi = , то модулярный сумматор трансформируется в обычный позиционный сумматор, в котором не используется старший разряд или выходной перенос. Это связано с тем, что если (a+ b) < , то на выход модулярного сумматора должно проходить значение (a+ b) и старший разряд позиционного сумматора будет равен 0. В случае, если (а + b) > , то на выход должно проходить значение (а + b) - , а вычитание значения достигается путем инверсии разряда переноса, т. е. старший
Рис. 3.3. Структура модулярного сумматора с полноразрядным вычнтатслем (а), с компаратором и неполным вычнтатслем (б)
разряд позиционного сумматора опять становится равным 0. Таким образом, модулярные сумматоры для значений модулей являются самыми экономичными по площади и наиболее быстродействующими.
При построении сумматоров по модулю ( ) целесообразно воспользоваться так называемым свойством изоморфизма /24/:
(3.4)
где cout — выходной перенос или старший разряд позиционной суммы (а +b).
Формула (3.4) соответствует реализации сумматоров с так называемым циклическим переносом из высшего разряда в низший (end-around-cany adder). То есть, если перенос cout равен 1, то входной перенос младшего разряда также равен 1 и вычисляется сумма (а + b+ 1), а если перенос cout равен 0, то входной перенос младшего разряда равен 0 и вычисляется сумма (a + b). Отметим, что такой сумматор трудно реализовать напрямую с использованием обычного двоичного сумматора, так как подача выходного переноса старшего разряда cout на входной перенос младшего разряда создает комбинационную петлю и может привести к возникновению автогенерации. Авторами разработаны методы логического синтеза указанных сумматоров на основе BDD-технологии, которые позволяют реализовать быстродействующие сумматоры с ускоренным переносом по модулю ( ), увеличивающие быстродействие в 2 и более раз.
Методы аппаратной реализации модулярных умножителей для систем ЦОС в модулярной арифметике.
Существуют различные методы реализации модулярных умножителей. Некоторые из них ориентированы на определенные значения модулей типа 2" + 1 /25, 26/. В работе /27/ представлен модулярный умножитель, предназначенный для криптографических применений. Для значений модулей разрядности более 8—10 бит могут быть использованы специальные алгоритмы построения модулярных умножителей /28/.
Для небольших значений модулей (до 7—8 бит), которые в основном используются в системах ЦОС в модулярной арифметике, целесообразно применять реализацию на основе индексного или дискретно-логарифмического представления операндов. Основным преимуществом умножителей этого типа является тот факт, что операция модулярного умножения по модулю mj заменяется операцией модулярного сложения по модулю (т, — 1) с соответствующими индексными преобразованиями /29/.
Рассмотрим структуру индексного модулярного умножителя. Пусть т — значение модуля, по которому выполняется умножение двух модулярных чисел , и (при этом модуль т должен быть простым числом). Отображение операции умножения по модулю т на операцию сложения по модулю (т — 1) осуществляется по формуле
(3.5)
где g — первообразный корень, определяемый как целое число, возведение которого в степень 0, 1,2, ..., (m— 2) дает неповторяющиеся вычеты по модулю т.
Отображение по формуле (3.5) называется изоморфизмом между мультипликативной группой {gn} = {1,2,..., т — 1) с операцией умножения по модулю т и аддитивной группой {in} = {0, 1, ..., т-2} с операцией сложения по модулю (т — 1) /30/. Структурная схема индексного модулярного умножителя, соответствующего формуле (3.5), приведена на рис. 3.4.
Рис 3.4.
Как можно видеть из рис. 3.4, процедура модулярного умножения двух чисел с использованием индексного или дискретно-логарифмического представления операндов включает следующие стадии:
нахождение индексов in для каждого модулярного числа;
сложение полученных индексов по модулю (т - 1);
выполнение обратного индексного преобразования.
Другим интересным способом реализации индексного умножения является метод субмодулярного индексного преобразования. В этом случае операция умножения по модулю т также заменяется операцией сложения по модулю (т — 1), но при этом сумматор по модулю (т — 1) расщепляется на несколько модулярных сумматоров с соответствующим набором подмодулей msub1,..., msubr.
Этот набор должен удовлетворять следующим требованиям /31/:
подмодули msubl, ..., msubr должны быть попарно взаимно простыми.
Структурная схема индексного субмодулярного умножителя приведена на рис. 3.5.
Рис. 3.5. Структурная схема параллельного индексного субмодулярного умножителя
Таким образом, процедура модулярного умножения двух чисел с использованием индексного субмодулярного разложения включает следующие стадии:
нахождение прямого субмодулярного разложения для набора подмодулей;
сложение полученных элементов разложения по соответствующим подмодулям msubf,
выполнение обратного субмодулярного преобразования.
Данная структура также содержит большое число компонентов, однако анализ и сравнение двух данных типов умножителей, реализованных в интегральном исполнении, показывают, что индексные субмодулярные умножители (см. рис. 3.5) являются более эффективным решением с точки зрения площади и быстродействия по сравнению с обычными индексными модулярными умножителями (см. рис. 3.4). При этом существуют особенности, связанные с выбором тех значений модулей и подмодулей, которые обеспечивают лучшие характеристики качества.
Заметим, что при аппаратной реализации индексных модулярного и субмодулярного умножителей необходимо введение дополнительной логики, учитывающей условие, когда один или оба входных операнда равны нулю, и обеспечивающей нулевой результат на выходе схемы.
Проведенные авторами исследования и сравнения указанных архитектур индексных умножителей в базисе 0,5 мкм библиотеки стандартных ячеек позволяют определить ряд критериев выбора таких значений модулей, которые обеспечивают меньшую занимаемую площадь и большее быстродействие умножителей в заданном динамическом диапазоне.
Также отметим особенности построения умножителей по модулю .Для указанных значений модулей результат модулярного умножения определяется л младшими битами обычного позиционного умножения, что соответствует реализации двоичного умножителя с отбрасыванием старших разрядов.
Принципы построения прямого и обратного модулярных преобразователей.
Применение аппарата модулярной арифметики оправдано при наличии эффективных средств перехода из позиционной системы счисления в модулярное представление и наоборот. Эти преобразования могут вносить значительный вклад в аппаратные затраты устройства в целом.
Прямое преобразование из двоичного в модулярное представление может быть осуществлено с помощью прямой перекодировки и использованием таблиц состояний (look-up tables). С целью уменьшения аппаратных затрат и минимизации таблиц применяется комбинированный подход, основанный на использовании таблиц состояний и модулярных сумматоров. Двоичное представление «-битного числа X можно записать в виде:
(3.6)
где b, имеет значение 0 или 1.
Для вычисления значения Х по модулю т формула (3.6) принимает вид
(3.7)
Структурная схема, соответствующая формуле (3.7), приведена на рис. 3.6.
Рис. 3.6. Структурная схема преобразователя из двоичного в модулярное представление
Приведенный алгоритм значительно уменьшает аппаратные затраты на реализацию таблиц состояний, а модулярные сумматоры имеют небольшую разрядность в соответствии с выбранным базисом модулей.
Обратное восстановление числа из модулярного представления в двоичную систему счисления осуществляется по формуле (3.1), согласно следствию "Китайской теоремы об остатках". Математический алгоритм восстановления включает следующие стадии:
вычисляется произведение модулей М (М = ); напомним, что составной модуль М определяет динамический диапазон восстанавливаемых чисел;
для набора модулей { } вычисляется набор структурных чисел (k1, k2, ..., к }, где ki ;
для набора структурных чисел вычисляются числа, обратные им, { , ,… }, где определяется из условия ;
число восстанавливается по формуле (3.1). Реализация формулы (3.1) в аппаратуре также требует использования таблиц состояния наряду с модулярными сумматорами. Вариант такого преобразователя на основе алгоритма с предварительной обработкой данных, позволяющего не увеличивать разрядность промежуточных результатов, представлен в /32/. Финальный многоразрядный сумматор по составному модулю М может быть построен на основе пирамидального сумматора с использованием сумматоров по модулю М для двух операндов.
В заключение отметим, что аппаратная реализация таблиц состояний (look-up tables), которые применяются во многих модулярных вычислительных процедурах, зависит от выбранного базиса, т. е. таблицы состояний могут быть реализованы как на основе ячеек памяти, так и на основе произвольной логики.