/
Автор: Тарасов И.Е. Потехин Д.С.
Теги: полупроводниковые устройства цифровая обработка сигналов обработка сигналов интегральные схемы издательство горячая линия - телеком
ISBN: 978-5-93517-341-7
Год: 2007
Текст
f I
и
Z JL
д
Д. С. Потехин
И. Е. Тарасов
IK
I
I
8
Q
Разработка систем
и
i
о
&
Й
- z сл *
fir/ • »*
fill* ’■<,
Г£М&7£ы1'
Программируемые логические интегральные
схемы (ПЛИС) типа FPGA и CPLD
Программное обеспечение
для проектирования ПЛИС
Инструментальные модули
ЗАО “SCAN”
Москва, 103055, ул. Образцова, 14/2
Тел. / Факс: (495) 796-9125
Email: office@scan.ru
www.scan.ru
I
1
Д. С. Потехин
И. Е. Тарасов
Москва
Горячая линия - Телеком
2007
ББК 32.852.3
П64
Введение
Потехин Д. С., Тарасов И. Е.
П64 Разработка систем цифровой обработки сигналов на базе
ПЛИС. - М.: Горячая линия - Телеком, 2007. - 248 с.: ил.
ISBN 978-5-93517-341-7.
Рассмотрены широко распространенные алгоритмы цифровой
обработки сигналов, а также особенности их реализации на базе про¬
граммируемых логических интегральных схем (ПЛИС) фирмы Xilinx®.
Приведены примеры реализации цифровых узлов на языке описания
аппаратуры VHDL, описание основных алгоритмов, анализ техни¬
ческих характеристик современных ПЛИС. Описан порядок работы
в САПР ISE™.
Для инженерно-технических работников, проектирующих цифро¬
вые устройства обработки сигналов, будет полезна студентам и аспи¬
рантам.
ББК 32.852.3
Адрес издательства в Интернет www.techbook.ru
Справочное издание
Потехин Дмитрий Станиславович
Тарасов Илья Евгеньевич
РАЗРАБОТКА СИСТЕМ
ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ
НА БАЗЕ ПЛИС
Редактор Ю. Н. Чернышов
Корректор А. В. Николаева
Обложка художника В. Г. Ситникова
Подписано в печать 05.12.06. Формат 60x90/16.
Печать офсетная. Уч.-изд. л. 15,5. Тираж 1500 экз. Изд. № 7341
ISBN 978-5-93517-341-7
© Д. С. Потехин, И. Е. Тарасов, 2007
© Оформление издательства
«Горячая линия-Телеком», 2007
В настоящее время цифровая обработка сигналов находится на
подъеме. Ее используют повсюду, включая радиолокацию, сейсмогра¬
фию, связь, радиоастрономию и медицинскую электронику. Активно
развиваются и находят рыночный спрос цифровые процессоры — спе¬
циализированные компьютерные устройства для обработки сигналов и
видеоизображений.
Математические функции для систем обработки сигналов и систем
автоматики можно реализовать с помощью механики (эксцентрики, ку¬
лисные механизмы и т.д.). Такие устройства надежно работают в те¬
чение многих лет, будут устойчивы к воздействию окружающей среды
и радиации, могут легко тиражироваться, но если требуется коррекция
реализуемой устройством функции, то фактически приходится весь ме¬
ханизм разрабатывать вновь. Кроме того, точность преобразования этих
устройств невысока, и относительная ошибка редко бывает лучше 1 %.
Подобную задачу можно решить методами аналоговой электрони¬
ки. Для этого потребуются усилители с нелинейными коэффициента¬
ми усиления, аналоговые перемножители, делители и т.п. Точность
аналоговых электронных устройств достигает 0,1 % и лучше. Но ана¬
логовые электронные компоненты чувствительны к температурным ко¬
лебаниям и старению.
Пр актика показала, что наиболее эффективный путь разработки со¬
временных измерительных устройств и систем автоматики — сначала
перевести физическую величину в электрический сигнал, после чего в
цифровую форму. В цифровом виде достаточно просто реализовать по¬
чти любые математические функции, подстройка устройств осуществля¬
ется перезаписью коэффициентов, а сами устройства тиражирируются
копированием программ. Самые точные цифровые устройства — изме¬
рители частоты-времени имеют относительную ошибку до 10“15.
Не стоит на месте и теоретическая база цифровой обработки сигна¬
лов. Наряду с хорошо зарекомендовавшими и проверенными методами
спектрального анализа, основанными на преобразовании Фурье, в на¬
стоящее время развиваются и новые методы спектрального анализа. В
качестве примера можно привести появившийся в конце 80-х годов ме¬
тод вейвлет-анализа (от английского слова wavelet).
Первые всплески, или вейвлет-функции, были построены Хааром
в 1909 г. Однако в явном виде математическая система, описываю¬
щая вейвлет-анализ, была сформулирована только в 1986 г. С. Малла и
И. Мейером [12, 13]. В настоящее время вейвлет-преобразование являет¬
ся мощнейшим оружием в руках разработчиков цифровой аппаратуры.
1*
4
Введение
Введение
5
Ряды и преобразования Фурье [1, 2] несмотря на давно известные и
обнаруженные уже в настоящее время недостатки легли в основу многих
приложений в новых и ведущих областях науки и техники, начиная от ре¬
шения дифференциальных уравнений различных классов, создания те¬
оретических основ современной электротехники, радиотехники, средств
связи и телекоммуникаций и кончая многочисленными физическими и
измерительными приборами, такими как измерители спектра, синтеза¬
торы сложных сигналов по гармоническим составляющим и т.д.
Вместе с тем по своей значимости роль вейвлетов уже сравнима с
ними. Вейвлеты имеют явные преимущества перед рядами Фурье с точ¬
ки зрения точного представления как самих функций, так и их разно¬
образных локальных особенностей. Важным отличием вейвлетов явля¬
ется возможность локализовать особенности нестационарных сигналов
во временной области. Вейвлеты перспективны в решении многих ма¬
тематических задач приближения (интерполяции, аппроксимации, ре¬
грессии и т.д.) функций, сигналов и изображений. Вейвлет-обработка
сигналов обеспечивает возможность эффективного сжатия сигналов и
их восстановления с малыми потерями информации, а так же решения
задач фильтрации сигналов. Популярные стандарты МР-4, JPEG 2000 и
известные графические программные средства Corel DRAW версии 9-13
уже широко используют технологию вейвлет-обработки изображений.
Вейвлет-преобразование включено в новейшие системы компьютерной
математики MATLAB, Mathcad и Mathematica.
Но применение вейвлет-технологий, особенно в приложениях реаль¬
ного времени, ограничено из-за большого количества операций умно¬
жения с накоплением. С все возрастающими «аппетитами» исследова¬
телей и разработчиков высокоточной аппаратуры уже не в состоянии
справляться мощная вычислительная техника с процессорами стандарт¬
ной архитектуры.
Второе, не менее мощное направление, так же активно развивае¬
мое последние 15 лет — нейронные сети [22]. Нейронные сети — это
исключительно мощный метод имитации процессов и явлений, позво¬
ляющий воспроизводить чрезвычайно сложные зависимости. Но самой
привлекательной в нейросетях является возможность использования ме¬
ханизма обучения.
Теория нейронных сетей возникла из исследований в области искус¬
ственного интеллекта, а именно из попыток воспроизвести способность
нервных биологических систем обучаться и исправлять ошибки, моде¬
лируя низкоуровневую структуру мозга.
Искусственные нейронные сети основаны на простой биологической
модели нервной системы, в то время как нервная система человека, по¬
строенная из элементов, называемых нейронами, имеет колоссальную
сложность. Около 1011 нейронов участвуют примерно в 1015 переда¬
ющих связях, имеющих длину метр и более. Подобные разветвленные
структуры очень сложно реализовывать с помощью стандартных про¬
цессорных устройств, выполняющих команды последовательно.
Одновременно с развитием математического аппарата нейросетей и
вейвлет-преобразований в середине 80-х годов прошлого столетия были
созданы программируемые логические матрицы (ПЛМ). Первые ПЛМ
позволяли реализовывать простые логические функции и не составляли
конкуренции стандартному набору логических схем, тем более процес¬
сорным устройствам. Но это направление электроники стало развивать¬
ся очень стремительно, достигнув к настоящему времени возможностей
современных процессоров, но превосходящих их в тех областях, где не¬
обходимо оптимизировать конкретную вычислительную функцию.
Современные программируемые логические интегральные схемы
(ПЛИС), в которые «выросли» ПЛМ, представляют собой высокопро¬
изводительные и высокоскоростные цифровые устройства. Количество
логических блоков в них может достигать более миллиона вентилей с
сопоставимым количеством межблочных связей. На ПЛИС удобно кон¬
струировать процессорные устройства различной архитектуры. Мож¬
но строить элементарные ячейки нейросети (искусственные нейроны)
с большим количеством межнейронных связей и реализовывать парал¬
лельные высокоскоростные (с тактовой частотой 100 МГц и более) вычи¬
слительные устройства, способные производить свыше 100 млрд опера¬
ций умножения с накоплением в секунду, что существенно превосходит
производительность самых мощных процессоров общего назначения.
Конфигурация ПЛИС может создаваться и корректироваться в тече¬
ние очень коротких промежутков времени (при большом опыте работы
до нескольких часов) [21]. За рабочий день опытный разработчик спосо¬
бен произвести несколько итераций в разработки своего устройства. Для
сравнения, цикл создания специализированного микрочипа приблизи¬
тельно равен 6 месяцев, по истечении которых появляется возможность
тестировать устройство и вносить коррективы.
Появление программируемой элементной базы открывает новые
возможности для создания эффективных вычислительных систем для
решения частных задач. Современные ПЛИС обладают как минимум
двумя преимуществами по сравнению с микропроцессорными система¬
ми: более высокой производительностью в задачах цифровой обработ¬
ки сигналов и возможностью реализации на одном кристалле систем
параллельной обработки информации. Соответственно, с проникнове¬
нием ПЛИС в практику разработки цифровых систем появляется реаль¬
ная возможность для создания уникальных систем на основе современ¬
ных вычислительных алгоритмов с высокими требованиями к произво¬
дительности аппаратной платформы.
При работе над данным изданием авторы не ставили целью дать
подробное перечисление алгоритмов цифровой обработки сигналов или
систематически изложить учебный курс проектирования цифровых си¬
стем. Данные вопросы достаточно хорошо освещены в специальной
учебной литературе. Тем не менее появление новой высокопроизводи¬
тельной элементной базы обуславливает необходимость периодического
6
Введение
Введение
7
пересмотра взглядов разработчиков на алгоритмы, методы и подходы
к проектированию. Например, ряд алгоритмов, которые ранее ввиду
чрезмерно высокой вычислительной емкости считались неприменимыми
на практике, вполне могут перейти в сферу практического применения
с появлением соответствующей вычислительной платформы. Предста¬
вляется, что микросхемы программируемой логики представляют собой
именно такое высокопроизвоительное решение, пригодное к использо¬
ванию в самых разных областях науки и техники.
Кроме того, нельзя забывать об еще одном важном моменте, свя¬
занном с развитием и распространением информационных технологий.
В настоящее время в области полупроводниковой микроэлектроники су¬
ществует тенденция увеличения стоимости технологической подготовки
производства при переходе к выпуску новой продукции по современным
технологическим процессам. Одновременно уменьшается время разра¬
ботки новых устройств. Программируемая логика является при этом
превосходной платформой для прототипирования новых систем, позво¬
ляя в короткие сроки и с небольшими финансовыми затратами получить
в распоряжение разработчика работающее цифровое устройство, полно¬
стью пригодное для практическиой проверки разработанных алгорит¬
мов. При наличии мощной теоретической базы ПЛИС являются поисти¬
не бесценным инструментом, позволяющим неограниченное число раз
изменять конфигурацию разработанной системы, получая в то же время
не абстрактную модель, а реально функционирующую микросхему.
Необходимо иметь в виду, что быстрое развитие технологии полу¬
проводниковых микросхем обуславливает быстрое устаревание техниче¬
ских и справочных сведений, излагаемых в литературе Поэтому в дан¬
ной книге информация о конкретных ПЛИС изложена в максимально
общем виде, с упором на рассмотрение основных критериев, по кото¬
рым следует производить оценку таких микросхем. Эти критерии могут
быть по аналогии применены и при анализе новых устройств, которые
будут появляться впоследствии. В то же время приведены и описания
современных ПЛИС фирмы Xilinx.
Обращаясь к выбору элементной базы, необходимо заметить, что
в настоящее время основная доля рынка ПЛИС поделена двумя веду¬
щими производителями: это фирмы Altera и Xilinx. Оба производите¬
ля выпускают примерно аналогичную по характеристикам и функцио¬
нальным возможностям продукцию, используют сопоставимые маршру¬
ты проектирования и похожие средства разработки. Поэтому теорети¬
ческую информацию и примеры на языке описания аппаратуры можно
с равным успехом применять к изделиям обоих фирм. В то же вре¬
мя ориентация на ПЛИС одной фирмы позволяет сосредоточиться на
изучении их характеристик и эффективнее использовать специальные
возможности таких микросхем. Поэтому с учетом имеющегося у авто¬
ров опыта работы с ПЛИС фирмы Xilinx именно они были выбраны в
качества примера аппаратной платформы для реализации алгоритмов
цифровой обработки сигналов.
Главы 2-4, 8, а также разделы 5.1-5.4 написаны Д.С. Потехиным,
разделы 5.5-5.8 и главы 6, 7 — И.Е. Тарасовым. Глава 1 написана
авторами совместно.
Авторы выражают благодарность сотрудникам КТЦ InlineGroup —
официального дистрибьютора фирмы Xilinx в России за оказанное со¬
действие в публикации и большое число полезных советов и замечаний.
Методы записи чисел и математические операции
9
Глава 1
Методы записи чисел в цифровых
системах и математические
операции над ними
Для качественной реализации цифровых устройств обработки сиг¬
налов крайне важно понимание математических основ их функциони¬
рования. Несмотря на то что в технике имеется тенденция к автома¬
тизации все большего числа операций (в том числе и операций про¬
ектирования типовых узлов цифровых систем), понимание основ функ¬
ционирования подобных систем позволяет выбирать наиболее эффек¬
тивные для конкретного случая варианты решений. Приведенный ниже
материал описывает базовые основы операций над числами, предста¬
вленными в цифровом виде.
1.1. Системы счисления
Существуют различные системы счисления. Мы в своей повседнев-
ной практике пользуемся десятичной системой, в которой любое число
представляется набором цифр от 0 до 9. В технических же приложени¬
ях предпочтение отдается двоичной системе счисления, так как у мно¬
гих систем есть два устойчивых состояния: у выключателя или реле —
замкнуто или разомкнуто, у ферритового сердечника блока памяти —
два направления намагничивания. Выход любого цифрового устройства
имеет два логических состояния — состояние с высоким потенциалом,
обычно называемое единичным, и состояние с нулевым потенциалом,
поэтому так и называемое нулевым состоянием. Таким образом, цифро¬
вые устройства могут представлять числа только в двоичной форме, т.е.
набором нулей и единиц, называемых битами. Восемь бит объединяются
в байт. В свою очередь байты объединяются в слова.
Современные компьютеры оперируют 64-битными или восьмибайт¬
ными словами. Их запись представляет собой строку длиной 64 симво¬
ла — нулей или единиц. Подобное число очень сложно для восприятия.
Поэтому для формализации записи двоичных чисел широко используют
системы счисления с основанием кратным 2П, например восьмеричную
или шестнадцатеричную.
Число D в любой системе счисления представляется набором сим¬
волов. расположенных в определенном порядке:
D — (1 nG-n — 1 - . . (71 С/ о, — 1 • • • G — тп •
(1.1)
В этом выражении п и т — целые числа. Выражение (1.1) означает, что
D = anrn ~ian^1rn~i +. . . + 7’1 + <7.0^° + «—i 1 + - . . + а_шг_т, (1.2)
где г — целое число больше единицы — основание системы счисления.
Например, десятичное число 381,5 = 3 х 102 + 8 х 101 + 1 х
10° + 5 х IO"1.
Коэффициенты сц — целые числа, удовлетворяющие условию: 0
<С г — 1. Так, для десятичной системы счисления аг могут прини¬
мать значения 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 (10 — 1 = 9), в двоичной — 0
и 1 (2 — 1 = 1). В шестнадцатеричной системе счисления кроме цифр
используют первые шесть букв латинского алфавита (А, В, С, D. Е. F),
при этом число А шестнадцатеричной системы соответствует 10 десятич¬
ной системы, a F — 15. Для формализации записи шестнадцатеричное
число обязательно начинается с цифры и заканчивается символом Н,
например 0С5АН. Для подчеркивания десятичной формы записи после
десятичного числа иногда ставят символ D, а после двоичного (которое
еще называют бинарным) — символ В.
Числа достаточно просто переводить из одной системы счисления
в другую. Так, для перевода двоичного числа в шестнадцатеричное и
обратно удобно пользоваться тем что 16 = 24, т.е. одной шестнадцате¬
ричной цифре соответствует четыре двоичных. Переведем число 0С5АН
в двоичную форму Для этого удобно сначала перевести число в деся¬
тичное, разложить его на числа кратные двум, а потом и в бинарное.
Так, ОСН = 12D = (8+4)D = (1 - 23 + 1 - 22 + 0 - 21 + 0 - 2°)D= 1100В, 5Н
= 5D— (4 + l)D=0101B и 0AH = 10D = (8 + 2)D=1010B, следователь¬
но, число 0С5АН = 1100’0101’1010В. Для обратного перевода двоичное
число группируется по четыре цифры и вместо которой группы записы¬
вается соответствующий шестнадцатеричный символ.
Для перевода шестнадцатеричного числа 0С5А.ВН в десятичную
форму в соответствии с (1.2) можно записать: 12 ■ 162 + 5 • 161 + 10 • 16° +
+ 11 • 16-1 = 3162,6875D. Двоичное число 1101,1В будет соответствовать
десятичному числу 1 ■ 23 + 1 • 22 + 0 • 21 + 1 • 2° + 1 • 2_] = 13.5D.
Для перевода десятичного числа в двоичное можно воспользоваться
правилом последовательного деления на основание двоичной системы.
Рассмотрим это на примере перевода числа 395D:
395D 2
2
197
2
19
18
98
2
18
17
8
49
2
15
16
18
4
24
2
14
1
18
9
2
12
2
1
0
8
4
12
6
2
1
4
0
6
3
2
0
0
2
1
1
11ООО1О11В
10
Глава 1
Методы записи чисел и математические операции
11
Этот громоздкий перевод из десятичной системы счисления в дво¬
ичную можно значительно упростить, если воспользоваться шестнадца¬
теричной системой как промежуточной:
395D
16
32
24
16
75
16
1
64
8
11
18ВН =0001 1ООО1О11В
1.2. Запись отрицательного числа
В предыдущем разделе были рассмотрены только положительные
числа. В цифровых устройствах существует три способа кодирования
знака числа, соответствующие коды называются прямым, дополнитель¬
ным и обратным. При любом основании числа г правила такого пред¬
ставления одни и те же. Для представления со знаком берется число
фиксированной длины.
Наиболее прост прямой код. Для записи знака числа в нем выде¬
ляется специальная позиция, которая называется знаковой и в которую
записывается 0, если число положительно, и 1, если число отрицатель¬
но. Такая запись приводит к появлению двух нулей (+0 и —0). В про¬
цессе выполнения операций сложения и умножения знаковая позиция
обрабатывается отдельно от значащих позиций.
В обратном коде изменение знака числа получается заменой каждой
цифры а.[, включая и цифру, указывающую знак, на г — 1 — сц. Обрат¬
ный код обладает тем свойством, что для умножения любого числа на
— 1 достаточно каждую цифру аг- заменить ее дополнением до г — 1.
В обратном коде, как и в прямом, присутствуют две записи нуля.
В дополнительном коде изменение знака каждого числа получает¬
ся прибавлением единицы к записи этого числа в обратном коде. Это
приводит к однозначной записи нуля.
Например, если инвертировать (умножить на —1) десятичное число
62 при длине числа в три цифры, то в обратном коде будет записано
как 937, соответственно при длине пять цифр — 99937. В двоичном
коде отрицательное однобайтовое число —011В, которое в прямом коде
записывается как 10000011, в обратном коде будет записано 11111100,
а в дополнительном коде 11111101. Соответственно —1 в однобайто¬
вом числе запишется в прямом коде как 10000001, в обратном коде —
11111110 и в дополнительном — 11111111.
Такое разнообразие форм записи числа получается из особенностей
работы цифровых устройств. Например, дополнительный код получа¬
ется естественно при работе реверсивного двоичного счетчика Вычита¬
ние единицы из нулевого состояния счетчика приводит к установке его
выходов в единичное состояние При вычитании чисел с получением
отрицательного результата также получается число в дополнительном
коде. Умножитель вообще не «обращает внимания» на форму записи
числа, поэтому умножение чисел со знаком проводится по модулю, а
знак результата определяется операцией ИСКЛЮЧАЮЩЕЕ ИЛИ над
знаками операндов.
1.3. Двоичная арифметика
Арифметические действия в двоичной системе (в двоичной ариф¬
метике) [23] проводятся по обычным для позиционных систем алгорит¬
мам, с которыми все хорошо знакомы на примере десятичной систе¬
мы счисления.
1.3.1. Сложение
Сложение многозначных чисел происходит по разрядам, начиная с
младшего. Рассмотрим примеры двоичного и десятичного сложения:
+ A ‘iiiioioi 998
В 1001101 15
S 101000010В 1013D
Точкой над числом обозначен перенос единицы в старший разряд.
Как видно из примера, правила сложения двоичных и десятичных чи¬
сел одинаковы.
Логическая схема многовходового сумматора приведена на рис. 1.1.
Все элементы многовходового сумматора, кроме сумматора нулевого раз¬
ряда, состоят из простых блоков с тремя входами и двумя выходами.
Входы слагаемых Bi и переноса Д_1 абсолютно равнозначны.
Сумматор нулевых разрядов состоит из элемента 2-1/1Л И с исклю¬
чением, а бит переноса нулевого разряда — элемент 2-1/1.
На рис. 1.2 представлен один блок остальных разрядов сумматора,
состоящий из трех элементов 2-1/1 и элемента 3-1/1Л1/1, формирующих бит
переноса. Если на входе хотя бы одного элемента 2-И присутствуют две
единицы, то бит переноса устанавливается в единичное состояние, иначе
Pi — 0. На выходе сумматора установится состояние = 1, когда один
или три входа находятся в единичном состоянии.
Рис. 1.1. Многовходовой сумматор
12
Глава 1
Методы записи чисел и математические операции
13
Рис. 1.2. Сумматор одного разряда
1.3.2. Вычитание
Рассмотрим вычитание в двоичной системе счисления:
_ii6ooou
1101001
ЮНОЮ
Сравним двоичное вычитание с десятичным вычитанием: 523 — 87 =
= 436. Известно, что при устном счете это же вычитание можно сде¬
лать проще. Если вычитаемое 87 заменить его двоичным дополнением
13 (100 — 87) или дополнительным кодом для соответствующего числа
разрядов, то операцию вычитания можно заменить сложением числа с
дополнением вычитаемого числа с последующим уменьшением следу¬
ющего разряда. При этом получится 523 + 13 — 100 = 436. В двоич¬
ной системе счисления можно поступить подобным образом. Для на¬
хождения двоичного дополнения числа 1101001 необходимо инвертиро¬
вать все его разряды (заменить нули единицами, а единицы нулями) и
прибавить единицу. Получается число 0010111. Тогда вычитание будет
выглядеть следующим образом:
11000011
+ 0010111
ДЮНОЮ
1
01011010
Описание цифрового шестиразрядного сумматора на языке VHDL
для реализации в ПЛИС приведено в примере:
library IEEE;
use IEEE. STD_L0GIC_1164. ALL;
use IEEE. STD-LOGIC-A.RITH . ALL;
use IEEE. STD JLDGICJUNSIGNED. ALL;
entity summ is
Port (А
В
S
end summ;
in stdLLogic vector(5 downto 0) ;
in stdilogic vector(5 downto 0);
out std_logic_vector(6 downto 0));
architecture Behavioral of summ is
begin
S<=30’&A+’0’&B;
end Behavioral;
Операции суммирования и присваивания (символ <=) ПЛИС произ¬
водит только с числами одинаковой разрядности, поэтому приходится
добавлять к слагаемым старший нулевой разряд. Операция сложения
выполняется за конечный промежуток времени, в течение которого на
выходе сумматора будет неопределенное состояние. Чтобы избежать
этого, сумматор необходимо сделать синхронным.
library IEEE;
use IEEE. STD_L0GIC_l 164 . ALL ;
use IEEE. STD_LOGIC_ARITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity summ is
Port (elk : in stdJogic;
A : in std_logic_vector(5 downto 0);
В : in std-J.ogic_vector(5 downto 0);
S : out std_logic_vector(6 downto 0));
end summ;
architecture Behavioral of summ is
begin
process(clk)
begin
if clk’event and elk =’1’ then
S <= Ю’ & A + Ю’ & B;
end process;
end Behavioral
В данном примере и далее жирным шрифтом выделены изменен¬
ные или добавленные строки По фронту сигнала elk на выходе устрой¬
ства появится сумма двух сигналов.
14
Глава 1
Методы записи чисел и математические операции
15
Существует разновидность сумматора, производящего суммирова¬
ние потока чисел с накоплением. Устройство, выполняющее такое дей¬
ствие, называется аккумулятором. Для корректной обработки знака чи¬
сла на вход аккумулятора необходимо подавать в прямом коде. По¬
этому, если числа поступают в дополнительном коде, необходимо их
предварительно преобразовать.
library IEEE;
use IEEE. STD_L0GIC_1164. ALL;
use IEEE.STD-LOGIC-ARITH.ALL;
use IEEE. STD-LOGIC-UNSIGNED . ALL;
entity summ is
Port (elk : in std-logic;
reset : in std-logic;
A : in std_logic_vector( 7 downto 0);
S : out stdLLogic_vector(15 downto 0));
end summ;
architecture Behavioral of summ is
signal znak : stdJogic;
signal Ad : stdjogic_vector(7 downto 0);
begin
znak <= A(7);
- Преобразование числа в дополнительном коде в его модуль
Ad <= ”10000000” - А(6 downto О) when znak = ’1 ’ else А;
process(elk, reset)
begin
if reset = ’ 1 ’ then
S <= ”00000000000000”;
elseif elk’event and elk =’1’ then
if znak = ’O’ then
S <= S + ”00000000” & Ad;
else
S <= S - ”00000000” & Ad;
end if;
end if;
end process;
end Behavioral
По сигналу reset аккумулятор будет асинхронно сброшен в нуле¬
вое состояние. Как видно из примера, знак числа обрабатывается от¬
дельно. На выходе аккумулятора число будет представлено в допол¬
нительном коде.
Разрядность аккумулятора должна быть больше, чем разрядность
входного потока чисел. Каждая операция сложения из-за бита пере¬
носа может увеличивать число на единицу старшего разряда, поэтому
разрядность аккумулятора должна быть увеличена на столько разря¬
дов, сколько их в числе тактов сложения Например, если аккумулятор
выполняет 256 операций сложения за один цикл, то необходимо увели¬
чить разрядность аккумулятора на восемь.
1.3.3. Умножение
В отличие от умножения в десятичной системе счисления двоичное
умножение отличается своеобразием. Если всем известная со школы де¬
сятичная таблица умножения состоит из 100 строк, то двоичная таблица
имеет четыре строки, соответствующие таблице элемента 2-1/1:
0-0 = 0
0-1 = 0
1-0 = 0
1-1 = 1
Эта простота позволяет умножение двоичных чисел заменить сло¬
жением со сдвигом. Величина сдвига определяется содержимым оче¬
редного разряда множителя. Однако сначала вспомним, как проводится
десятичное умножение. Перемножим два числа 354 и 241. Используя
алгоритм умножения столбиком, выписываем множитель строго под со¬
ответствующими разрядами множимого:
354 - множимое
х
241 - множитель
354 - первая строка
4-14160 - вторая строка
70800 - третья строка
85314 - произведение
При этом производимые действия соответствуют записи 354 • 1 4-
4-354 • 40 4- 354 • 200. В практике ручных вычислений второе, третье и
т.д. произведение получаются умножением не на 40 и 200, а на 4 и 2, по¬
этому нули в конце чисел не пишут и создается впечатление, что каждое
следующее произведение записывается со сдвигом на один разряд влево.
Вернемся к двоичному произведению чисел:
х
110011
1101
11011
+ 11011
11011
101011111
Очевидное преимущество двоичного умножения заключается в том,
что не надо находить произведение множимого на значения последова¬
тельных разрядов множителя, так как значения этих разрядов могут
быть могут быть 0 или 1, а это значит, что операция умножения сво¬
дится к сдвигу множимого. Для ускорения операции умножения сдвиг
можно производить одновременно во всех разрядах.
Рассмотрим принцип построения умножителя четырехзначного чи¬
сла на четырехзначное.
16
Глава 1
Методы записи чисел и математические операции
17
library IEEE;
use IEEE. STD_LOGIC_1164. ALL;
use IEEE. STD -LOGIC JLRITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity mult4x4 is
Port (A : in std_logic_vector(3 downto 0) ;
В : in std_logic_vector (3 downto 0);
P : out std_logic_vector (7 downto 0));
end mult4x4;
architecture Behavioral of mult4x4 is
signal pa, pb, pc, pd: std_logic_vector (7 downto 0);
begin
- Помещаем результат сдвига в соответствующий регистр
ра <= ”0000” & A when В(0) = >1’ else ”00000000”;
pb <= ”000" & А & ’О’ when В(1) = ’1’ else ”00000000”;
рс <= "00” & А & "00” when В(2) = ’1’ else ”00000000";
pd <= 3О3 & А & ”000" when В(3) = ’1’ else ”00000000";
- Находим произведение
Р <= pa + pb + pc + pd;
end Behavioral
Как и в случае с сумматором, во время преобразования на выхо¬
дах будет неопределенное состояние, избежать которое поможет син¬
хронный умножитель:
library IEEE;
use IEEE.STD_L0GIC_1164.ALL;
use IEEE. STD-LOGIC-ARITH. ALL;
use IEEE. STD _LOGIC_UNSIGNED. ALL;
entity mult4x4s is
Port (elk : in stdjogic;
A : in stdLLogic_vector(3 downto 0);
В : in std-JLogic_vector(3 downto 0) ;
P : out std_logic_vector(7 downto 0));
end mult4x4s;
architecture Behavioral of mult4x4s is
signal pa, pb, pc, pd: std_logic_vector(7 downto 0);
begin
- Помещаем результат сдвига в соответствующий регистр
ра <= "0000” & A when В(0) =4’ else "00000000";
pb <= ”000" & А & ’О’ when В(1) = ’13 else ”00000000”;
рс <= ”00" & А & ”00” when В(2) = 3I3 else ”00000000”;
pd <= ’О’ & А & ”000" when В(3) = ’1> else "00000000”;
- Находим произведение
process(clk)
begin
if clk’event and elk =’1’ then
Рис. 1.3. Выделенные умножители
Р <= ра + pb + рс + pd;
end if;
end process;
end Behavioral
Разрядность получаемого числа равна сумме разрядностей сомно¬
жителей.
Быстродействующий умножитель очень важное устройство цифро¬
вых приложений. В ПЛИС фирмы Xilinx, начиная с серии Virtex-ll и
Spartan-З, появился новый ресурс — встроенные быстродействующие
умножители формата 18 х 18 = 36. Умножители обеспечивают бы¬
строе получение произведения независимых 18-разрядных чисел без зна¬
ка с формированием 36-разрядного результата, которые могут работать
в асинхронном и синхронном режиме. Графическое изображение обоих
вариантов приведено на рис. 1.3.
Для синхронного варианта умножителя вход С является тактовым
входом, СЕ — вход разрешения счета. R — вход синхронного сбро¬
са (очистки буфера).
Устройства такого типа обладают целым рядом преимуществ по
сравнению с умножителями, выполненными на основе обычных конфи¬
гурируемых логических блоках (CLB) ПЛИС. Прежде всего, применяют¬
ся выделенные специальные ресурсы, которые очень экономно исполь¬
зуют площадь кристалла и имеют малую задержку сигнала. Асинхрон¬
ная задержка от изменения состояния входов до получения на выходе
нового значения произведения составляет всего 2...3 нс.
Кроме блоков умножителей, в указанных семействах ПЛИС имеют¬
ся встроенные блоки двухпортовой памяти емкостью 18 кбит. Важность
этого сочетания будет хорошо видна при рассмотрении построения ци¬
фровых фильтров и методов спектрального анализа.
ПЛИС серии Virtex-ll содержат 4-192 блока, в каждом из кото¬
рых имеется умножитель и блочная память. Современные ПЛИС се¬
рии Virtex. ориентированные на цифровую обработку, содержат до 512
устройств, содержащих умножитель и 48-битный аккумулятор.
Объединение умножителя и сумматора позволяет реализовать опе¬
рацию умножения с накоплением, которая является основой цифровых
18
Глава 1
Методы записи чисел и математические операции
19
фильтров, спектрального анализа и других методов обработки сигна¬
лов. Принцип работы данного устройства хорошо демонстрирует мо¬
дуль, написанный на VHDL:
library IEEE;
use IEEE. STD_LOGIC_1164. ALL;
use IEEE. STD_LOGIC_ARITH. ALL;
use IEEE. STD_LOGIC_UNSIGNED. ALL;
entity summ is
Port (elk : in std_logic;
res : in std_logic;
A : in std J_ogic_vector (17 downto 0);
В : in std_logic_vector(17 downto 0);
S : out stdLLogic-vector (47 downto 0));
end summ;
architecture Behavioral of summ is
signal P : std_logic_vector (35 downto 0);
begin
process(clk, res)
begin
if res = ’1’ then
S <= conv_stdJLogie_veetor(0, 48);— обнуление S
elsif clk’event and elk = ’1’ then
S <= S + "000000000000” & P;
end if;
end process;
P <= A * B;
end Behavioral
В таком устройстве разрядность аккумулятора рассчитывается по
формуле: разрядность множителя + разрядность множимого + разряд¬
ность числа, соответствующего количеству тактов сложения.
1.3.4. Деление
Двоичное деление, как и умножение, не является сложным. Но
целочисленная арифметика имеет свои особенности:
1011101011011101
1101 1110010
_10100
1101
_ 1111
1101
_10011
1101
1100 - отбрасываемый остаток
При целочисленном делении неизбежно появляется остаток, кото¬
рый приходится отбрасывать. Для увеличения точности деления можно
сдвинуть числитель на несколько разрядов влево (дописать справа ну¬
ли). Так вышеприведенный пример будет выглядеть: 101110101100000/
1101 = 11100101110. Но этот метод не всегда эффективен. Проблемы
возникают при широком динамическом диапазоне изменения обраба¬
тываемых чисел. Эту проблему помогает решить арифметика с пла¬
вающей точкой.
1.3.5. Извлечение квадратного корня
Для того чтобы разобраться с извлечением квадратного корня, рас¬
смотрим квадраты целых чисел. I2 = 1, 2~ = 4. З2 = 9, 42 = 16 и т.д.
Найдем разности квадратов этих чисел: 4 — 1 = 3, 9 — 4 = 5, 16 — 9 = 7.
Если продолжать этот ряд, то можно определить что разность всегда
будет равна нечетному числу, следовательно, для извлечения квадрат¬
ного корня можно последовательно, в порядке возрастания, вычитать
нечетные числа, а количество вычитаний до равенства остатка нулю и
даст искомое значение квадратного корня. Для примера найдем ква¬
дратный корень числа 16:
16 — 1 — 3 — 5 — 7 = 0,
всего было сделано четыре вычитания, следовательно, л/16 = 4.
Арифметический модуль, извлекающий квадратный корень целого
числа, имеет тактовый вход elk, вход сброса reset и вход числа /V.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE. STDJLOGICJLRITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity sqrt is
Port ( elk : in std_logic;
reset : in std_logic;
end_sqrt : out std_logic;
N : in std-logic_vector(15 downto 0);
sqrtN : inout std_logic_vector(7 downto 0));
end sqrt;
architecture Behavioral of sqrt is
signal buff_N : std_logic_vector(16 downto 0);
begin
process (elk)
begin
if clk’event and elk = ’1’ then
if reset = ’0’ then
if buffЛ /= ”00000000000000000”
and buff_N(16) /= ’1’ then
buff_N <= buff_N - ( "00000000” & sqrtN & ’1’);
20
Глава 1
Методы записи чисел и математические операции
21
sqrtN <= sqrtN + 1;
else
end_sqrt * 1’;
end if;
else
buff_N <= ’ 1’ & N; — записываем в буфер N и
добавляем разряд
sqrtN <= "00000000”;
end_sqrt <= J О’ ;
end if;
end if;
end process;
end Behavioral;
Входное число ,V необходимо поместить в буфер и добавить к нему
старший разряд, что и делается при активном сигнале reset Дополни¬
тельный разряд является знаковым и нужен для определения условия
окончания преобразования, так как высока вероятность, что в
образования разность будет отрицательным числом.
конце пре-
Время преобразования описываемого преобразователя зависит от
самого входного числа и находится из выражения
т — 1 x/v
1 пр — г V 1V ,
Jclk
(1.3)
где УДк — тактовая частота. Например, если входное число Л шест¬
надцатиразрядное, а тактовая частота =80 МГц, то максимальное
время преобразования в соответствии с (1 3)
х/2^ 2s
7пР = — t = = 3,2 • 10_G с.
g 10, g 1(),
Данный алгоритм математически корректен, однако количество ша¬
гов преобразования пропорционально получаемому в результате числу.
Кроме того, что разные аргументы будут требовать разного времени для
получения результата, для 16- и 32-разрядных вычислительных систем
время преобразования оказывается неприемлемо большим
Более удобным на практике является использование метода после¬
довательных приближений, в котором число шагов алгоритма пропор-
ционально количеству разрядов получаемого результата.
Метод по-
следовательных приближений применим для целого класса вычисли¬
тельных задач.
Пусть результат вычисления квадратного корня может лежать в
диапазоне [0; А7]. Это предположение в действительности не накла¬
дывает каких-либо трудновыполнимых условий, поскольку в цифровых
системах разрядность представления аргументов ограничено, а следова¬
тельно, ограничен и диапазон значений аргументов и квадратных кор¬
ней из них.
Выберем число уо — N/2. временно приняв его за результат вычи¬
сления квадратного корня. Рассмотрев теперь величину сравним ее
с аргументом. Если у§ > .г, то действительное значение квадратного
корня меньше, чем у§, иначе действительное значение больше у$. На
следующем шаге алгоритма добавим величину Аг/4 к у$ или к нулю в
зависимости от результата сравнения на предыдущем шаге. Удобно вы¬
бирать начальное приближение путем установки старшего бита в 1, с
последующим сбросом его в 0, если выяснилось, что < .г. На сле¬
дующем шаге алгоритма в 1 устанавливается очередной по старшинству
бит результата, квадрат полученного числа сравнивается с аргументом
и так далее до заполнения разрядной сетки результата.
Данный способ нахождения квадратного корня подразумевает, что
имеется удобный способ возведения в квадрат.
При извлечении квадратного корня, как и при вычитании, появляет¬
ся остаток. Для повышения точности преобразования можно добавлять
младшие разряды, причем добавление двух разрядов повысит точность
извлечения корня на один разряд, который необходимо отделить запя¬
той, т.е. представить результат в виде числа с фиксированной запятой
Для вычисления квадратного корня (как и для других функций)
в ряде случаев может быть использована таблица значений корней из
различных чисел. Такой способ применим, если диапазон аргументов
невелик (и затраты памяти на хранение таблицы приемлемы), а малая
производительность вычислительной системы не позволяет эффективно
реализовать один из описанных выше способов.
1.4. Способы представления
вещественных чисел и арифметические
операции
Целочисленная арифметика не всегда достаточна для описания по¬
ставленной задачи. Математика оперирует обычно с вещественными
числами, имеющими, кроме целой, еще и дробную часть. Теоретиче¬
ски длина дробной части бесконечна, но для практических приложе¬
ний, оказывается, достаточно указать первые А значащих цифр. По¬
этому в вычислительной технике разрядность вещественных чисел так¬
же ограничена.
Существуют два подхода к представлению вещественных чисел. Это
форматы с фиксированной и с плавающей точкой. Они различаются
сложностью реализации основных математических операций и диапазо¬
ном представляемых чисел. Рассмотрим оба этих подхода.
Формат с фиксированной точкой весьма прост для реализации на
процессорах с целочисленной системой команд и достаточно эффекти¬
вен для ряда применений. Для представления некоторого числа в этом
формате достаточно умножить его на заранее определенную константу
22
Глава 1
Методы записи чисел и математические операции
23
(удобнее всего на целую степень двойки — сдвинув на несколько разря¬
дов влево). Например, если мы выбираем в качестве такой константы
1000, то число 3.54 будет записано в виде 3,54 - 1000 = 3540. На самом
деле это целочисленная запись, но вместо количества единиц указыва¬
ется количество тысячных долей. Для получения истинного значения
числа достаточно поставить десятичную точку в некоторую фиксирован¬
ную (в нашем случае отделив точкой три младших разряда) позицию,
откуда и появилось название формата.
На практике под дробную часть числа обычно отводят фиксирован¬
ное количество двоичных разрядов. Например, в 16-разрядном числе
первые 8 разрядов могут представлять целую часть числа, а остальные
— дробную часть. Такой формат обозначается как 8:8, где перед двое¬
точием указывается количество двоичных разрядов для целой части, а
после двоеточия — для дробной части числа. В зависимости от реша¬
емой задачи можно использовать различное количество разрядов, как
для целой, так и для дробной части. Например, возможны форматы
12 : 4, 16 : 16 или даже 32 : 32. В последнем случае целая и дробная
части хранятся в отдельных 32-разрядных ячейках памяти.
Правила выполнения арифметических действий над числами с фик¬
сированной точкой достаточно просты. Сложение и вычитание выпол¬
няется точно так же, как и для целых чисел. Например:
00000001,10000000+ 00000010.01000000 = 00000011,11000000.
Переведя двоичные значения в соответствующие им числа с фик¬
сированной точкой, получаем
1,5 + 2,25 = 3,75.
Таким образом, сложение и вычитание чисел с фиксированной точ¬
кой представляет собой сложение (или вычитание) соответствующих це¬
лых и дробных частей. Положение точки в результате остается прежним.
Заметим, что преобразования чисел с фиксированной точкой вы¬
полняются по тем же правилам, что и для целых чисел. Если двоич¬
ная запись целого числа может быть разложена по степеням двойки,
начиная с нулевой, т.е.
10010001 = 1 • 27 + О ■ 26 + 0 • 25 + 1 • 24 + О • 23 + О • 22 + 0 ■ 21 + 1 • 2°,
то и для записи с фиксированной точкой сохраняется тот же принцип,
но после точки степени двойки становятся отрицательными:
0,100000 = 1 • 2-1 + 0 • 2~2 + 0 • 2~3 + 0 • 2"4 + 0 • 2~5 + 0 • 2"6.
Таким образом. 0.100000 представляет десятичное число 0,5, а
0,110000 — число 0,75 (0,5 + 0,25).
Умножение чисел с фиксированной точкой отличается тем, что по¬
ложение точки в результате смещается: например, умножение двух чи¬
сел формата 8 : 8 дает результат в формате 16 : 16. Это является
следствием правила умножения в столбик: число знаков после точки в
обоих перемножаемых числах суммируется для получения числа зна¬
ков после точки результата.
Похожая ситуация наблюдается и для деления — 16 : 16/8 : 8 =
= 8:8.
Отсюда можно сделать вывод, что для выполнения операций умно¬
жения и деления над числами с фиксированной точкой требуется как
минимум вдвое большая разрядность. Впоследствии полученный ре¬
зультат можно преобразовать к основному используемому формату.
Операции преобразования форматов сводятся к отбрасыванию лиш¬
них разрядов или знаковому расширению существующего числа. Таким
образом, операции над числами с фиксированной точкой могут быть реа¬
лизованы на целочисленных процессорах без существенных сложностей,
что является их несомненным достоинством. Вообще, данный способ
представления вещественных чисел вполне оправдывает себя, если диа¬
пазон изменения представляемых чисел невелик или имеет естествен¬
ное ограничение по величине квантования. Однако он не подходит для
вычислений, использующих значения, изменяющиеся в широком диа¬
пазоне, например алгоритмов численного дифференцирования. В таких
вычислениях значение производной может изменяться на десятки поряд¬
ков, и для одновременного представления наибольшего и наименьшего
из используемых чисел в одной и той же разрядной сетке требуется
чрезмерно большая разрядность.
Для решения этой проблемы используется формат с плавающей
точкой. Как следует из названия, десятичная точка не закреплена в
фиксированной позиции, а может подставляться в произвольное место.
Смещение десятичной точки от начального положения называется по¬
рядком числа, а само представление числа без учета положения точки
— мантиссой. Таким образом, двоичное число 0100,1001В может быть
представлено в виде 01001001В (мантисса) и —4 (порядок). Значение —4
показывает, что для получения правильного значения представленного
числа следует перенести десятичную точку на 4 разряда влево.
Значение порядка специально записано в десятичном виде По¬
скольку порядок может быть как положительным, так и отрицатель¬
ным (т.е. десятичная точка переносится как влево, так и вправо), для
его записи необходимо использовать число со знаком. Это несколько
усложняет преобразования чисел с плавающей точкой, поэтому вместо
числа со знаком используется обычное положительное число, но с од¬
ним замечанием: отсутствию смещения десятичной точки соответствует
некоторое положительное число. Обычно это половина от возможного
максимального значения порядка. Например, если для порядка выделе¬
но 8-разрядное двоичное число с возможными значениями от 0 до 255.
то можно условиться, что значение порядка 128 соответствует отсут¬
ствию смещения десятичной точки. Тогда смещение на 4 разряда влево
будет представлено порядком 128 — 4 = 124. или 01111100В.
24
Глава 1
Методы записи чисел и математические операции
25
С использованием всего 8 двоичных разрядов оказывается возмож¬
ным смещение десятичной точки на 128 разрядов влево или на 127
разрядов вправо. Таким образом, эквивалентное по представляемому
диапазону число с фиксированной точкой должно иметь по меньшей
мере 256 двоичных разрядов. Формат с плавающей точкой оказыва¬
ется значительно экономнее.
Одно и то же число может быть записано в формате с плавающей
точкой различными способами. Следующие записи будут эквивалентны:
00001.111 - 21. 0000.1111-22, 000,01111 • 23.
При взгляде на такую запись можно заметить, что теоретически
можно обеспечить большее число знаков после точки. В самом деле,
лидирующие нули не несут полезной информации и вполне могут быть
отброшены, а вместо них в мантиссе можно указать большее количество
младших разрядов. В пределе запись числа вообще не должна содер¬
жать лидирующих нулей, а смещение десятичной точки указывается по¬
рядком Такая форма записи, когда самый старший разряд мантиссы
равен 1, называется нормализованной.
В действительности, поскольку старший разряд в нормализованной
записи всегда равен 1, его обычно не хранят в памяти. Вместо него в
этой позиции хранят знак мантиссы, а единица в старший разряд под¬
ставляется автоматически. Математические сопроцессоры фирмы Intel
хранят старший бит мантиссы только во внутреннем представлении чи¬
сел с плавающей точкой, занимающем 80 бит.
Сложение и вычитание чисел с плавающей точкой имеет некото¬
рые отличия от аналогичных операций над числами с фиксированной
точкой. Это связано с тем, что перед сложением/вычитанием необхо¬
димо совместить положение десятичной точки в обоих операндах. Та¬
кая операция называется денормализацией. Мантисса числа с меньшим
порядком последовательно сдвигается вправо с одновременным увели¬
чением порядка При равенстве порядков можно выполнять операцию
сложения или вычитания над мантиссами. При этом порядок обоих
операндов равен порядку результата:
0,11011011 • 21 + 0.10010110 • 23.
Поскольку первое число имеет меньший порядок, его необходимо денор-
мализовать. Эквивалентной записью для него будет 0,00110110 • 23.
Теперь можно выполнить сложение мантисс:
0,00110110В + 0,10010110В = 0,11001100В.
Порядок результата равен 3.
Таким образом, результатом сложения является
0.11001100В ■ 23.
После выполнения операции сложения или вычитания над мантис¬
сами может потребоваться дополнительная нормализация мантис¬
сы результата (в случае переполнения разрядной сетки или обну¬
ления старших разрядов).
Из описания способа сложения/вычитания чисел с плавающей точ¬
кой видно, что его недостатком является потеря точности в случае суще¬
ственного различия порядков. Например, попытка сложить числа с 16
разрядами мантиссы не приведет к видимому изменению, если порядки
различаются более чем на 16. В этом случае операция нормализации
вызовет обнуление одной из мантисс, и результатом сложения будет
просто число с наибольшим порядком.
Операции умножения и деления чисел не требуют приведения по¬
рядков. Умножение производится по следующему правилу: перемноже¬
ние мантисс операндов дает мантиссу результата, а порядок результата
равен сумме порядков операндов. После получения мантиссы результа¬
та может потребоваться ее нормализация.
По схожим правилам производится и деление. Мантисса результа¬
та равна частному от деления мантисс операндов. Порядок результата
равен разности порядка делителя и порядка делимого. Здесь также мо¬
жет потребоваться нормализация мантиссы.
Операции нормализации и денормализации могут представлять не¬
которые сложности при программной реализации. Обычно во избежание
потери точности их проводят в специальном буфере, имеющем большую
разрядность, чем мантисса в исходном представлении числа (подобный
подход используется в сопроцессорах Intel, использующих 80-битный
внутренний формат представления чисел и 32- и 64-битные форматы
для чисел одинарной и двойной точности соответственно).
1.5. Трансцендентные функции
Особый интерес представляет вычисление трансцендентных функ¬
ций. На практике необходимость их вычисления служит одной из глав¬
ных причин использования вещественных чисел.
К трансцендентным относятся функции, которые не могут быть вы¬
ражены с помощью четырех арифметических действий. Существуют
различные классы трансцендентных функций: степенные, показатель¬
ные. тригонометрические, гиперболические, а также обратные к этим
классам. Несмотря на существующее многообразие, все эти функции
могут быть получены из небольшого набора базовых трансцендентных
функций.
Например, если существует способ вычисления функции sin х, то
можно использовать известные из тригонометрии соотношения:
Гл ~ COS .Г 1 м
cos х = V 1 — sin" ,r; tg.r = — ; ctg x — . (1.4)
sin x tg,r
26
Глава 1
Методы записи чисел и математические операции
27
II
il
С помощью тригонометрических функций обычно записывают ре¬
шение дифференциального уравнения второго порядка, которым может
быть описано множество физических процессов. Существует две основ¬
ные функции, с помощью которых записывают решение такого уравне¬
ния — sin .г и ег. Обе эти функции бесконечно дифференцируемы и не
могут быть получены путем обычных арифметических вычислений.
Дифференциальные уравнения второго порядка описывают множе¬
ство процессов, в числе которых движение зарядов в электростатиче¬
ском поле, электромагнитные колебания, волновые процессы и многое
другое. Наличие мощного математического аппарата делает такой спо¬
соб описания очень удобным, а следствием использования этого подхо¬
да является необходимость использования в результирующих формулах
трансцендентных функций.
Достаточным набором для реализации практически всего много¬
образия трансцендентных функций являются синус, экспонента, аркси¬
нус и логарифм (базовые трансцендентные функции и обратные к ним).
Сюда же можно добавить степенную функцию — возведение числа в
дробную степень.
Серьезным препятствием для вычисления этих функций является
отсутствие в цифровой электронике процессов, описываемых дифферен¬
циальными уравнениями второго порядка. Булева алгебра, лежащая в
основе логических операций, позволяет реализовывать только базовые
арифметические действия. Однако задача упрощается тем, что предста¬
вление вещественных чисел имеет ограниченную точность, а следова¬
тельно, можно использовать приближенные формулы для вычисления
трансцендентных функций, обеспечив совпадение тех разрядов резуль¬
тата, которые представлены в записи вещественного числа.
Простейшим способом приближенных вычислений является разло¬
жение функций в ряд. Удобнее всего пользоваться рядом Тейлора:
/(*£) — “Ь 1 (*£ *о) Т *о) Т • • •
+^.(.п)£а.:о1(ж _ х.о)" +.... (1.5)
TV
•) 4
X" X
cos .г — 1 1
2! 4!
Для рядов существует понятие радиуса сходимости — максималь¬
но допустимое отклонение аргумента от опорной точки. При превы¬
шении допустимого значения ряд может стать расходящимся и будет
давать неверные значения. Ряды, приведенные выше, имеют бесконеч¬
ный радиус сходимости.
Радиус сходимости следующих рядов ограничен и равен 1:
1п(1 + .г)=Л-
X
1
(1.7)
1п(1 — х) =
1 + тх 4-
1-2-3
(формула также называется биномом Ньютона);
1 ж3
1 ■ 3 х°
1 • 3 • 5 х‘
a resin х —
: я + -
—
-f-
4~ “г • • • >
2
3
2-45
2-4-67
(1-8)
з
£ „7
9
X
X X
X
arctg х —
х - --
■ +
—— —— ■ —1“ ■■ ■ ■ ■ •
3
5 (
9
Отдельное внимание необходимо уделить обратным тригонометри¬
ческим функциям. Арксинус сложнее для вычисления, но его аргумент
имеет естественное ограничение и не превышает радиус сходимости. В
то же время арктангенс определен на всей области действительных чи¬
сел, в том числе и за пределами радиуса сходимости. В этом случае
можно воспользоваться следующим преобразованием:
sin(7?/2 — х)
cos(tt/2 — х)
cos х
= Ctg X -
sin X
1
tg.r ’
Этот ряд использует некоторую опорную точку .то для вычисле¬
ния функции в ее окрестностях Производные в данной точке имеют
фиксированные значения, так что искомая функция оказывается рядом,
разложенным по целым степеням величины (ж — xq). Зная величину
(ж — £о)п, можно получить (х — .r0)n+1 простым умножением.
Основные трансцендентные функции имеют следующее разложе¬
ние:
sin х =
(1.6)
Таким образом, если аргумент арктангенса находится за пределами
радиуса сходимости, т.е. больше 1, можно найти арктангенс величины
\/х, который даст дополнение искомого угла до тг/2.
На практике достаточно ограничиться первыми Лг членами ряда.
Число Л может быть фиксировано, а может выбираться таким образом,
чтобы значение jV-J-1-го члена ряда не превышало некоторой величины.
Альтернативным вариантом является оценка по относительной ошибке
— величина следующего члена ряда, отнесенная к уже накопленной сум¬
ме, должна быть меньше заранее заданного предела. Последний вариант
более предпочтителен, так как позволяет обеспечить точное заполнение
мантиссы результата при различных значениях аргумента.
Обработка рядов является достаточно сложной задачей даже для
современных высокопроизводительных процессоров. Поскольку после¬
дующий член ряда удобнее всего получить непосредственно из предыду-
28
Глава 1
Методы записи чисел и математические операции
29
щего, вычисления обычно производятся последовательно. Ввиду этого
трансцендентные функции вычисляются за несколько десятков и да¬
же сотен тактов.
Если вернуться к ряду Тейлора — базовому для рассматриваемых
функций, то можно заметить, что при его вычислении используют неко¬
торую опорную точку, которая обычно выбирается равной нулю. В соот¬
ветствии с этим можно аналитически получить значения производных
в опорной точке, результатом чего и явились приведенные выше ряды.
Однако ничто не мешает выбрать опорную точку в другом диапазоне
значений аргумента. После пересчета производных и получения новых
коэффициентов при членах ряда можно существенно улучшить его схо¬
димость (которая тем лучше, чем ближе аргумент находится к опорной
точке), ограничив число членов ряда, подлежащих вычислению.
Разновидностью подобного подхода является использование таблиц
трансцендентных функций с интерполяцией результатов. Использова¬
ние таблиц вообще довольно эффективно и позволяет при наличии до¬
статочного объема памяти отказаться от вычисления функций, заме¬
нив его выборкой из таблицы. Такой подход успешно применяется в
графических программах, в которых для получения экранных коорди¬
нат с помощью тригонометрических преобразований не требуется вы¬
сокая точность.
Пр именение таблиц для вычисления тригонометрических функций
имеет еще одну разновидность эффективного применения. Рассмотрим
формулы:
sinfa + /?) = sin a cos /5 4- cos a sin Z?;
V ' (1-Ю)
cos(a + ,d) = cos a cos /3 — sin a sin /3.
Любой угол может быть представлен как сумма «грубого» (а) и
«точного» (.3). Имея таблицу синусов и косинусов «грубого» и «точ¬
ного» представления, можно получить уточненное значение синуса при
существенно меньшем размере таблицы. Например, при 90 значениях си¬
нуса и косинуса для основных углов первого квадранта с шагом в 1° и 100
значениях в диапазоне 0° ... 1° при общем объеме таблиц в 380 отсчетов
(по 190 для синуса и косинуса) получается 9000 вариантов аргумента.
1.6. Применение алгоритмов CORDIC
для вычисления некоторых функций
Аббревиатура CORDIC обозначает COordinate Rotation Digital Com¬
puter (цифровой компьютер для вращения координат). Рассматривая
выполнение в цифровой электронике элементарных арифметических
действий, легко заметить, что сложение и вычитание реализуются с весь¬
ма небольшими аппаратными затратами. Умножение выполняется сери¬
ей сложений и сдвигов, т.е. чуть сложнее, а операция деления — серией
вычитаний и сдвигов. С точки зрения аппаратной реализации, удобнее
всего основывать алгоритмы вычисления функций на операциях сдвига
и сложения (вычитания). Такой подход и используется в алгоритмах
CORDIC, которые позволяют с приемлемыми аппаратными затратами
вычислять целый ряд трансцендентных функций.
Рассмотрим преобразование координат, выполняющее поворот век¬
тора, заданного в алгебраическом виде, на угол Это преобразование
описывается следующими формулами:
= х cos е — я/ sin о;
У = COS чр + .г sin
Можно вынести за скобку cos 92:
х' = cos ^(.г: - у tg 9?);
у' ~ СО5<^>((/ + £tg^).
На первый взгляд, данная запись ничем не облегчает процесс вычи-
сления, поскольку трансцендентные функции по-прежнему присутству¬
ют в правой части выражений. Однако можно выбрать такие углы пово¬
рота, что tg 9? = 2“\ где i — целое число. Тогда операция умножения
на тангенс угла поворота окажется операцией сдвига! Имея набор углов,
тангенсы которых равны 1, 1/2, 1/4 и т.д., можно последовательны¬
ми операциями обеспечить поворот исходного вектора на любой угол
в пределах первого квадранта, чего вполне достаточно для выражения
тригонометрических функций от углов из II-IV квадрантов.
Итак, модифицированное преобразование будет выглядеть следу¬
ющим образом:
J-i-l-i = — 2 (Цу^у,
= Ki(yi 4-
где Ki = cos(arctg(2~7)) — 1 /\/1 -r 2_2?, d = 4:1.
Если учесть, что А/ представляет собой константу, серию поворо¬
тов можно выполнить путем последовательных сдвигов и сложений с
получением новых координат вектора у; на каждой итерации алго¬
ритма. Умножение на соответствующую константу можно выполнить
в любой момент, например по завершении серии поворотов. В общем
случае потребуется умножение на
А- = - i , (1.14)
П \/1 + 2~2’
г=0
где А — число шагов алгоритма.
Поскольку с увеличением ? угол поворота стремится к нулю, можно
ограничиться первыми N шагами алгоритма.
30
Глава 1
Методы записи чисел и математические операции
31
Для практического применения CORDIC необходимо добавить так
называемый аккумулятор угла (обозначим его как г). Поскольку ка¬
ждый шаг преобразования заключается в повороте исходного вектора
на некоторый угол, выбираемый из таблицы арктагенсов, для z можно
написать следующее выражение:
zi+i = Zi - di arctg(2~!),
т.е. на каждом шаге преобразования z равен текущему углу.
Для вычисления синуса и косинуса необходимо сделать следующее:
величина * устанавливается равной аргументу, xq — единице или 1/К,
а ус — нулю. На каждом шаге алгоритма di = —1, если Zj < 0, и 4-1
в противном случае (т.е. dj — sign(c7:). В этом случае последователь¬
ное применение поворотов эквивалентно двум действиям: изменению
аккумулятора угла до нуля (при переходе z в диапазон отрицательных
значений последующие повороты будут увеличивать этот угол) и одно¬
временной модификации величин х, у, задающих координаты вектора в
алгебраической форме. Поворачивая вектор z от zq до 0, алгоритм од¬
новременно изменяет координаты х, у. По завершению преобразования
х = Kxq cos го;
у = kxcsm z0\ (1.15)
с = 0.
Если начальное значение х было выбрано равным 1/1\, то х и у
будут соответствовать немасштабированным величинам косинуса и си¬
нуса соответственно.
Подобным же образом происходит вычисление ряда других функ¬
ций.
Альтернативные варианты использования CORDIC сводятся к двум
основным режимам вычислений, которые носят название векторного
(vectoring mode) и режима вращений (rotation mode). В режиме вра¬
щения аккумулятор угла инициализируется значением аргумента, и пре¬
образования происходят до тех пор, пока значение аккумулятора не ста¬
нет равно нулю (т.е. пока не произойдет поворот на заданный угол). В
векторном режиме начальным значением аккумулятора является 0, а в
переменные х. у загружаются значения вектора-аргумента в алгебраи¬
ческой форме. Серия поворотов происходит до тех пор, пока вектор,
задаваемый координатами х, у, не совпадет с осью х (т.е. пока у не
станет равным 0). В конце серии преобразований аккумулятор угла со¬
держит величину угла поворота. Векторный режим отличается способом
вычисления знака для итерационных преобразований: di = — sign(z/z).
В векторном режиме, например, можно рассчитать арктангенс угла,
заданного координатами в алгебраической форме. При этом
z — Со + arctg (~) • (116)
Такой метод допускает вычисление арктангенса от ос, поскольку
имеется возможность задания № = 0. Можно заметить также, что по¬
бочным продуктом этой операции является разворот исходного вектора
вдоль оси х Таким образом, х является длиной вектора, которая иным
способом должна бы быть определена по теореме Пифагора:
4" Ус • (1*17)
Семейство алгоритмов CORDIC включает в себя также вычисление
инверсных функций. Например, если начальное состояние х, у соот¬
ветствует вектору, направленному вдоль оси х (а* > 0, у — 0), то
серией поворотов можно добиться того, чтобы величина у стала рав¬
на значению входного аргумента агд. Для этого используется условие
di — sign(c/7\</ — ?/,-). В этом случае по завершению поворота величина
z будет соответствовать выражению
. ( arq \
?п = ~о 4~ arcsin - . (1.18)
\AnxcJ
Подобным же образом вычисляется арккосинус. Различие состо¬
ит в том, что выравнивание угла происходит не по величине у, а по
величине х.
Если выбрать в качестве углов поворота не арктангенсы, а гипер¬
болические ареатангенсы, становится возможным вычисление гипербо¬
лических функций: гиперболического синуса и косинуса. Итерационные
формулы выглядят следующим образом:
+ 1 “Ь diy[Q. ,
= У1 +
г7:+1 — Zi — di atanh(2~z);
di = sign(zj.
По завершению преобразований:
- лп[хо ch(cG) 4- уо sh(z0));
Уп = Лп(ус сЬ(г0) 4- sh(г0)):
= 0;
Ап = П \/1 - 2-2i.
п
Гиперболические функции являются важной основой для вычисле¬
ний ввиду следующих соотношений:
(1-19)
(1.20)
ехр(х’) = sh(#) 4- ch(#);
1п(ж) = 2 atanh
32
Глава 1
Методы записи чисел и математические операции
33
Рис. 1.4. Окно настройки параметров ядра CORDIC в пакете Core Generator, вхо¬
дящим в состав САПР ISE
Таким образом, алгоритмы CORDIC позволяют с помощью серии
сдвигов и сложений получить все основные трансцендентные функции,
широко используемые в современных вычислительных системах.
Ядро CORDIC имеет готовые реализации для FPGA и, в частности,
доступно в составе САПР ISE для ПЛИС Xilinx.
1.7. Операции над комплексными числами
В математике принято обозначать мнимую единицу (квадратный ко¬
рень из —1) буквой ?, но в теории электрических цепей буква i обозначает
мгновенное значение силы тока, поэтому в технической литературе ис¬
пользуется буква j: j = \/—1. Комплексное число записывается в виде
с = «4 jb. Здесь а — действительная часть числа с, обозначаемая
a = Rec, а b — мнимая часть числа с, обозначаемая b — Im с. Точка
над с указывает на комплексный вид числа.
Сумма комплексных чисел вычисляется по формуле
(</ 4- J6) -I- (/ + jd) — a 4-/4- j(b 4- (/), (1-22)
а произведение —
(а + jb\f + jd) = af + jad + jbf + j2bd = af - bd 4- j(ad 4- bf). (1.23)
Для приведения частного к рациональному виду используется со¬
пряженное с число сж — a — jb, при этом произведение комплексно¬
сопряженных чисел является действительным числом:
2 , 12
a 4" b .
(1.24)
вычисляется
по фор-
. bf — ad
'T + d?'
(1.25)
Im А
—>
I
с
b A
+
(а 4- jb)(ci — jb) — a2 — jab -н jab — j2bd =
С учетом (1.23) частное комплексных чисел
муле
(а + jb) _ (а + jb) (J - jd) _ af + bd
(J + jd) " (/ + jd) (J - jd) “ f2 +
Комплексные числа удобно изображать на
комплексной плоскости (рис. 1.5).
Модуль комплексного числа соответствует
длине вектора с ~ a 4- b на рис. 1.5 и находится
по теореме Пифагора:
= с — \/a2 Т = \/(Re с)2 + (Im с)2 —
— ^/ZZ*". (1.26)
с
« Re
Рис. 1.5. Ком¬
плексная плоскость
Для операций над комплексными числами удобно пользоваться со¬
отношением Эйлера:
е3 р — cos р 4- j sin у?,
где р — угол между векторами а и с, в теории электрических цепей этот
угол имеет смысл сдвига фаз между током и напряжением. Не трудно
видеть, что тангенс угла р находится как частное мнимой и действи¬
тельной части комплексного числа:
b Im с
= arctg - = arctg -—.
a Rec
С учетом соотношения Эйлера комплексное число может быть за¬
писано в форме
с ~ се^ = с cos р + Jcsin р = a 4- jb.
Произведение и частное комплексных чисел удобнее находить в экс¬
поненциальной форме:
eg — cej^g eja = eg
£ = ££L = £^0-°) (L30)
9 9^a 9
Примером функции комплексного переменного может служить по¬
лином /(г) = + г + 1, где z = х + jy (х w у действительные пере¬
менные). Эту функцию можно переписать в виде
/(ж, У) = (ж2 - У2 + ж + 1) + j(2xy + у),
(1-31)
34
Глава 1
Методы записи чисел и математические операции
35
Функция /(~) может быть дробно-рациональной функцией от z, т.е.
является отношением двух полиномов от z:
= 7# (132)
Если полиномы Аг(с) и 72(c) не имеют общих корней, то нулями
f(z) называют корни уравнения Л(3) = 0. Корни уравнения 72(c) = 0
называются полюсами (точками разрыва функции). Полюсы и нули
определяют ее с точностью до постоянного множителя. Иными словами,
если с", с?, . . ., — нули функции /(с), a z^, Aj, . .., z& — ее полюсы,
то найдется такое число с, что
гЬ-*1)
Я-Л) = • (1-33)
Ш-—-7)
Л = 1
Любой (отличный от постоянного) многочлен в поле комплексных
чисел имеет нули.
1.8. Преобразование Фурье
для гармонических функций
Свое по истине гениальное открытие в области аппроксимации и
интерполяции данных Фурье сделал в 1807 г., но настоящее осознание
его важности и активное применение пришло через полтора века после
открытия. Преобразование Фурье (Fourier transform) подробно описа¬
но во многих работах, например в [1, 4. 5], и заключается в переводе
временной функции ..г(/) в частотную А'(/):
Z+co
(1.34)
■
где t — время; f — частота. Иногда вместо произведения частоты
/ и 2тг используется 6; — 2тг/, которая называется циклической (или
круговой) частотой.
Существует и обратное преобразование Фурье, переводящее частот¬
ную функцию А'(/) во временную функцию ,г(/):
Z4-co
(1.35)
-ОС'
Для прямого и для обратного преобразования существует сокращен¬
ная форма записи: А(/) = — для прямого и #(/) = 77_'[А(/)]
— для обратного преобразования Фурье.
Для сигнала, описываемого произвольной функцией .г(/), не всегда
существует функция А(/), но периодический сигнал можно представить
в виде суммы гармонических функций с набором кратных частот (гар¬
монических составляющих), представляющих собой ряд Фурье:
»с(/) — Ао 4- A] si п(2тгft 4~ ) 4- Ao sin(2 ■ 2тгft 4~ y^2)4~
4-sin(3 • 2тг ft 4- £3) + • • •, (1.36)
где Ao — постоянное смещение периодического сигнала; Ai — ампли¬
туда основной гармонической составляющей, частота f которой обрат¬
но пропорциональна периоду повторения периодического сигнала; А?,
Аз, ... — амплитуды гармонических составляющих, частоты которых
кратны основной частоте; <£з. — начальные фазы соответ¬
ствующих гармонических составляющих. Очень часто вместо термина
«гармонические составляющие» используют термин «синусоиды», под¬
разумевая, что начальные фазы сигналов произвольны. В таком подходе
косинусоида также считается смещенной на тг/2 синусоидой.
Для нахождения амплитуд гармонических составляющих и их фаз
можно воспользоваться преобразованием Эйлера (1.27), и преобразова¬
ние Фурье будет иметь вид (1.34)
Z-f-сю /•-{-■'>3
,r(/) cos(2tt//)<// —j / .r(/) siп(2тг//) с/Л (1.37)
-со J — ОС
Интеграл с косинусом является вещественной, или реальной, частью
преобразования Фурье (Re А), а интеграл с синусом — его мнимой ча¬
стью (Im А). Амплитуда гармонических составляющих пропорциональ¬
на модулю выражения (1.37), который находится по формуле (1.26), а
фазы гармонических составляющих находят из соотношения (1.28).
Результатом решения прямой задачи преобразования Фурье явля¬
ется нахождение коэффициентов ряда Фурье (1 36) по соотношениям
(1.34) и (1.28). Решение прямой задачи называется спектральным ана¬
лизом, а восстановление сигнала по известным коэффициентам ряда
Фурье — спектральным синтезом. В реальных сигналах присутствуют
несколько периодических сигналов одновременно, поэтому для прове¬
дения спектрального анализа в какой-то частотной области приходится
перебирать большое число частот, для каждой из которых по соотноше¬
ниям (1 15) и (1А7) находят значения амплитуды и фазы, таким образом
восстанавливая спектр сигнала в интересующей частотной области.
Для иллюстрации преобразования Фурье возьмем гармоническую
функцию единичной амплитуды, т.е. функцию (1.36), амплитуда основ¬
ной гармонической составляющей Ai которой равна единице, а постоян¬
ное смещение и амплитуды кратных гармонических составляющих равны
нулю. Результатом разложения ее в спектр является так называемая 6-
функция (дельта-функция), изображенная на рис. 1.6. Дельта-функция
имеет бесконечную высоту (на графике обозначена стрелкой), нулевую
ширину и площадь равную единице
1/1 наоборот, по рис. 1.6 можно определить частоту анализируемо¬
го сигнала. Она соответствует частоте максимального значения моду-
Методы записи чисел и математические операции
37
1
10
(1.30) примет
вид
- /0)]
100
А Гц
Рис. 1.6. Преобразование Фурье гармонической функции частотой 50 Гц
ля функции А(/). Амплитуда колебаний соответствует площади 6-
функции, т.е. единице. Подставив найденное значение частоты и ам¬
плитуды в (1.36), получим исходное уравнение, т.е. по известным коэф¬
фициентам ряда Фурье восстановим исходный сигнал.
Пределы интегрирования не сменятся, так как при сложении бес¬
конечно большого числа и константы получается бесконечно большое
число.
Экспонента с показателем степени, в котором стоит сумма, может
быть разделена на произведение экспонент. Константы можно выносить
за знак интеграла. При этом (1.38) перепишется в виде
Ж(/ - /о)] =
1.9. Важнейшие соотношения, связанные
с преобразованием Фурье
В табл. 1.1 приведены важнейшие соотношения, связывающие функ¬
ции .r(t) и >/(/) и их функции преобразования Фурье .¥(/) и У(/). Они
составляют лишь малую долю всего класса теорем о преобразовании
Фурье, имеющихся в настоящее время в литературе, этого достаточно
для раскрытия материала.
Таким образом, запаздыванию во временной области соответству¬
ет умножение на комплексную экспоненту в области частот. Величина
2тг//0 = <£* по сути является фазой, следовательно, запаздывание по
времени приводит к сдвигу фаз в области частот.
Таблица 1.1
Номер
Функция
Преобразование Фурье
1
f+°° x(t)e^f‘dt
J — co 4
2
xmyu - ri) dv
3
;г(тМг~ T)dr
x(f)Y(f)
4
*■(/ -
5
X(f-fo)
6
dx( 11
7
в случае, если j?(0) — 0
8
|X(/)|2c// (равенство Парсеваля)
Для примера приведем вывод соотношения 4 из табл. 1.1. Функ¬
ция x(t — /о) представляет собой функцию x(t), смещенную вправо на
величину /о-
Заменим разность времен переменной т — t — t$. Приращение
функции di не зависит от постоянного смещения, поэтому dr — dt и
Обработка числовых потоков данных
39
Глава 2
Обработка числовых потоков
данных
2.1. Аналого-цифровое преобразование
и связанные с ним ошибки
Сигнал, величина которого зависит от времени, называется дина¬
мическим. Динамический сигнал можно описать как функцию време¬
ни. Если функция определена для всех точек на временной оси (на
определенном конечном интервале времени), то мы говорим, что это
непрерывный во времени сигнал. Если сигнал, а значит, и функция,
могут принимать любое значение в пределах некоторого интервала зна¬
чений, то сигнал называют сигналом с непрерывным множеством значе¬
ний. Почти все сигналы, возникающие в макроскопических физических
процессах, являются одновременно и непрерывными во времени и име¬
ющими непрерывное множество значений. Такие непрерывные сигналы,
изменяющиеся по мере того, как происходят изменения в непрерывных
физических процессах, называют аналоговыми.
Существуют также дискретные во времени сигналы. Значение та¬
кого сигнала известно только в определенные моменты времени. Дис¬
кретный во времени сигнал можно рассматривать как результат взятия
выборок непрерывного во времени сигнала. Операцию взятия выборок
еще называют оцифровыванием.
Выборка берется через равные промежутки времени, называемые
периодом взятия выборки или периодом дискретизации Тд. Период дис¬
кретизации обратно пропорционален частоте дискретизации /д. Началу
взятия выборки соответствует момент времени Iq = 0, а окончание взя¬
тия выборки происходит в момент времени = ЛАТД, где N — количе¬
ство точек выборки. Произвольный момент времени определяется как
Л- = ТД1 = j-i, (2.1)
/д
где i — номер выборки.
С учетом (2.1) уравнение оцифрованной гармонической функции
x(t} будет записано в виде
Важным параметром при цифровом анализе является безразмерная
величина m = \//Тд — /д/f, которая имеет смысл количества точек
выборки на период. На самом деле, результат взятия выборки сигнала
частотой / = 50 Гц с периодом дискретизации Тя = 1/10000 с будет
абсолютно идентичен сигналу частотой 500 Гц, оцифрованному с пе¬
риодом дискретизации Тд = 1/100000 с. Для обоих случаев m = 200
точек на период, а сигнал будет описан уравнением cos[(27r/?7i)z]. Та¬
ким образом, для восстановления сигнала необходимо отдельно запо¬
минать величину Гд.
Точно так же, как и момент времени, величина сигнала тоже мо¬
жет принимать только некоторые дискретные значения между задан¬
ным верхним Л'тах и нижним Xmin пределами. Тогда сигнал назы¬
вают дискретным по величине сигналом. Количество значений выбо¬
рочного сигнала равно 2П, где п — разрядность преобразования. При
этом любое значение сигнала будет записано как произведение цело¬
го числа D — an_ian_2 ... «1ао (см. разд. 1.1) на минимальный шаг
по амплитуде Aq:
max
mm
Процесс преобразования сигнала с непрерывным множеством зна¬
чений в сигнал с дискретными значениями называется квантованием
и реализуется с помощью аналого-цифрового преобразователя (АЦП).
Этот процесс происходит за конечный промежуток времени, поэтому не¬
прерывность сигнала теряется, что приводит к дискретизации сигнала
и по времени. Сигналы дискретные по величине и по времени, назы¬
ваются цифровыми.
В цифровых вычислительных устройствах информация о сигнале
хранится в виде столбца данных, где номер строки соответствует номе¬
ру выборки г, а сама строка содержит значение выборки в виде числа
D. Величины Тд и А~о хранятся отдельно и нужны только для вос¬
становления сигнала в аналоговую форму. Устройство, выполняющее
обратное преобразование сигналов из цифровой формы в аналоговую,
называется цифро-аналоговым преобразователем (ЦАП).
Для точного преобразования и восстановления сигналов использу¬
ются высокоточные источники частоты /д, которые, как правило, вы¬
полняют на кварцевых резонаторах и в особо ответственных случаях
помещаются в термостат.
Сигналы, поступающие на вход АЦП, являются источниками на¬
пряжения, и переменная .Y может быть заменена переменной U. На¬
пряжения просто делятся, но сложно умножаются, поэтому вместо ве¬
личины Uq обычно хранят величину [/max — C^min. которая называется
опорным напряжением Uon. Минимальный квант напряжения в соот¬
ветствии с (2.3)
Uo = Соп/2/г.
(2-4)
40
Глава 2
Обработка числовых потоков данных
41
Рис. 2.1. Аналоговый и цифровой сигналы
Рис. 2.3. Ошибки дискретизации по уровню
дой равной кванту амплитуды Лф и частотой равной частоте дискре¬
тизации /д.
Относительная ошибка аналого-цифрового преобразования нахо¬
дится как отношение кванта амплитуды диапазону входных сигналов
и обратно пропорциональна разрядности АЦП:
Рис. 2.2. Сигнал ошибки квантования по уровню аналого-цифрового
преобразования
Источники опорного напряжения служат для сравнения с ними ис¬
ходного сигнала при аналого-цифровом преобразовании, и при этом
преобразовании происходит восстановление аналогового сигнала отно¬
сительно Uon. Ошибка определения величины опорного напряжения
скажется на ошибке определения кванта амплитуды.
Итак, реальные сигналы, параметры которых приходится опреде¬
лять, в основном являются аналоговыми, т.е. сигналам, непрерывным
во времени и по амплитуде. Для обработки сигнала на цифровом вы¬
числительном устройстве его необходимо перевести в цифровую фор¬
му. Для этого существует операция взятия выборки, или оцифровы¬
вания. Эта операция выполняется специальными устройствами, назы¬
ваемыми аналого-цифровыми преобразователями (АЦП). Оцифровы¬
вание переводит аналоговый сигнал в сигнал, дискретный по времени
и по амплитуде.
На рис. 2.1 представлен фрагмент аналогового сигнала и соответ¬
ствующий ему фрагмент цифрового сигнала.
Процесс взятия выборок сопровождается появлением ошибок дис¬
кретизации по уровню и по времени. 1/1з рис. 2.1 видно, что существу¬
ет разница между цифровым и аналоговым сигналом. Величина этой
разницы лежит в пределах от 0 до Лф и является ошибкой аналого-
цифрового преобразования. Сигнал ошибки представлен на рис. 2.2.
Таким образом, оцифровывание можно представить как добавле¬
ние к входному сигналу некоторого пилообразного сигнала с амплиту-
Лф
-A max Amjn
Например, если необходимо оцифровывать напряжение изменяюще¬
еся в диапазоне от 0 до 10 В с абсолютной ошибкой 10 мВ, то относи¬
тельная ошибка 4пр = Ю_3, или 0,1 %. АЦП должно иметь разрядность
/г = 10, так как 210 = 1024. Пр и этом надо помнить, что если реальный
входной сигнал будет меняться не в указанных пределах, а в интервале
2,5...7.5 В, то это приведет к увеличению относительной ошибки вдвое
и к уменьшению эффективной разрядности до 9.
Операция аналого-цифрового преобразования проходит за конеч¬
ный интервал по времени, величина которого может меняться в преде¬
лах 7ф ± Д/, что приводит к появлению дополнительной ошибки дис¬
кретизации по уровню (рис. 2.3).
Как видно из рис. 2.3, ошибка определения уровня, связанная с
неопределенностью времени проведения замера ДА зависит от скорости
изменения сигнала. Полная ошибка дискретизации по уровню ДА будет
являться суммой перечисленных ошибок.
Дискретизация по времени приводит к не менее серьезным послед¬
ствиям. Если выборки на оси времени расположены не равномерно, то
это случайные (или псевдослучайные) выборки. При случайном взя¬
тии выборок информация о форме теряется, и по ним можно опреде¬
лить только плотность распределения вероятностей, что означает воз¬
можность определения среднеквадратичного (действующего) или пико¬
Обработка числовых потоков данных
43
вого (амплитудного) значения сигнала, а также диапазона принима¬
емых сигналом значений и т.п. Определить форму сигнала или его
спектр невозможно.
Если выборки распределены по оси времени равномерно, то гово¬
рят о взятии когерентных выборок. При этом возникает вопрос, сколько
выборок необходимо взять для того, чтобы иметь возможность точно
описать сигнал. В исследование этого вопроса большой вклад внесли
ученые Котельников, Найквист и Шеннон, которые независимо друг от
друга сделали вывод, что для восстановления (без ошибок) исходного
сигнала по его выборочным значениям, взятым через равные промежут¬
ки времени, частота взятия выборок (частота дискретизации) /д должна
более чем вдвое превосходить частоту /тах самой высокочастотной со¬
ставляющей, имеющейся в непрерывном входном сигнале:
/max /д/2- (2-6)
В (2.6) под максимальной частотой /тах понимается не только частота
полезного сигнала, но и частота шума.
Для того чтобы представить себе, что произойдет, если условие
Котельникова—Найквиста—Шеннона (2.6) не выполнится, рассмотрим ре¬
зультат перемножения двух гармонических сигналов:
ftp/. 2 = («1 cos 2тг/]7)(аз cos2tt/20 =
= ^СО5 2-(Л + /2)( + - f2)t. (2.7)
Как следует из выражения (2.7), в спектре появляются суммарные
и разностные частоты. Оцифрованный сигнал можно представить се¬
бе как произведение аналогового входного сигнала V (/) и сигнала S(f),
представляющего собой последовательность равноотстоящих единичных
6-импульсов с частотой следования равной /д. В результате спектр ис¬
ходного сигнала претерпевает серьезные изменения (рис. 2.4).
Спектр исходного сигнала ограничен частотами j\ и Д, но- как
видно из (2.2), в результате перемножения двух частот в результирую¬
щем спектре появляются суммарные и разностные частоты, что приво¬
дит к появлению прямой копии спектра сигнала, ограниченной часто¬
тами /д + /1 и /д + f-2, и так называемой зеркальной копии спектра,
ограниченной частотами /д — /•> и /д — /1-
Пока спектр исходного сигнала, ограниченный частотами Д и /», не
превышает половины частоты дискретизации, его легко отфильтровать
от спектров-копий, но если частота /2 превысит частоту /тах, т.е. не вы¬
полнится условие Котельникова-Найквиста-Шеннона, исходный и зер¬
кальный спектр начнут «наползать» друг на друга и станут неразделимы.
Это явление называется наложением спектров или элайсингом (aliasing).
Причиной появления элайсинга может быть как неправильно вы¬
бранная частота дискретизации так и наличие помех. Например, мы по¬
пытались оцифровать музыкальное произведение, частотный диапазон
которого 20...20000 Гц. Частота дискретизации при оцифровке сигнала,
удовлетворяющая критерию Котельникова-Найквиста-Шеннона, равна
44,1 кГц, но какой-то электроприбор, например монитор, сгенерировал
помеху с частотой 39 КГц. Сигнал помехи превышает по величине по¬
ловину частоты дискретизации, и возникает элайсинг. При этом помеха
«отразится» в нижнюю часть спектра, на частоту 44.1 — 39 — 5.1 кГц.
Следовательно, при воспроизведении этого музыкального произведения
через цифро-аналоговый преобразователь (ЦАП) на фоне музыки будет
слышан посторонний шум с частотой 5.1 кГц. в который преобразовался
сигнал помехи. Таким образом, помеха переместилась из неслышимой
ультразвуковой области в слышимую область, и избавится от нее без
потери качества сигнала уже невозможно.
Бороться с элайсингом можно увеличением частоты дискретизации
или ограничением спектра сигнала при помощи фильтров.
Дополнительные ошибки дискретизации по времени возникают при
появлении нелинейности в спектре исходного сигнала, все его часто¬
ты приобретают кратные гармонические составляющие, описываемые
рядами Фурье (1.33). Сигнал 5'(/), описанный ранее, имеет собствен¬
ный набор гармонических составляющих. Следовательно, (2.7) пере¬
пишется в виде
«1^2 = («1 COS 2тГ7г/с/)((72 COs2/T?7?/_ t) =
о 1 с/ л . ci 1 a 9 .
= -— c°s 2тг(п/с + + —-=• cos 2tt(zi/c - mfR)t, (2.8)
где n, m Е Z, и копий спектров становится бесконечное множество.
На рис. 2.5 приведен пример преобразования Фурье сигнала часто¬
той Д = 50 Гц и частотой дискретизации Д = 270 Гц, где хорошо виден
основной спектр и пары прямых и зеркальных копий.
Существование копий спектров, кроме негативных последствий,
имеет и позитивные стороны. Грамотное их использование позволя¬
ет существенно расширить частотный диапазон измерительных средств.
Примерами использования копий сигналов и уравнения (2.7) являются
гетеродинное преобразование частоты и стробоскопический эффект, ко¬
торые по сути являются разновидностью стратегии когерентной выбор¬
ки, которая будет рассмотрена далее. Копии спектров содержат инфор¬
мацию о форме сигнала и его фазе, и если частота исходного сигнала
44
Глава 2
Обработка числовых потоков данных
45
Рис. 2.5. Спектральная плотность сигнала
известна заранее, то имеется возможность точного измерения амплиту¬
ды и фазы сигналов, частота которых выше частоты дискретизации.
2-2- Стратегии проведения замеров
Условие Котельникова—Найквиста—Шеннона не является непреодо¬
лимым барьером при проведении измерений в области частот, лежащих
за его пределами. Проводить замеры в этих условиях помогают раз¬
личные стратегии измерений [20].
2.2.1. Когерентные выборки
Стратегия когерентной выборки позволяет измерять амплитуду и
фазу быстропротекающего процесса относительно медленными измери¬
тельными средствами, а также наблюдать форму высокочастотных сиг¬
налов. Суть стратегии заключается в измерении величины периодиче¬
ского сигнала через равные промежутки времени Тд, равные &Т4-ДС где
k — целое число, Т — период исследуемого сигнала, Д/ < Т — интер¬
вал времени. Таким образом, есть как минимум две частоты: частота
/д = 1/Тд = 1/(кТ + Д/) и fc — 1/Т, следовательно, в соответствии с
(2.7) в спектре сигнала появляются суммарные и разностные частоты.
В данной стратегии нас интересует разностная частота, представляющая
собой копию высокочастотного сигнала в низкочастотной области.
На рис. 2.6 хорошо виден исходный высокочастотный сигнал и его
низкочастотная копия, полученная в результате проведения когерент¬
ной выборки.
Стратегия когерентной выборки аналогична гетеродинному преобра¬
зованию частоты. Для примера рассмотрим сигнал, частота следования
которого fc = 320 Гц. Если этот сигнал измерять через интервалы
времени Тд, обратно-пропорциональные частоте /д = 270 Гц, то копия
сигнала будет иметь частоту f = 320 — 270 = 50 Гц. Спектр сигнала
будет аналогичен спектру сигнала, представленному на рис. 2.6. А глав¬
ное, оцифрованные данные для частот 50 и 320 Гц при частоте взятия
выборки /д = 270 Гц отличить невозможно, так как при оцифровке по¬
следней частоты будет пропущено несколько периодов и измеренные
точки совпадут абсолютно.
Примерами использования стратегии когерентных выборок являют¬
ся стробоскопический осциллограф, позволяющий исследовать сигналы
с частотой свыше 15 ГГц, и стробоскопический измеритель частоты вра¬
щения валов двигателей, принцип которого заключается в освещении
вращающегося вала импульсным источником света. Если частота вспы¬
шек источника и частота вращения вала совпадают, то свет попадает
строго в одно и тоже место вала и вал кажется неподвижным. Если
частота вспышек больше, то вал не успевает сделать полный оборот и
создается эффект вращения вала в обратную сторону. Подобный эф¬
фект можно наблюдать при просмотре кинофильма, когда при движе¬
нии автомобиля или кареты вперед отчетливо видно вращение колес
в обратном направлении.
Таким образом, использование стратегии когерентных выборок по¬
зволяет наблюдать форму сигнала с частотой f > /д/2, измерять его
амплитуду и фазу, но необходимо знать, хотя бы приблизительно, ча¬
стоту исследуемого сигнала.
2.2.2. Случайные выборки
Сложной задачей при измерениях является определение величины
или мощности нестационарных сигналов, таких как шумы различного ви¬
да, сила и мощность тока, протекающего в цепи электродуговой сварки,
46
Глава 2
Обработка числовых потоков данных
47
Рис. 2.7. Случайная выборка нестационарного сигнала
Рис. 2.8. Временное мультиплексирование
преобразователей, проводить обработку нескольких процессов одним
процессорным устройством. Временное мультиплексирование широко
используется в информационно-измерительных системах.
и т.д. Для решения этой задачи, выборки можно брать в произволь¬
ные моменты времени, т.е. достаточны случайные выборки. На рис. 2.7
приведен пример нестационарного сигнала.
Можно утверждать, что случайный характер выборок не оказывает
влияния на статистические параметры, относящиеся к величине сигна¬
ла (среднее, среднеквадратичное отклонение, мощность и т.д.). При
реализации описываемой стратегии главной проблемой является обес¬
печение случайности взятия выборок как минимум по двум причинам.
Во-первых, время измерения не может быть взято из интервала
0...ОС, а должно браться из интервала /min--^max. так как минималь¬
ное время ограничено быстродействием системы, а максимальное — до¬
пустимым (желаемым) временем измерения. Во-вторых, выбрать слу¬
чайное время измерения даже из ограниченного временного интервала
весьма непростая задача.
Иногда «случайное» взятие выборок осуществляют, беря выборки
определенной частотой, не связанной с исходным сигналом. Однако
может наступить корреляция между сигналом и процедурой взятия вы¬
борок, что приведет к появлению ошибок. Для избегания подобных
ошибок частоту «качают» в определенных пределах.
2.2.3. Временное мультиплексирование
Если решается задача наблюдения множества медленно протека¬
ющих процессов, например регистрация температуры различных точек
объектов, наблюдение за атмосферной температурой, давлением, влаж¬
ностью и т.д., с целью экономии средств часто используют стратегию
временного мультиплексирования (рис. 2.8).
Суть стратегии заключается в последовательном опросе информа¬
ционных каналов, позволяет экономить количество аналого-цифровых
2.2.4. Частотное мультиплексирование
Для более точного восстановления исходного сигнала можно при¬
менить несколько АЦП, производящих когерентные выборки, входы ко¬
торых подключены к одному и тому же сигналу, но моменты взятия
выборок сдвинуты друг относительно друга на некоторый временной
интервал (рис. 2.9).
Устройство, представленное на рис. 2.9, состоит из 7' аналого-
цифровых преобразователей, каждый из которых производит замер на¬
пряжения с частотой /д, но, как отмечалось, момент времени начала
замера сдвинут на величину Тд/ k = Процессорное устройство
в соответствии с порядком запуска регистрирует выборочные данные, и
получается эффект повышения частоты дискретизации в к раз.
Если исследуемый сигнал периодический и имеется возможность
синхронизировать его с частотой дискретизации /д, то для реализа¬
ции стратегии частотного мультиплексирования достаточно одного АЦП.
При этом необходимо провести серию замеров, отличающихся друг от
друга изменяемой на Тд/к задержкой частоты дискретизации /д. После
проведения всей серии выборок необходимо произвести пересортиров¬
ку выборочных данных.
Рис. 2.9. Аналого-цифровые преобразо¬
ватели. объединенные по стратегии
частотного мультиплексирования
48
Глава 2
Обработка числовых потоков данных
49
2.3. Цифро-аналоговое преобразование
Цифро-аналоговый преобразователь (ЦАП) применяется в качестве
узлов обратной связи аналого-цифровых преобразователей или для фор¬
мирования выходных аналоговых сигналов цифровых измерительных
или вычислительных устройств. Задача ЦАП — преобразование дво¬
ичного числа D — • • • 01^0 (см- разд. 1.1) в выходные напря¬
жение или ток. пропорциональные весовым коэффициентам разрядов
двоичной системы счисления (. . . 8, 4, 2, 1).
В большинстве случаев входное число D целое без знака, поэто¬
му цифро-аналоговое преобразование описывается следующим простым
соотношением:
72—1
^выхЦАП = UqD — а?:2г. (2-9)
7 = 0
Исходя из соотношения (2 9) можно сделать вывод, что для реа¬
лизации ЦАП необходимо суммировать напряжения, пропорциональные
весовым коэффициентам соответствующих разрядов. Для этого необхо¬
дим многовходовый сумматор, выполненный на операционном усилите¬
ле и переключатели. Такое устройство представлено на рис. 2.10.
На рис. 2.10 показана простая реализация ЦАП. Цифровой вход
D состоит из всех битов <ц, i = 0, 1,..., п — 1. Если а, = 1, то соот¬
ветствующий переключатель а подключен к отрицательному опорному
напряжению — С>оп, если же а;=0, то переключатель подключен к про¬
воднику с нулевым потенциалом.
Коэффициент усиления современного операционного усилителя без
обратной связи ku — 106...108, разность потенциалов между входами
Г+ - U- = W 0. (2.10)
Выводы резисторов R., обращенные к операционному усилителю,
близки к нулевому потенциалу, и если (ц — 0, то ток через соответ¬
ствующий этому разряду резистор не протекает. Следовательно, ток
0J
vk
Рис. 2.10. Реализация ЦАП, в котором сопротивление каждого резистора со¬
ответствует весу цифры или бита
^вых ЦАП
входной цепи
зисторам Ri,
усилителя равен сумме
для которых
токов, протекающих по всем ре-
1:
а7:
= Е
и~1 тт
' АЦ оп
' Ri
i=Q г
Г'оп
2 72
72 — 1
77 — 1
1 ” ; 1
L к; = '. °'2я
2 = 0
(2-11)
2 = 0
обратной
Напряжение на выходе ЦАП
связи и входного тока:
равно произведению сопротивления
72—1
Дых ЦАП — Свх Roc
(212)
7=0
Если в выражении (2.12) сопротивление 7?ос = 2п R то его под¬
становка приводит (2.12) к виду (2.9). Следовательно, сопротивления
резисторов следует выбирать из соотношения R} = R/2Z.
Основной недостаток такого ЦАП состоит в том, что соотношение
между наибольшим сопротивлением (/?0) и наименьшим (7?n_i) рав-
чо Rq/Rk-y — 2п и уже при п — 10 отношение указанных сопро¬
тивлений равно 1024, что соответствует погрешности преобразования
-ЦАП = ОД %• Если относительная ошибка определения величины ре¬
зистора /?.n_L равна = {l\Rn_r/Rn_1) • 100 = 10 %, то £Яо =
— 10/1024 % 0,01 %. Такой относительной ошибкой обладают только
прецизионные резисторы, служащие эталонном сопротивления. По этой
причине подобные ЦАП редко изготавливают с разрядностью п > 10.
На рис. 2.11 приведена схема ЦАП, в которой используются резисто¬
ры только двух различных номиналов. Схема состоит из резисторной
матрицы и усилителя, преобразующего ток в напряжение. Потенциал
в точке переключения всегда равен потенциалу земли (независимо от
того, установлено а7. = 0 или аг — 1). Два правых резистора предста¬
вляют собой соединенные параллельно два резистора номиналом 2R,
их общее сопротивление равно R Последовательно с ними включен
резистор R, и их суммарное сопротивление равно 2R и т.д. до входа.
Таким образом, опорное напряжение нагружено на сопротивление, но¬
50
Глава 2
Обработка числовых потоков данных
51
минал которого составляет 2R Такая резисторная матрица представля¬
ет собой п делителей напряжения на 2. Следовательно, напряжения
в узлах равны соответственно: —6гОп/2; —Соп/4;...; ~Uon/2n — — L'q.
Токи, протекающие в каналах сц, будут отличаться от соседних ров¬
но в два раза, а положение переключателя а.{ = 1 будет добавлять
соответствующий ток к сумме токов, протекающих во входных цепях
операционного усилителя. Проведя несложные преобразования, мож¬
но придти к выражению (2.9).
Так как здесь используются только два номинала резисторов, у та¬
кого ЦАП точность может быть гораздо большей, чем в предыдущем слу¬
чае. Разрядность ЦАП на резисторной матрице может достигать п — 16.
2.4. АЦП непосредственного
преобразования
Задача аналого-цифрового преобразователя (АЦП) состоит в том,
чтобы найти число D — an_ia..n._2 . • - умножение которого на ве¬
личину кванта амплитуды Un даст максимально правдоподобное значе¬
ние величины входного напряжения ЕТхАЦП из интервала разрешенных
ВХОДНЫХ значений [7min---6'max’
п — 1
С/вх АЦП « U0D = U0^2 a-iT. (2.13)
i = 0
В (2 13) знак приблизительного равенства стоит из-за наличия
ошибки квантования, описанной в разд. 2.1. Как уже отмечалось, за¬
меры проводятся через интервалы времени Тд = \/fR, называемые пе¬
риодом дискретизации и обратно-пропорциональные частоте дискрети¬
зации, которая выбирается в соответствии с критерием Котельникова-
Найквиста-Шеннона (2.6). От периода дискретизации зависит макси¬
мально допустимое время преобразования АЦП, которое находится из
условия
fnp «S А, (2.14)
Разрядность АЦП определяется по формуле (2.5), для чего долж¬
ны быть известны величины спр. /Углах и [7min- Квант амплитуды на¬
ходится по формуле (2.4). Для правильной работы АЦП относитель¬
ная ошибка установления опорного напряжения zuon во всем интервале
рабочих температур должна быть меньше ошибки спр, при этом об¬
щая ошибка АЦП
^АЦП —
В настоящее время известно достаточно большое количество АЦП
различного типа.
2.4.1. Следящий АЦП
Следящий АЦП получается добавлением к ЦАП компаратора и счет¬
чика (рис. 2.12). Компаратор сравнивает входное напряжение с напряже¬
нием на выходе ЦАП и управляет ключом, подающим тактовую частоту
либо на вход сложения, либо на вход вычитания двоичного реверсив¬
ного счетчика, состояние которого является выходом АЦП. Этот же
код подается на вход ЦАП. Следовательно, напряжение СвыхЦАП про¬
порционально выходному коду счетчика и напряжению [7ОП, а приход
каждого импульса с генератора частоты приводит к увеличению или
уменьшению выходного кода счетчика.
Принцип действия следящего АЦП поясняет временная зависимость
напряжений на выходе ЦАП от входного напряжения (рис. 2.13).
Предположим, что в момент включения АЦП двоичный счетчик
устанавливается в нулевое состояние, поэтому напряжение /7ВыхЦАП на
выходе ЦАП будет равно нулю. Выходной сигнал компаратора переклю¬
чит счетчик в режим сложения, и выходной код счетчика увеличивается
с частотой импульсов генератора. Напряжение /7ВЫхЦАП будет нарастать
ступеньками (рис. 2.13). Ширина этих ступенек по времени равна пери¬
оду следования импульсов Тд, поступающих от генератора. В некоторой
точке напряжение 6гвыхцап превысит входное напряжение UBX. Тогда
выходной сигнал компаратора изменится, и счетчик начнет считать в
сторону убывания. Поэтому ГТыхЦАП уменьшается, ключ переключится
и т.д. В результате напряжение Г'ВыхЦАП будет пошагово изменяться
около значения /7ВХ. Цифровой сигнал на выходе D = an_jan_2 . . . aia0
равен содержимому счетчика, которое определяет значение двоичных
сигналов на входах ЦАП.
Рис. 2.12. Схема следящего АЦП
Рис. 2.13. Временная зависимость
напряжений Цъх и Г вых ЦАП
52
Глава 2
Обработка числовых потоков данных
53
Следящий АЦП способен относительно быстро следить за малыми
изменениями во входном сигнале. Если, однако, во входном сигнале
имеются большие по величине изменения напряжения, то АЦП уже не
сможет отследить его немедленно, так как он может приближаться к
новому значению I вх лишь постепенно, проходя через большое число
ступенек небольшой постоянной величины (по лестничной функции).
Время, необходимое для достижения нового значения Е^ыхЦАП. зави¬
сит не только от скачка ДГВХ входного напряжения, но также от кванта
амплитуды Uq и частоты /о генератора импульсов. Время преобразо¬
вания в этом случае
^max min)
2.4.2, АЦП последовательного приближения
В основе работы данного АЦП лежит последовательное поразряд¬
ное сравнение аналогового входного сигнала [гвх с опорным напряже¬
нием Uon.
Входной сигнал, величина которого зафиксирована устройством вы¬
борки-хранения, поступает на вход первого преобразователя (рис. 2.14),
а на второй вход поступает половина опорного напряжения UQn/2. Если
Jr'x ^оп/2, то старший разряд АЦП c/n_i = 1. а на следующий пре¬
образователь поступает напряжение ^вх-(Г0п/2). Если U'BK < иоп/2. то
И7._1 = 0, а для последующего сравнения используется непосредственно
напряжение U^. На втором преобразователе остаток напряжения [г'х
сравнивается с напряжением G*on/A Так последовательным сравнением
формируются все разряды искомого числа JJ — an^ian-2‘
Для АЦП последовательного преобразования важным является со¬
хранение значения входного сигнала в течение всего цикла преобразо¬
вания, так как в противном случае будут возникать сбои в его работе.
Время преобразования АЦП последовательного приближения не зави¬
сит от скорости изменения входного напряжения и равно произведению
времени преобразования одного разряда на их количество.
Схема
выборки
и хранения
Рис. 2.14. АЦП последовательного приближения
2.4.3. АЦП параллельного преобразования
В отличие от АЦП последовательного приближения, АЦП парал¬
лельного преобразования является самым быстродействующим из всех
видов АЦП Его схема приведена на рис. 2.15.
Рис. 2.15. Схема АЦП параллельного преобразования
Входное напряжение [/вх сравнивается одновременно с большим чи¬
слом различных опорных напряжений, полученных в результате деле¬
ния напряжения Гоп делителем, состоящем из 2П резисторов одинаково¬
го номинала R. В результате на каждом резисторе падает напряжение
Uq, а на неинвертирующий вход £-го компаратора поступает напряже¬
ние, равное произведению Uq и номера преобразователя. Очевидно,
что для n-разрядного преобразования в таком преобразователе требу¬
ется 2п — 1 компараторов и столько же получается выходных сигна¬
лов. Преобразователь кода или шифратор необходим для сокращения
количества выходных линий до 77.
2.4.4. Конвейерные АЦП
АЦП параллельного преобразования имеет высокое быстродействие,
но требует большое количество компараторов, число которых при 77 = 16
становится равным 65535 Это обстоятельство существенно усложня¬
ет производство даже при сегодняшнем уровне развития микроэлек¬
троники .
Компромиссным решением становится объединение двух принци¬
пов построения АЦП последовательного и параллельного преобразова¬
ния в виде конвейерного АЦП. Основная идея такого преобразовате¬
ля проста. Например. 8-разрядный преобразователь разбивается на два
4-разрядных АЦП параллельного преобразования, каждый из которых
содержит лишь по 15 компараторов (рис. 2.16).
54
Глава 2
Обработка числовых потоков данных
55
а7
«6
«5
"4
«3
^0
Рис. 2.16. Принцип действия конвейерного АЦП
Верхний на рис. 2.16 АЦП обеспечивает только грубое преобразо¬
вание, дающее 4 старших бита. Напряжение с выхода ЦАП, соответ¬
ствующее этим 4 битам, вычитается из напряжения выборки входного
сигнала Lr'x. Напряжение разности, представляющее собой большую
ошибку квантования в первом АЦП, усиливается в 24 = 16 раз и по¬
ступает на вход другого АЦП, аналогичного первому. Этот второй АЦП
формирует 4 младших разряда 8-битового преобразования. Объем тако¬
го АЦП значительно сокращен по сравнению с полным «мгновенным»
преобразователем (от 255 до 2 х 15 компараторов) за счет уменьше¬
ния скорости преобразования.
2.5. Интегрирующие АЦП
Интегрирующие аналого-цифровые преобразователи уступают по
быстродействию преобразователям последовательного приближения и
параллельного преобразования. Вместе с тем они имеют и явные пре¬
имущества: высокую помехоустойчивость, высокую точность преобразо¬
вания и минимальное число необходимых точных компонентов.
Интегрирующий АЦП, как правило, состоит из двух преобразова¬
телей: преобразователя напряжения или тока в частоту или длитель¬
ность импульсов и преобразователя частоты или длительности импуль¬
сов в код. Для точного измерения частоты подсчитывают количество
импульсов измеряемой частоты за известный (эталонный) промежуток
времени, а для измерения времени подсчитывают количество импуль¬
сов известной частоты за измеряемый период. Точность определения
частоты/времени зависит только от точности и стабильности образцо¬
вого генератора частоты. Поэтому основные характеристики интегри¬
рующих АЦП определяются свойствами применяемых преобразовате¬
лей напряжение — частота (ПНЧ) или преобразователей напряжение
— время (ПНВ).
2.5.1. Однократно интегрирующий АЦП
На рис. 2.17 представлен интегрирующий преобразователь напряже¬
ние-частота, в котором использован принцип однократного интегриро-
Рис. 2.17. Интегрирующий АЦП
вания. Входной сигнал через переключатель S подается на инвертиру¬
ющий или неинвертирующий вход операционного усилителя DA1. Если
2?1 = = 7?з = то в зависимости от положения переключателя S',
напряжение на выходе будет равно либо /Увхдцгь либо — {ТвхАЦП-
На операционном усилителе DA2 выполнен интегратор, конденса¬
тор С которого заряжается током I — Этот ток равен
q, протекающему за время /зар:
Т ^ВХ dq
~ ~Р~ ~ di'
Заряд q, накопленный в конденсаторе, равен произведению
кости на разность потенциалов на его же обкладках:
7 = Лс.
Разность потенциалов f с с учетом (2.10) равна выходному
жению интегратора. Подставим найденную величину заряда в (2.17)
и после преобразования получим
Л/с = isp- (219)
заряду
(2-17)
его ем-
(2.18)
напря-
Интегрирование правой и левой части выражения (2.19) позволит
найти изменение напряжения на выходе интегратора:
Если напряжение Uc становится больше 6ГОП или меньше — иоп,
56
Глава 2
Обработка числовых потоков данных
57
Рис. 2.18. Временная диаграмма работы интегрирующего АЦП
Рис. 2.19. АЦП двойного интегрирования
Рис. 2.20. Временная диаграмма ра¬
боты АЦП двойного интегрирования
то соответствующий сигнал с выхода компаратора DA3 или DA4 через
блок управления ключами изменяет положение ключа S, следовательно,
полный цикл заряда соответствует изменению входного напряжения от
— Соп Д° Ron- Таким образом, за время /зар изменение разности потен¬
циалов на конденсаторе АСс = 2£7ОП. Отсюда, преобразовав (2.20),
находим время заряда
Gap = 2^-R5C. (2.21)
* вх
В результате на выходе появляется пилообразное напряжение
(рис. 2.18), период следования импульсов которого пропорционален ве¬
личине входного напряжения и постоянной времени т = R$C и при
неизменяющемся входном напряжении равен двойному времени заря¬
да конденсатора.
Период следования импульсов Т будет равен сумме времен заря¬
да и разряда конденсатора, а частота следования импульсов f обратно
пропорциональна периоду:
цикла преобразования производится интегрирование некоторого вход¬
ного сигнала, а затем во втором такте выполняется операция «разын-
тегрирования>> — считывания накопленного значения интеграла путем
подачи на вход интегратора другого входного сигнала.
На рис. 2.19 представлена структурная схема подобного АЦП. Ос¬
новной частью преобразователя является интегратор, выполненный на
операционном усилителе, резисторе R и конденсаторе С. На вход ин¬
тегратора через соответствующий ключ может быть подано либо вход¬
ное напряжение, либо опорное.
Цикл работы преобразователя делится на два такта (рис. 2.20).
В первом такте, длящемся время /зар, ключ Si замкнут, a S2 разомкнут,
и происходит заряд конденсатора С током 1\ = UbX/R. Этот ток равен
заряду q, протекающему за время /зар:
Rbx &Ц
~R ~ 7
1 Г вх
Сип ’
Для определения входного напряжения необходимо знать постоян¬
ную времени интегратора, опорное напряжение и измерить частоту пу¬
тем подсчета количества импульсов пилообразного напряжения за из¬
вестный интервал времени.
2.5.2. АЦП двойного интегрирования
В однократно интегрирующих АЦП точность преобразования наи¬
большим образом зависит от температурной и долговременной стабиль¬
ности постоянной времени интегрирования г, которая определяется па¬
раметрами конденсаторов и резисторов. Поэтому при построении инте¬
грирующих ПНЧ и ПНВ чаще всего используют принцип двухтактного
интегрирования [22]. В соответствии с этим принципом в первом такте
Заряд q определяется выражением (2.18), а разность потенциалов
trC с учетом (2 10) равна выходному напряжению интегратора. Под¬
ставим найденную величину заряда в (2.23) и после преобразования
получим
Л'с = ^<Н. (2.24)
Проинтегрируем выражение (2.24):
AfZc = / 7^dt = 7^/зар' (225)
Во втором такте ключ S2 замкнут, а разомкнут ключ Si, и за вре¬
мя /разр конденсатор С разряжается током = — Ron/R Д° нулевой
разности потенциалов. Следовательно, можно записать
^вх.
ар
/г
’ оп 4
^7'разр
58
Глава 2
Обработка числовых потоков данных
59
Сократив (2 26) на постоянную времени интегратора т — RC1 и про¬
ведя преобразования, получим
^разр
Dap
Величина Uon известна заранее, поэтому для определения входного
напряжения необходимо замерить или задать время заряда конденсатора
/зар и измерить время разряда конденсатора до нуля /разр. Постоянная
времени в выражении (2.27) сократилась, и если величины емкости и со¬
противления в пределах одного цикла замера остаются постоянными, то
их долговременная нестабильность не оказывает существенного влияния.
В зависимости от того, как организован цикл двухтактного интегри¬
рования, ПНВ и ПНЧ могут быть разделены на четыре большие группы:
1) преобразователи с заданным циклом интегрирования, в которых
фиксируется суммарная длительность двух тактов Т — Dap Т ^разрт
2) преобразователи с заданным тактом интегрирования, в которых
фиксируется время только одного такта, обычно Dap!
3) преобразователи с заданной амплитудой, в которых время за¬
ряда определяется достижением напряжения Uc фиксированной вели¬
чины, обычно равной Uon’,
4) преобразователи с заданным интегралом импульса, соответству¬
ющего времени разряда, который может иметь, например, два участка
с разным временем интегрирования (наклоном кривой).
Для повышения точности преобразования цикл преобразования или
один из тактов интегрирования синхронизируют с помехой, например
с сетевой частотой.
ШИМ
t
Рис. 2.22. Временная диаграмма работы АЦП с время-импульсным
преобразованием
2.5.3. АЦП с время-импульсным преобразованием
К интегрирующим АЦП можно отнести также преобразователи, не
выполняющие непосредственного интегрирования входных сигналов, а
использующие интегрирование только опорного напряжения (рис. 2.21).
Преобразователи этого типа по принципу действия напоминают
АЦП последовательного приближения. Однако из схемы исключен ЦАП,
напряжение выхода которого заменяется пилообразным напряжением с
амплитудой, пропорциональной опорному напряжению.
Рис. 2.21. Структурная схема АЦП с время-импульсным преобразованием
В результате сравнения входного сигнала с пилообразным напряже¬
нием на выходе компаратора появляется сигнал с широтно-импульсной
модуляцией (ШИМ), период следования выходных импульсов кото¬
рой равен периоду следования пилообразных импульсов 7', а время
следования импульсов D пропорционально входному напряжению [7ВХ
(рис. 2.22).
Входное напряжение для описываемого АЦП определяется по фор¬
муле
гвх = иоп - 1) , (2.28)
где отношение t^/T называется скважностью импульсов.
Для измерения скважности импульс /и заполняется импульсами вы¬
сокой частоты, количество следования которых за период Т и является
выходным кодом АЦП.
2.5.4. Сигма-дельта АЦП
Принцип сигма-дельта (ЕД) модуляции известен с начала 60-х го¬
дов, но до начала 90-х годов почти не использовался.
На рис. 2.23 приведена схема ЕД-АЦП. Входное напряжение (/вх
подается на компаратор DA2, который сравнивает его с напряжением
Uc, поступающим с интегратора, выполненного на операционном уси¬
лителе DA1. На вход интегратора через ключ S подается либо Uon, либо
~~Don. Работой ключа управляет D-триггер, на счетный вход С которого
подается тактовая частота /т, а на вход D — напряжение с компаратора.
Тактовая частота должна быть выше частоты дискретизации /д:
/г = (2.29)
где у? — разрядность преобразователя.
Диаграмма работы ЕД-АЦП приведена на рис. 2.24.
60
Глава 2
Обработка числовых потоков данных
61
Рис. 2.24. Временная диаграмма работы сигма-дельта АЦП
Выходным сигналом ЕД-АЦП будет количество единиц на выходе
Q, подсчитанных за период дискретизации Тд. Для уменьшения такто¬
вой частоты модуляторы можно каскадировать.
Современные ЕД-АЦП обладают высокой точностью преобразова¬
ния и достаточно высокой скоростью преобразования. Например, АЦП
AD7762 фирмы Analog devises имеет разрядность п = 24 при тактовой
частоте /т — 40 МГц и частоте дискретизации /д = 650 кГц.
2.6. Широтно-импульсная модуляция
Широтно-импульсная модуляция (ШИМ, Pulse-Wight Modulation,
PWM) занимает обособленное место в цифро-аналоговых и аналого-
цифровых преобразованиях. Принцип ШИМ ясен из рис. 2.25.
В п. 2.5.3 был приведен пример использования ШИМ для постро¬
ения АЦП, но одним из наиболее эффективных использований данно¬
го вида модуляции — построение ЦАП с мощным выходом, способным
t
Рис. 2.25. ШИМ сигнал
регулировать яркость светодиода, тепловой поток электронагревателя,
скорость вращения якоря электродвигателя и т.д.
Для ШИМ сигналов среднее и действующее значения сигнала рав¬
ны друг другу и являются выходным сигналом СВЬ1Х. Для избавления
от пульсаций на выходе ШИМ необходим ФНЧ (см п. 4), но, например
при использовании в качестве нагрузки электродвигателя, фильтрация
не нужна и даже вредна, так как ШИМ регулирование позволяет умень¬
шать зону нечувствительности, имеющуюся у электродвигателей из-за
сухого трения в подшипниках. Напряжение на выходе ШИМ определя¬
ется формулой, аналогичной (2.28):
С ВЫХ
tn
где Un — напряжение питания.
При использовании стандартного ЦАП для подключения нагрузки
необходим аналоговый усилитель, использующий операционные усили¬
тели и транзисторы, работающие в режимах А, В или С. При этом
из-за необходимости гасить часть энергии на регулирующем элементе
аналоговым усилителям присущ недостаток — низкий КПД. Вследствие
этого происходит значительное выделение тепла на регулирующем эле¬
менте. При использовании ШИМ з
ями, и КПД нередко достигает 95
На рис. 2.26 представлен ШИМ
регулятор скорости вращения кол¬
лекторного электродвигателя. Тран¬
зистор VT регулятора на рис. 2.26
работает в ключевом режиме, и по¬
этому на нем падение напряжения
минимально. В момент коммута¬
ции транзистора на его коллекторе
возникает положительный импульс,
амплитуда которого зависит от ско¬
нергия в нагрузку подается порци-
Рис. 2.26. ШИМ регуля¬
тор скорости вращения кол¬
лекторного электродвигателя
рости выключения напряжения, то¬
ка коллектора и индуктивности электродвигателя и может многократно
превышать напряжение питания Цл. Скачек коллекторного напряжения
приводит к выходу транзистора из строя, поэтому параллельно электро¬
двигателю включен диод VD, который возвращает энергию, накоплен¬
ную индуктивной нагрузкой, в цепи питания.
Кр оме низкого КПД, у пропорционального аналогового регулиро¬
вания есть еще один недостаток — ярко выраженная зона нечувстви¬
тельности, возникающая из-за наличия сухого трения в подшипниках.
Для любого электродвигателя есть минимальное напряжение, при ко¬
тором начинает вращаться якорь, величина которого увеличивается при
появлении нагрузки. При ШИМ регулировании напряжение питания по¬
дается кратковременно, но целиком, поэтому якорю передается мощный
импульс, который и преодолевает силы трения.
62
Глава 2
Обработка числовых потоков данных
63
Преобразователь двоичного числа в ШИМ может быть выполнен
в ПЛИС и описан на языке VHDL:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE . STD_LOGIC_ARITH . ALL;
use IEEE. STD-LOGIC-UNSIGNED . ALL;
entity shim is
Port ( elk : in stdJLogic;
kod_in : in std_logic_vector(7 downto 0);
out_shim : out stdJLogic);
end shim;
architecture Behavioral of shim is
signal count_shim : stdJLogic.vector (7 downto 0);
begin
process(elk)
begin
if clkJevent and elk =’l’ then
count_shim <= count_shim + 1;
end if;
end process;
out_shim <= ’ 1’ when count_shim < kod_in else ’O’;
end Behavioral;
ШИМ преобразователь состоит из счетчика и элемента сравнения
преобразуемого кода и состояния счетчика. Единичное состояние на его
выходе будет удерживаться пока входное число больше числа на счет¬
чике. Сигнал out_shim подается на вход t шим (см. Рис- 2.26). Частота
выходного сигнала будет определяться формулой
/шим = 4^4 (2-31)
где 77 — разрядность ШИМ, в примере п — 8.
Приведенный пример позволяет вращать якорь двигателя только в
одном направлении. Для обеспечения реверсирования (вращения в про¬
тивоположном направлении) ШИМ регулятор должен быть выполнен
по полумостовой или по мостовой схеме, а входное число kocLin долж¬
но быть записано в прямом коде (см. п. 1.2).
На рис. 2.27 приведена схема полумостового ШИМ регулятора. Он
выполняется на транзисторах различной структуры, которые открыва¬
ются по очереди. Питание полумостсвому регулятору необходимо дву¬
полярное, что требует усложнения схемы согласования уровня для тран¬
зистора, находящегося в цепи отрицательного питания, для чего в схеме
на рис. 2.27 введен транзистор VT1. Задача логического блока упра¬
вления, выполненного на ПЛИС, не допускать одновременного вклю¬
чения двух транзисторов.
Рис. 2.27. Полумостовой ШИМ регулятор
library IEEE;
use IEEE. STD-LOGIC-l 164. ALL;
use IEEE. STD-LOGIC J1RITH. ALL;
use IEEE. STD_LOGIC_UNSIGNED . ALL;
entity shim is
Port ( elk : in stdJLogic;
kod_in : in std_logic_vector (7 downto 0);
out_shimA : out stdJLogic;
outjshimB : out stdJogic);
end shim;
architecture Behavioral of shim is
signal count_shim : std_logic_vector(6 downto 0) ;
begin
process(elk)
begin
if elk’event and elk =’l’ then
count_shim <= counc_shim + 1;
end if;
end process;
out_shimA <= ’1’ when kodJn(7) = ’O’ and
count_shim < kod_in(6 downto 0) else ’CP;
out_shimB <= ’O’ when kodJn(7) = 4’ and
count_shim < kodJn(6 downto 0) else ’1’;
end Behavioral;
Использование числа co знаком привело к уменьшению разрядности
регулятора и появлению второго выхода, при этом, пока ШИМ присут¬
ствует на одном из выходов, на другом устанавливается уровень, закры¬
вающий соответствующий транзистор.
В полумостовом регуляторе (см. рис. 2.27) выбросы напряжения на
коллекторах транзисторов через диоды перенаправляются в цепь пита¬
ния другого транзистора, что приводит к возрастанию соответствующего
напряжения, а это в свою очередь к выходу из строя фильтрующих кон¬
денсаторов и транзисторов. Поэтому более удачной схемой регулирова¬
ния мощной индуктивной нагрузки является мостовая схема (рис. 2.28).
64
Глава 2
Обработка числовых потоков данных
65
ШИМ2(/£—Г~~1
Знак 0—А I
R6
Рис. 2.28. Мостовой ШИМ регулятор скорости вращения электродвигателя
В мостовом регуляторе на рис. 2.28 для обеспечения вращения ва¬
ла электродвигателя необходимо попарное открытие транзисторов VT1
и VT4 или VT3 и VT2, причем не обязательно Ш1/1М подавать сра¬
зу не оба транзистора, а достаточно регулирование производить одним
транзистором, а другой держать непрерывно открытым до смены напра¬
вления выражения. Логический модуль мостового ШИМ регулятора по
сравнению с полумостовым изменится незначительно.
library IEEE;
use IEEE. STD JLOGIC-1164. ALL;
use IEEE. STD JLOGIC_ARITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity shim is
Port ( elk : in std_logic;
kod_in : in std_Logic_vector (7 downto 0) ;
out_shimA : out std_logic;
out_shimB : out std_logic;
znak : out stdJogic;
znakJnv : out stdJogic);
end shim;
architecture Behavioral of shim is
signal count_shim : std_logic_vector (6 downto 0);
begin
process(elk)
begin
if elk’event and elk =,1J then
count_shim <- count_shim + 1;
end if;
end process;
out-shimA <= ’O’ when kodJn(7) = ’O’ and
count_shim < kodJn(6 downto 0) else ’1’;
outjshimB <= ’O’ when kodJn(7) = ’1’ and
count_shim < kodJn(6 downto 0) else ’1’;
Рис. 2.29. Устройство термобатареи Пельтье
Рис. 2.30. Схема ШИМ регулятора термобатареи Пельте
znak <= kodJn(7);
znakJnv <= not kodJn(7);
end Behavioral;
Описанные принципы ШИМ регулирования пригодны не только для
управления электродвигателем, но и для множества других применений,
но не всегда импульсный ток в нагрузке бывает полезным. Например,
при создании термостатирующих устройств на термобатареях Пельтье,
главное достоинство которых — возможность как нагревать, так и охла¬
ждать термостатируемый объект.
Термобатареи изготавливаются из полупроводников различной
структуры, соединенных последовательно (рис. 2.29). При протекании
через батарею тока от одной грани к другой создается тепловой поток,
мощность которого описывается формулой
'■=-дт' -(4+4 -(¥) •
где s — постоянная Пельтье, ДТ— разность температур на полупровод¬
нике; I — протекающий по полупроводнику ток; р — удельное сопро¬
тивление полупроводника; S и I — площадь и длинна полупроводника;
Д/ — временной интервал; R — электрическое сопротивление токопод¬
водящих цепей; \ — коэффициент теплопроводности полупроводника.
При протекании тока через термобатарею одна грань нагревается,
а другая охлаждается, если поменять направление силы тока, то разо¬
гретая и охлажденная поверхности термобатареи поменяются местами.
Тепловой поток, переносимый с одной грани на другую, пропорциона¬
лен силе тока в батарее. Кроме того, все проводящие части батареи
66
Г: л а в а 2
прогреваются вследствие выделения джоулева тепла, пропорционально¬
го квадрату тока. В результате при малых токах теплонасосный эффект
оказывается больше, чем джоулев нагрев, а при больших токах самопро-
грев начинает преобладать. Поэтому, если пропускать через термобата¬
рею импульсный ток постоянной амплитуды, близкой к предельному
значению, КПД батареи будет невысок.
Для повышения КПД термобатареи Пельтье в Ш1/1М регулятор не¬
обходимо добавить LC фильтр. Схема на рис. 2.28 незначительно пре¬
образуется (рис. 2.30).
Регулирование производится транзисторами VT1 и VT2, а тран¬
зисторы VT3 и VT4 переключаются при выборе режима нагрева или
охлаждения.
Глава 3
Спектральный анализ
Во второй главе были приведены методы преобразования анало¬
гового сигнала в цифровой и обратно. Цель аналого-цифрового пре¬
образования — определение параметров входного сигнала для вывода
на индицирующее устройство или для выработки управляющего воз¬
действия в системе регулирования. Основными параметрами сигналов
являются их амплитуда, частота и фаза. Определение этих параметров
является основной задачей спектрального анализа. В этой главе бу¬
дут рассмотрены два вида анализа — Фурье-анализ и бурно развиваю¬
щийся с конца 80-х годов прошлого столетия вейвлет-анализ. Методы
спектрального анализа требуют большого числа операций умножения с
накоплением, и для расчета всего преобразования Фурье сигнала, со¬
держащего N выборок, требуется N2 пар таких операций. В случае
вейвлет-преобразования их количество возрастает многократно. Поэто¬
му в данной главе особое внимание уделяется аппаратной реализация
этих видов анализа в ПЛИС.
3.1. Дискретное преобразование Фурье
В разд. 1.8 уже
нических сигналов,
водит не только к
рассказывалось о преобразовании Фурье для гармо-
Операция взятия выборки (оцифровывания) при-
появлению ошибки дискретизации по времени и
по уровню, но и к ограничению пределов интегрирования в выраже¬
ниях (1.33) и (1.34) для прямого и обратного преобразований Фурье,
так как невозможно оперировать бесконечно большими величинами.
Это обстоятельство повлекло за собой появление разновидности пре¬
образования Фурье, называемое дискретным преобразованием Фурье
(ДПФ).
Во разд. 2.1 указывалось, что при дискретизации по времени по¬
являются копии спектров сигналов и при невыполнении условия Котель¬
никова-Найквиста-Шеннона (2.6) может произойти наложение спек¬
тров, или элайсинг.
Влияние замены бесконечных пределов интегрирования уравнения
(136) на конечные можно увидеть, если взять частоту исследуемого
сигнала намного меньше частоты дискретизации. Для этого случая
68
Глава 3
Спектральный анализ
69
X
5
4
3
2
1 10 100 f, Гц
Рис. 3.1. Дискретное преобразование Фурье
(Аигн = 50 Гц, Ь = 10000 Гц, Д = 0,08 с)
Рис. 3.2. Дискретное преобразование Фурье
(/сигм = 50 Гц, /д = 10000 Гц, — 0,8 с)
(1.36) примет вид
Д'(/) = I Л (/) cos(2tt/7) с//— J [ Л'(/) sin(2Tr/7) dl. (3.1)
J-ti J-h
Для пр имера рассмотрим преобразование со следующими характе¬
ристиками: /сигн — 50 Гц. /д = 10000 Гц. ti = 0.08 с. Такой вре¬
менной интервал соответствует четырем периодам исследуемой частоты
и 800 точкам выборки сигнала в пределах интегрирования. Результат
анализа представлен на рис. 3.1.
Рис. 3.1 имеет качественные отличия от 6-функции (рис. 1.6), а
именно:
• высота полученной функции конечна;
• ширина полученной функции не нулевая;
• в спектре полученного сигнала появились дополнительные частоты,
которых в реальном сигнале не наблюдается.
Появление дополнительных спектральных составляющих называет¬
ся эффектом Гиббса. который всегда проявляется при переходе от ин¬
теграла с бесконечными пределами к интегрированию на конечном ин¬
тервале. Если видоизменить условия предыдущего анализа следующим
образом: оставить неизменными частоты /сигп = 50 Гц и = 10000 Гц,
а изменить время ti — 0,8 с, которому будет соответствовать 88 пе¬
риодов исследуемой частоты и 8000 точек выборки сигнала в преде¬
лах интегрирования.
Как видно, спектральная полоса стала уже и эффект Гиббса умень¬
шился. Тем не менее совсем от него избавиться не удается. Если
увеличивать количество точек выборки сигнала в пределах интегриро¬
вания, то результат преобразования Фурье все больше будет прибли¬
жаться к 6-функции.
На практике ДПФ описывается формулой
К-1 /V-1
Л(/) = ТЯ^2 Л'(0 со5(2тг.ЛТд) - ^2 A'W sin(2 ^'Л), (3.2)
г = 0 г = (1
где Л — количество точек выборки. Тл = 1//д — период дискретизации,
или с учетом соотношения Эйлера (1.26)
7V-1
А-(/) = Гд52 A'(*)e’>W”. (3.3)
г = 0
При этом необходимо помнить, что и анализируемая функция Л(/) и
синусная и косинусная составляющая преобразования Фурье имеют дис¬
кретные значения.
Существует и обратное дискретное преобразование Фурье, которое
выражается следующей формулой:
где Л = А'ДУТд, a k = 0,...,Лг - 1.
Ошибки дискретизации по уровню подробно описаны во второй гла¬
ве, но там не отражено влияние амплитуды исследуемого сигнала на ре¬
зультат целочисленного преобразования Фурье. В частности, на рис. 2.5
приведен пример преобразования Фурье сигнала частотой /сигн — 50 Гц
и частотой дискретизации /д = 270 Гц. амплитуда исследуемого сиг¬
нала Л'а = 127Л'о, где Ао — шаг по амплитуде, величина которого
определяется уравнением (2.3).
На рис. 3.3 приведен результат целочисленного преобразования Фу-
рье сигнала с амплитудой Л’о = 31Ло-
70
Глава 3
Спектральный анализ
71
X
6
5
4
3
2
1
Рис. 3.3. Дискретное преобразование Фурье (/гпгн = 50 Гц, — 270 Гц.
АТ = 31.Vo)
Как видно из сравнения рис. 3.3 и 2.5, качественных изменений
почти не произошло, однако появились всплески на частотах, кратных
частоте дискретизации /д. Но, несомненно, все эти изменения сказыва¬
ются на точности определения частоты и фазы исследуемого сигнала.
3-2- Быстрое преобразование Фурье (FFT)
Для вычисления одного коэффициента ДПФ по формуле (3.2) не¬
обходимо выполнить Д' комплексных умножений с накоплением (Л для
реальной части и столько же для мнимой). Каждый коэффициент вычи¬
сляется для конкретной частоты / и пропорционален вероятности нахо¬
ждения данной частоты в спектре исследуемого сигнала. Максимальная
частота ограничена условием Котельникова-Найквиста-Шеннона (2.6) и
равна /щах = /д/2- Минимальная частота ограничена длиной выборки
N и равна /т(п = /Д|АГ. Частоты в пределах от /пдп до /тах находятся
по формуле Д = kf^/N. Коэффициент k, так же как и частоты, мо¬
жет быть записан в формате с плавающей точкой, поэтому в пределах
указанных частот может быть рассчитано бесконечное количество коэф¬
фициентов. Все графики преобразования Фурье, приведенные в данной
книге, построены именно в этом формате. Если k целое число в преде¬
лах 1 k N, то количество рассчитанных коэффициентов для частот
Д будет равно количеству выборочных данных N
Преобразование с целочисленным количеством масштабов к может
быть реализовано как умножение некоторой квадратной матрицы раз¬
мером Д’ х Аг на входной поток данных из N отсчетов, записанных
в виде столбца:
[А'(^)] = [А(01 х [Дцпф],
(3.5)
где
‘1
1
1
1
1
е-72тг/А
e-j4TT/_V
e~j27r(A -1 )/A
[Лдпф] -
1
е—J47r/Ar
е-.7 87т/Л
e-j47r(Ar-l)/7V
_1
e-j27r(N-1;/JV
e-j47r(Ar-l )/N
е->27г(У-1)2/Аг
(3.6)
— матрица преобразования. Общая формула для элемента матрицы,
расположенного в А--м столбце и ?-й строки выглядит так:
Лдпф(г, k) = e-iW-iXfc-D/A; (3.7)
При выполнении ДПФ по соотношению (3.5) получается столбец
значений [А (Д)], для вычислений значений которого требуется N2 пар
операций умножения с накоплением Так, например, для построения
графика представленного на рис. 3.2 с количеством отсчетов N — 8000
необходимо выполнить 80002 • 2 = 1,28 • 108 операций умножения с на¬
коплением. Процессор Intel Pentium-4 подобное количество вычислений
выполняет несколько десятков секунд, что недостаточно для приложе¬
ний реального времени, поэтому требуются алгоритмы, сокращающие
количество вычислительных операций.
Вычислительные алгоритмы, сокращающие количество вычисли¬
тельных операций, были известны задолго до появления быстродейству¬
ющих ЦВМ. В то время приветствовалась любая схема, уменьшающая
количество ручных вычислений. Первые алгоритмы БПФ описали Рунге
[4], Даниэльсон и Ланцош [5], Кули и Тьюки [6]. Эти работы вызвали
значительный интерес к ДПФ при обработке сигналов и привели к от¬
крытию ряда вычислительных алгоритмов.
Если N не является простым числом и может быть разложено на
множители, то процесс вычислений можно ускорить, разделив анализи¬
руемый набор коэффициентов на части, вычислив их ДПФ и объединив
результаты. Такие способы вычисления ДПФ называют быстрым пре¬
образованием Фурье (БПФ, английский термин — Fast Fourier Transform,
FFT) и часто используют в практике.
3.2.1. БПФ с прореживанием по времени
Рассмотрим БПФ с прореживанием по времени (decimation in time,
DIT) на примере деления набора отсчетов пополам. Если N — чет¬
ное число, то из формулы (3.5) можно выделить два слагаемых, со¬
ответствующих элементам исходной последовательности с четными и
нечетными номерами:
N._l
Х(*) = У2 z(tye~j2lT2ik/N + r(2i + (3.8)
i=0 i=0
72
Глава 3
Спектральный анализ
73
Введем обозначения ?/(z) = .г(2?’) и c(z) = .г(2?'+1), а также вынесем
из второй суммы общий множитель e-J2?rA7A ■
N/2-1
Л(А)= 52 (/(Ое-72"77'^2’
г=0
Две суммы в (3.9) представляют собой ДПФ последовательностей
{1/(0} (отсчеты с четными номерами) (c(z)} (отсчеты с нечетными но¬
мерами). Каждое из этих ДПФ имеет размерность N/2. Таким образом,
Д'(А-) = }'(£•) + Z(Z), (3.10)
где У (А*) и Z(A') — ДПФ четных и нечетных последовательностей вы¬
борочных данных соответственно.
Каждое из двух ДПФ имеет размерность Л7/2 и требует №/4 вычи¬
слений. Кроме того, при вычислении окончательных результатов ка¬
ждый спектральный коэффициент Z(A:) умножается на комплексный
— 1 '>1? к' 1 V
множитель е J~ ,
что добавляет еще N/2 вычислении Всего по-
лучится
2' ' V<'2 ’’ (3-11)
что почти вдвое меньше, чем вычисление ДПФ по выражению (3.5)
непосредственно.
Если число «V '2 тоже является четным числом, т.е. N делится на 4,
можно разбить ДПФ на четыре, размерностью У/4. Эго позволит еще
больше сократить число требуемых вычислений.
Делить исходную последовательность можно на любое количество
частей, но наибольшая степень ускорения может быть достигнута при
уУ = 2П, в этом случае деление последовательности на две части можно
продолжать до тех пор, пока не получатся двухэлементные последова¬
тельности. ДПФ которых вообще рассчитывается как сумма и разность
двух отсчетов, т.е. без использования операций умножения. Число тре¬
буемых при этом пар операций умножения с накоплением можно оце¬
нить как N log2(A;) раз.
3.2.2. БПФ с прореживанием по частоте
Формулы прямого (3.3) и обратного (3.4) ДПФ отличаются толь¬
ко знаком в показателе экспоненты и множителем перед суммой. На
этом основан еще один алгоритм БПФ, называемый прореживанием по
частоте (decimation in frequency. DIF)
БПФ с прореживанием по частоте, как и БПФ с прореживанием
по времени, выполняется для четного числа N. Разделим исходную
последовательность А(/) на две следующие друг за другом половины:
Лг/2—1
Л'(А)= 52 •'(')e_j2’r,A'/A
z = 0
7V/2-1
+ 52 •»■(' +•v/2)e_J’-’r(,'+X/2)A'/A'.
2=0
Из второй суммы выражения (3.12) можно выделить множитель
&-j‘27v(k.N/2)/N
С учетом преобразования Эйлера (1.15) выражение (3.13) перепи¬
шется в виде
е ;7r/l = (cos тг — j sin 7г)а’ = (—l)k.
Выделенный из (3.12) множитель (3 14) равен 1 или —1 в зависимо¬
сти от четности номера вычисляемого спектрального отсчета А*, поэтому
можно рассмотреть четные и нечетные А' по отдельности. После выделе¬
ния множителя ±1 комплексные экспоненты в обеих суммах становятся
одинаковыми Поэтому выносим их за скобки, объединяя две суммы,
записывая для четной последовательности:
■J *■
Л'(2&) = 52 И') + + А72)]е->2,Г'Ч/(Л'/-')
1 = 0
и для нечетной:
v-i
Л'(2А- + 1) = 52 [•'•(') - •’■(' + .У/2)]е"-/'2’г,*лл/2|е->2’гг'/л .
г=0
(3.16)
Выражения (3.15) и (3.16) представляют собой ДПФ суммы и разно¬
сти половин исходной последовательности, при этом разность перед вы¬
числением ДПФ умножается на комплексные экспоненты ехр(—j2tt//;V).
Каждое из используемых здесь ДПФ имеет размерность N /2.
Все сказанное в предыдущем разделе о возможности деления на
отличное от двух число частей относится и к алгоритму с прорежи¬
ванием по частоте.
3.3. Реализация ДПФ в ПЛИС
Как вычислять соотношение (3.2) в процессорном или логическом
устройстве легко разобраться, рассмотрев рис. 3.4. Анализируемый сиг¬
нал и функции sin и cos в цифровом виде по существу представляют
собой таблицы дискретных значений. На рис. 3.4 эти дискретные зна¬
чения изображены в виде точек, условно соединенных линиями.
Суммирование с учетом знака произведения соответствующих точек
исследуемой функций А (/) и со5(2тг//Тд) позволяет найти вещественную
часть ДПФ (Re Л). Мнимая часть ДПФ (ImЛ ) получится при суммиро¬
вании произведения соответствующих точек функций A’(z) и 5т(2тг/7Тд).
74
Глава 3
Спектральный анализ
75
Рис. 3.4. Исследуемая функция А'(?) и анализирующие функции
Таким образом, для реализации дискретного преобразования Фурье не¬
обходимо иметь два перемножителя двух числовых потоков, два сумма¬
тора (аккумулятора для накопления числовых массивов) и два ПЗУ с
записанными в них таблицами синуса и косинуса.
Современные ПЛИС имеют в своем составе встроенные перемножи-
тели и блоки встроенной памяти. Например, ПЛИС XC2V250 фирмы
Xilinx содержит в 24 встроенных перемножителя независимых целочи¬
сленных операндов 18 х 18 битов, которые совмещены с блоками памя¬
ти размером 1024 х 18 битов. Схема устройства для реализации ДПФ
в данной ПЛИС представлена на рис. 3.5.
На входы перемножителей DD6 и DD7 поступают по два числовых
массива, один — это сигнал с АЦП, а второй — таблицы косинусов
и синусов соответственно. По фронту сигнала elk на выходе умножи¬
телей устанавливается результат произведения, который может сумми¬
роваться в сумматорах DD8 и DD9, работа которых легко описывает¬
ся на языке VHDL.
library IEEE;
use IEEE. STD _LOGIC_1164. ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity sum is
Port(proizv : in std_logic_vector(35 downto 0);
elk : in std_logic;
reset : in std_logic;
znak : in std_logic;
summ : inout std_logic_vector(41 downto 0));
end sum;
Рис. 3.5. Схема аппаратного преобразователя
76
Глава 3
Спектральный анализ
77
32767 cos (2л i/m)
65536
—
• •
• •
•
♦ <
•
•
•
•
1
• 1
1
•
•
•
•
•
•
1
•
1
1
•
• •
•
•
<
•
•
•
•
ф
•
•
• «
♦
►
■ *
♦
■ *
•
•
•
•
•
•
•
•
♦
•
•
♦
1
57344
49152
40960
32768
24576
16384
8192
Рис. 3.6. Графическое представление таблицы косинусов
architecture Behavioral of sum is
begin
proceH(clk)
begin
if elk’event and elk = ’l’ then
if reset = ’1’ then
summ(41 downto 0) <= conv_std_logic_vector (0, 42);
else
if znak = ’0’ then
summ(41 downto 0) <= summ(41 downto 0) + ”000000" &
proizv(35 downto 0);
else
summ(41 downto 0) <= summ(41 downto 0) — "000000" &
proizv(35 downto 0);
end if;
end if;
end if;
end ргосеЯ;
end Behavioral;
Логика работы модуля сумматора очень проста. Все события про¬
исходят по фронту сигнала elk. При наличие логической единицы на
входе reset происходит очистка аккумулятора summ, в противном слу¬
чае в аккумулятор с учетом знака происходит добавление очередного
произведения.
Такая работа сумматора требует записи значений косинусов и сину¬
сов в таблицу в прямом коде (см. разд. 1.2). На рис. 3.6 представлен
пример таблицы косинусов с амплитудой Ао = 21C)Aq.
Построенная таким образом таблица косинусов лежит в блоке ПЗУ
DD2. а аналогичная таблица синусов — в блоке DD3.
Модули DD4 и DD5 производят разделение линий сигналов и вы¬
деление 16-го разряда, хранящего знак коэффициента, в отдельную
линию.
library IEEE;
use IEEE. STD_LOGIC_1164. ALL;
use IEEE. STD-LOGIC JkRITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity sogl is
Port ( indan : in std_Logic_vector (15 downto 0);
outdan : out std_logic_vector (17 downto 0);
znak : out std_logic) ;
end sogl;
architecture Behavioral of sogl is
begin
outdan(17 downto 0) <= "000" & indan(14 downto 0);
znak < = indan (15) ;
end Behavioral;
Работой всего устройства управляет счетчик DD1.
library IEEE;
use IEEE. STD_L0GIC_1164. ALL;
use IEEE. STD -LOGIC _ARITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity count is
Port ( elk : in std_logic;
reset : out stdJLogic;
adres : inout stdJLogic_vector(7 downto 0));
end count;
architecture Behavioral of count is
begin
proceR(clk)
begin
if elk’event and elk =’l’ then
adres <= adres + 1;
end if;
end ргосеЯ;
reset <= ’1’ when adres = "11111111" else ’O’;
end Behavioral;
В ресурсах ПЛИС есть линии называемые global clock, которые под¬
ключены непосредственно к счетным входам триггеров. Такая конфигу¬
рация позволяет в пределах одного фронта сигнала elk обнулять триг¬
геры и копировать их содержимое, например, в буфер.
78
Глава 3
Спектральный анализ
79
В конечном итоге в ПЛИС Virtex-ll XC2V250 можно параллель¬
но провести расчеты 12 масштабов преобразования Фурье Выделен¬
ные умножители имеются в составе всех современных семейств FPGA,
что обеспечивает высокую производительность операций спектрально¬
го анализа.
Далее по формулам (1.26) и (1.28) можно найти амплитуду и фазу
исследуемой функции для фиксированной частоты J
3.4. Влияние постоянной составляющей
на результаты преобразования Фурье
При оцифровывании аналоговых сигналов с помощью АЦП цифро¬
вой код меняется в пределах 0...277 — 1 (выход АЦП целое число без
знака, см. разд. 1.4), что обычно соответствует изменению входного на¬
пряжения от 0 до [’тах- Если на вход АЦП подается гармонический сиг¬
нал, то для оцифровывания без искажений его нулевое значение должно
быть смещено на 2n/2 = 2zi_1. Этой же величине равна максимальная
амплитуда сигнала. Другими словами, максимальный размах входного
сигнала должен соответствовать динамическому диапазону АЦП. Таким
образом, в цифровом сигнале в идеальном случае присутствует посто¬
янная составляющая, равная половине максимального кода АЦП. На
рис. 3.7 и 3.8 приведены результаты преобразования Фурье для гармо¬
нических сигналов, аналогичных сигналам, результат анализа которых
представлен на рис. 3.1 и 3.2, но к исходному сигналу добавлено по¬
стоянное смещение.
Спектры сигнала на рис. 3.7 и 3.8 по сравнению с рис. 3.1 и 3.2 из¬
менились радикально. В них появились гармонические составляющие,
кратные основной частоте, и низкие частоты, некоррелируемые с исход¬
ным сигналом. Появление дополнительных частот является проявлени¬
ем эффекта Гиббса. Амплитуды кратных гармонических составляющих
и низкочастотных сигналов зависят от количества точек на период /д//,
постоянного смещения, амплитуды сигнала и их отношения.
Таким образом, смещение входного сигнала необходимо компенси¬
ровать. Самый простой способ (но не всегда эффективный) — вычесть
из оцифрованного сигнала 2n_1. Для этого в схему, изображенную на
рис. 3.5, в сигнал А’(?) необходимо дополнительно поставить блок DD10,
преобразующий входной сигнал из числового представления в виде до¬
полнительного кода в числа, взятые по модулю с отдельным разрядом
знака, аналогично таблицам ПЗУ. Схема с добавленным блоком пред¬
ставлена на рис. 3.9.
Вновь добавленный блок DD10 на VHDL описывается следующим
образом:
library IEEE;
use IEEE. STD _LOGIC_1164. ALL;
use IEEE. STD_LOGIC_ARITH. ALL;
Рис. 3.7. Преобразование Фурье входной последовательности А'(г), смещенной
на 0,45 амплитуды
Рис. 3.8. Преобразование Фурье входной последовательности .\'(г), смещенной
на 0,35 амплитуды
use IEEE. STD -LOGIC-UNSIGNED. ALL;
entity minys is
Port ( elk : in std_logic;
Adcln : inout std_logic_vector (17 downto 0);
AdcOut : out std_logic_vector(17 downto 0) ;
AdcZnak : out std 1ogi r) •
end minys;
architecture Behavioral of minys is
begin
process(elk)
begin
if elk'event and elk =’l’ then
Спектральный анализ
81
80
Глава 3
Рис. 3.9. Схема с компенсацией постоянного смещения входного сигнала
if Adcln > "011111111111111111" then
— если больше половины разрядной сетки
AdcOut <= Adcln - ”100000000000000000";
— обнулить старший разряд
AdcZnak <= ’О’;
— знак положительный
else — иначе
AdcOut <= "100000000000000000" - Adcln;
— взять модуль числа
AdcZnak <= ’ 1 ’ ; — знак отрицательный
end if;
end if;
end process;
end Behavioral;
При этом появляется дополнительный сигнал AdcZnak, который не¬
обходимо добавить в аккумулятор, исправив в нем условие суммирова¬
ния (здесь и далее исправленные и добавленные строки выделяются
жирным шрифтом):
library IEEE;
use IEEE. STD-LOGIC-1164. ALL;
use IEEE. STD-LOGIC J1RITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity sum is
Port(proizv : in std_logic_vector (35 downto 0);
elk : in stdJLogic;
reset : in std_logic;
znak : in stdJLogic;
AdcZnak : in stdJogic;
summ : inout stdLLogic_vector (41 downto 0));
end sum;
architecture Behavioral of sum is
begin
process(elk)
begin
if elk’event and elk = ’l’ then
if reset = ’ 1’ then
summ(41 downto 0) <= conv_stdLLogic_vector(0, 42);
else
if (znak = ’O’ and AdcZnak = ’O’) or (znak = ’1’ and AdcZnak
= ’1’) then
summ(41 downto 0) <= summ(41 downto 0) + "000000" &
proizv(35 downto 0);
else
summ(41 downto 0) <= summ(41 downto 0) - "000000" &
proizv(35 downto 0);
82
Глава 3
Спектральный анализ
83
Рис. 3.10. Г рафик среднего значения функции 256 sin 2%//Для /д/f — ЮО
и = 0; тг/2; тг; Зтг/4
end if;
end if;
end if;
end process;
end Behavioral;
Измененное условие означает: плюс на плюс и минус на минус да¬
ют плюс. Такой сгособ позволяет почти полностью скомпенсировать
постоянную составляющую, но совсем ее убрать не удастся из-за дрей¬
фа в аналоговых цепях.
Одним из способов измерения смещения является нахождение сред¬
него значения гармонической функции. На рис. 3.10 представлен ре¬
зультат определения среднего значения для гармонического сигнала с
различным фазовым смещением.
Как видно из рис. 3.10 = 0 только при условии кратности
количества точек выборки z количеству точек за период /д/j, что соот¬
ветствует равенству времени усреднения периоду сигнала. В реальных
применениях параметры сигналов не являются стационарными, поэто¬
му определить оптимальное время усреднения не представляется воз¬
можным.
Лучшим выходам в практических применениях будет запомнить ве¬
личину постоянного смещения в отсутствие сигнала и именно ее вы¬
читать при обработке.
В дальнейшем будет продемонстрирован метод спектрального ана¬
лиза — вейвлет-преобразование, не чувствительный к наличию смеще¬
ния по амплитуде гармонической функции.
3.5. Преобразование Фурье
нестационарных сигналов. Оконные
функции в преобразовании Фурье
До этого мы рассматривали только принцип преобразования Фу¬
рье, не обращая ни какого внимания на исследуемый сигнал. Реаль-
ные сигналы, за редким исключением, не имеют постоянной (стабиль¬
ной) частоты.
На рис. 3 11 представлен результат преобразования Фурье для сиг¬
нала, частота которого изменялась. Причем надо отметить, что на ре¬
зультат анализа фактически не влияет закон изменения частоты вход¬
ной последовательности.
Если в исходном сигнале присутствуют две частоты (рис. 3.12),
то по результату Фурье анализа невозможно сказать, присутствовали
эти частоты в исходном сигнале одновременно или в разные момен¬
ты времени.
Для определения временных параметров сигналов разрабатывают¬
ся методы кратковременного или оконного преобразования Фурье. Идея
этого преобразования очень проста: временной интервал существова¬
ния сигнала разбивается на ряд промежутков, т.е. окон, для каждого
из которых выполняется преобразование Фурье (рис. 3.13). Это позво¬
ляет перейти к частотно-временному представлению сигналов, но при
этом начинает действовать принцип неопределенности, подобный прин¬
ципу неопределенности Гейзенберга в квантовой механике: с увеличе¬
нием точности определения времени теряем точность определения ча¬
стоты Другими словами, введение в Фурье-анализ координаты времени
вступает в противоречие с пределами интегрирования в формуле (1.33).
Разрешить эту проблему позволяет развивающийся с начала 90-х годов
прошлого века метод спектрального анализа — вейвлет-анализ.
Рис. 3.11. Преобразование Фурье входной последовательности с изменяющейся
частотой
84
Глава 3
Спектральный анализ
85
X
5
4
3
2
1
О
Рис. 3.12. Преобразование Фурье входной последовательности при действии двух
частот
Рис. 3.13. Входная последовательность и наложенные на нее окна
3.6- Свертка
Если имеются две функции </(/) и z'(7), связанные линейным соот¬
ношением, представляющим собой линейное дифференциальное урав¬
нение с постоянными коэффициентами, то существует такая функция
/?(/), что
ZCC
Л(т).с(/--г)йт. (3.17)
-
Интеграл такого вида носит специальное название свертка, а
оконное преобразование Фурье по существу является сверткой, при этом
Л(т) = e_j2?r^T имеет смысл анализирующей функции.
По аналогии с (3.2) перепишем (3.17) для цифровой формы:
Л+Л'’-1
г/(0 = 7л 22 - *1), (318)
г=? 1
где А — ширина ядра свертки, а А и A = А + А’ — 1 — граничные
условия для окна выборки (см. рис. 3.13).
Из сказанного следует, что преобразование Фурье сводится к взя¬
тию двух сверток анализируемого сигнала с мнимой и действительной
частью анализирующей функции //(/). Результаты взятия сверток можно
использовать, например, для нахождения амплитуды и фазы исследуе¬
мого сигнала по формулам (1.14) и (1.16).
Важную роль играет теорема о коммутативности свертки, которая
утверждает, что в определении свертки функции *г(7) и //(f) можно по¬
менять местами, те.
/• СО Р GO
?/(/) = / />(т)а;(7 — т)с/т = / /?(/— т).г(т) г/г. (3.19)
•/ — со J — со
Операция взятия свертки является универсальной для преобразова¬
ний Хартли [10], Габора, вейвлет-преобразований [7-9] и др., для филь¬
трации сигналов и т.п. Схема, представленная на рис. 3.5, по существу
и является ядром свертки, а все виды преобразований отличаются ана¬
лизирующей функцией /?(/), т.е. набором коэффициентов, записанных
в виде таблицы в ПЗУ. Таким образом, цифровая обработка сигналов
в большинстве случаев сводится к операции взятия свертки, и именно
по этой причине производители ПЛИС очень много внимания уделяют
блокам аппаратного умножения с накоплением, о чем уже говорилось.
При этом очень важной задачей является корректная подготовка коэф¬
фициентов анализирующей функции.
3.7. Вейвлет-преобразование
Альтернативным методом спектрального анализа переменных сиг¬
налов является появившийся в конце 80-х годов вейвлет-анализ. Тер¬
мин «вейвлет» впервые ввел Морле (J. Morlet), в переводе с англий¬
ского wavelet означает «короткая или маленькая волна». У нас его пе¬
реводили как «всплеск», «выброс» [14]. встречается понятие «кратно¬
разрешающий анализ» [11], что в некоторой степени отражает основные
особенности этого метода, но это не совсем удачно, поскольку большин¬
ство вейвлетов имеет временные зависимости с ярко выраженной коле¬
бательной компонентой (как и волны). Слова «всплеск» и «выброс» не
отражают факта осцилляций вейвлетов Вейвлет-функции обычно обо¬
значаются как ^Ч7")- Они занимают промежуточное положение между
крайними случаями — дельта-функциями и бесконечными синусоидами
и образуют некоторый набор функций, удовлетворяющий условиям:
86
Глава 3
Спектральный анализ
87
• конечной энергии, т.е.
V>(r) = 0 при т — ос- и т ос
♦ нулевого среднего значения:
(3.20)
(3.21)
dr = 0.
Первые всплески, или вейвлет-функции, были построены Хааром
еще в 1909 г. Однако в явном виде математическая система, описыва¬
ющая вейвлет-анализ, была сформулирована только в 1986 г. С. Малла
и И. Мейером [12, 13]. С помощью этой системы был построен ряд
вейвлет-функций. обладающих основным свойством системы Хаара —
компактным носителем, но определяющихся более гладкими функция¬
ми. В настоящее время существует несколько основных направлений, в
которых применяется вейвлет-анализ. Это определение пространствен¬
ных или частотных особенностей исследуемого переменного сигнала, ло¬
кализация особых точек, одно- и двумерное сжатие данных, фильтра¬
ция, декомпозиция по заданному базису.
Непрерывный вейвлет-анализ является разновидностью многомас¬
штабного анализа. Он заключается в разложении (декомпозиции) ис¬
следуемого сигнала на некоторые базисные функции, изменяющиеся во
времени. От вида базисных функций (вейвлет функций) зависит воз¬
можность решения различных задач Выбор вейвлет-функции для ана¬
лиза конкретного сигнала является достаточно сложной задачей, от кор¬
ректности решения которой в значительной степени зависит точность
получаемых результатов и возможность их использования в последу¬
ющих вычислениях. Ввиду того что на вид вейвлет-функции не на¬
кладывается существенных ограничений, в настоящее время существуют
различные их классы, обладающие специфическими свойствами [11-13].
Обоснование выбора конкретной вейвлет-функции или ее синтез являют¬
ся необходимым этапом разработки способа цифрового анализа сигнала
применительно к каждой конкретной задаче.
Вейвлет-преобразование заключается в вычислении интеграла вида
где t — время: а — масштаб вейвлет-функции; ^’(т) — вейвлет-функция;
Дт) — исследуемый сигнал. Пределы интегрирования выражения (3.22)
традиционно выбираются равными ±4тг.
Таким образом, применение вейвлет-преобразования к некоторо¬
му входному сигналу позволяет получить его представление в виде
элементарной функции i'’(t), спектральная плотность которой может
изменяться во времени. В этом состоит коренное отличие вейвлет-
преобразования от преобразования Фурье, которое позволяет предста¬
вить исследуемый сигнал только в виде суммы бесконечных гармони¬
ческих рядов.
Для декомпозиции сигнала применяются различные вейвлет-функ¬
ции. В целом соблюдается правило подобия вейвлет-функции наиболее
характерному фрагменту исследуемого сигнала (wavelet pursuit, или ме¬
тодика «преследования»). В частности, можно выделить две большие
группы вейвлет-функций, предназначенных как для анализа простран¬
ственных характеристик сигнала, так и его частотных характеристик. Та¬
кое разграничение связано с принципом неопределенности, устанавлива¬
ющим соотношение между длительностью сигнала и его полосой частот.
В литературных источниках приводятся различные определения
этих величин. В общем случае под длительностью сигнала понимают
интервал времени, в течение которого его значение превышает неко¬
торый минимум. Более точное представление дает использование для
оценки длительности квадрата дискретной функции /1(/) [16]:
9“
(ДГ)2 = 4
Там же приводится выражение для
сы
(3.23)
аналогичного определения поло-
пропускания
"-ОО
— со
(3.24)
где H(f) — спектральная плотность дискретной функции /?(/). В этом
случае справедливо соотношение
ДТД1Г f -.
7Г
(3.25)
которое и представляет собой аналитическое выражение принципа не¬
определенности.
Из этого следует, в частности, что для функции с бесконечно ма¬
лой полосой пропускания (т.е. с бесконечно узким спектром) длитель¬
ность будет стремиться к бесконечности. Таким образом, разложение
исследуемого сигнала на гармонические составляющие, т.е. составляю¬
щие с узкими спектрами, влечет за собой необходимость использования
длительных временных рядов. Аналогично, использование компактных
во временной области базисных функций приводит к тому, что резуль¬
тирующая характеристика чистого гармонического сигнала будет иметь
искажения, связанные с расширением частотной полосы базисной функ¬
ции. Такой эффект как раз и наблюдается при использовании ДПФ С
малыми границами интегрирования и при использовании оконных функ¬
ций в преобразовании Фурье.
Таким образом, от выбора вида вейвлет-функции в значительной
степени зависит представительность и достоверность получаемой ин-
88
Глава 3
Спектральный анализ
89
Рис. 3.14. Вейвлет-функция Морле Рис. 3.15. Тестовый сигнал
формации о характерных особенностях анализируемого сигнала. К
вейвлет-функции, предназначенной для анализа частотных характери¬
стик, предъявляются два противоречивых требования. С одной стороны,
она должна иметь узкую полосу частот, с тем чтобы обеспечивать воз¬
можность декомпозиции исследуемого сигнала на частотные составляю¬
щие. С другой стороны, она должна иметь небольшую длительность для
повышения производительности вычисления вейвлет-преобразования по
формуле (3.22). Таким образом, критерием выбора вейвлет-функции,
предназначенной для анализа сигнала, является минимальное значе¬
ние произведения ДТДИ
Поскольку выражение (3.25) является неравенством, имеется функ¬
ция некоторого вида, обеспечивающая минимальное значение произве¬
дения длительности сигнала на его полосу частот. Такой функцией
является функция Гаусса вида
V>(r) = (3.26)
обладающая следующим свойством: функция ее спектральной плотно¬
сти имеет тот же вид, что и исходная функция [16].
Однако использование функции Гаусса непосредственно для деком¬
позиции исследуемого сигнала малоэффективно, поскольку она явля¬
ется вещественной и, следовательно, непригодна для анализа сигналов
с произвольной начальной фазой. Таким образом, для непрерывного
вейвлет-анализа необходимо использование функции, сочетающей свой¬
ства синус-косинусного ряда Фурье и функции Гаусса. В теории вейвлет-
анализа для этой цели предлагается использование вейвлет-функции
Морле. Ее аналитическое выражение имеет вид
V;(t) = (cos т j sin г)е_т , (3.27)
где k — некоторый постоянный коэффициент, традиционно равный 50.
Графическое изображение вейвлет-функции Морле представлено на
рис. 3.14.
Вейвлет-функция Морле унаследовала от функции Гаусса главное
его свойство: функция и ее спектральная плотность имеют подобный
вид.
1
л^лг-xzr
J
50 100 150 f, Гц
Рис. 3.16. Результат преобразования Фурье тестового сигнала
Рис. 3.17. Результат вейвлет-преобразования тестового сигнала
Для примера проведем преобразование Фурье и вейвлет-анализ не¬
которого тестового сигнала с изменяющейся частотой и амплитудой
(рис. 3.15).
На рис. 3.16 показан результат преобразования Фурье тестового
сигнала.
Как и в предыдущих примерах (рис. 3.7 и 3.8), невозможно сказать,
существуют сигналы одновременно или в разные моменты времени. Кро¬
ме этого, изменение амплитуды привело к расщеплению максимума, что
является проявлением эффекта Гиббса.
На рис. 3.17 показан результат анализа тестового сигнала вейвлет-
функцией Морле, на котором ось абсцисс соответствует времени наблю¬
90
Глава 3
Спектральный анализ
91
дения сигнала, ось ординат — частоте, а изменение яркости соответ¬
ствует изменению вейвлет-плотности анализируемого сигнала, пропор¬
циональной амплитуде. Таким образом, вейвлет-преобразование позво¬
лило решить задачу, не решаемую методом преобразования Фурье, —
однозначно определять амплитуду, частоту и фазу исследуемых сигна¬
лов в любые моменты времени.
Серьезным недостатком практической реализации вейвлет-анализа,
мешающим его широкому распространению, является чрезмерно боль¬
шой объем вычислений даже при обработке одномерного сигнала Ис¬
пользование ПЛИС для аппаратного вейвлет-анализа в измерительных
системах позволяет преодолевать этот недостаток.
3.8. Влияние коэффициентов и пределов
интегрирования вейвлет-функции Морле
на точность результатов анализа
гармонических сигналов с
нестационарными параметрами
Как говорилось ранее, коэффициент к в выражении (3.27) тради¬
ционно равен 50, а пределы интегрирования выражения (3.22) тради¬
ционно равны ±4тг [17]. Однако, как показала практика использования
для анализа нестационарных сигналов вейвлета Морле, такой выбор не
является удачным. Это видно на примере определения амплитуды гар¬
монической функции т?(/) — 100 cos(2?r/7). На рис. 3.18 видно влияние
фазы сигнала на погрешность определения амплитуды.
1/1з анализа рис. 3.18 следует, что размах изменения амплитуды со¬
ставляет 6 единиц при заданной амплитуде тестового сигнала в 100 еди¬
ниц. Это фактически соответствует погрешности определения амплиту¬
ды 6 %. Невысокая точность определения амплитуды тестового сигнала
и ее зависимость от фазы исследуемого сигнала связана с неудачным
выбором коэффициента к и границ интегрирования, следствием чего
Рис. 3.18. Зависимость амплитуды тестового сигнала от его фазы при ко¬
эффициенте к = 50 и границах интегрирования ±4т вейвлет-функции Морле
Таблица 3.1
Значения интеграла Я от вейвлет-функции Морле при различных пределах
интегрирования и значениях параметра к и величина изменения амплитуды
со средним квадратом отклонения амплитуды
Пределы
интегрирования
вейвлет-функции
Морле
Параметр к
вейвлет-
функции
Морле
Интеграл S
от вейвлет-
функции
Морле
Изменение
амплитуды
при 4 — 100
Средний квадрат
отклонений
амплитуды при
А = 100
±4т?
50
5,8
6,0
2,1
±4.04тг
50
4.1
—
—
±4~
30,011
0,005
0,04
0,01
±4.04г
30,011
0,2
—
—
±1,5»тг
13,284
0.0007
2,1
0,7
± 1.515 7г
13,284
0,06
—
—
±3.5тг
26,53353
1,3 ■ 10“4
0,08
0,03
±3,535 тг
26,53353
2,0 • 10~2.
—
—
±5.5 тг
39,485491
2.3 • 10“5
0,003
0,001
±5.555тг
39,485491
2,2 ■ 10“3
—
—
±9.5тг
65,020128
6 5■10~6
7.6 • 10“6
3.5 • IO-6
±9,595л-
65,020128
5.5 • 10~5
—
—
является неравенство нулю реаль¬
ной части ^-функции:
т>
Re г/т = 5. (3.28)
1
где Re — реальная или косинус¬
ная составляющая вейвлета Морле,
и при традиционных величинах Аг,
т; и т-2 значение интеграла (3.28),
взятого численно, колеблется в пре¬
делах 4,1...5,8 (табл. 3.1), в то вре¬
мя как интеграл мнимой (синусной)
части для симметричных пределов
всегда равен нулю вследствие не¬
Рис. 3.19. Зависимость инте¬
грала реальной части вейвлет-
функции Морле от коэффициента
к, пределы интегрирования ±4тг
четности функции.
Для нахождения оптимальной величины коэффициента к была по¬
строена зависимость интеграла реальной составляющей вейвлет-функ¬
ции Морле от собственно коэффициента к (рис. 3.19).
Из рис. 3.19 видно, что коэффициент к имеет нулевое значение в
точке 30 011. При этом значение S интеграла (3.13) находится в преде¬
лах 0,005...0.2. что точнее соответствует условию (3 6) нулевого средне¬
го значения ^’-функции. Амплитуда тестового сигнала для уточненного
коэффициента к представлена на рис. 3.20.
Рис. 3.20 показывает, что размах отклонения амплитуды с исполь¬
зованием уточненного коэффициента к составляет уже 0,04. Приведен¬
ные зависимости доказывают, что погрешность определения амплитуды
гармонического сигнала зависит от значения интеграла (3 28). Чтобы
Спектральный анализ
93
92
Глава 3
Рис. 3.20. Зависимость амплитуды тестового сигнала от фазы сигнала
с уточненным коэффициентом к
Рис. 3.22. Зависимость реальной части
вейвлет-функции Морле от коэффициента
к, пределы интегрирования ±4,5 ~
иметь более полную картину влияния границ интегрирования вейвлет-
функции Морле на точность определения амплитуды, необходимо рас¬
смотреть поведение функции cos .г вблизи различных границ интегри¬
рования (рис. 3.21).
Как видно на рис. 3.21, пределы интегрирования ±4тг выбраны не
совсем удачно, так как при этом косинус «обрывается» на максимуме, а
при цифровом представлении исследуемого сигнала пределы интегриро¬
вания невозможно выдержать точно (они будут выдержаны с точностью
до одного кванта дискретизации по времени). Неточность установки
пределов интегрирования и приводит к возникновению гармонических
колебаний на графике амплитуды (рис. 3.18 и 3.20).
Таким образом, можно остановить свой выбор на границах инте¬
грирования, в которых функция у — cos х имеет значение близкое к ну¬
лю. Такие границы имеют следующие значения: ±1|5тг; ±2,5тг; ±3,5тг;
±4,5тг; ±5.5тг и т.д.
Зависимость реальной части вейвлет-функции Морле от параметра
k при границах интегрирования ±4,57? видна на рис. 3.22. Эта зависи¬
мость имеет ярко выраженный минимум, но нулевого значения функция
не достигает. Подобное поведение зависимости S(A:) наблюдается и для
пределов интегрирования ±2 5тг. Для границ ±1,5тг: ±3,5тг; ±5,5тг за¬
висимость >$(&) приведена на рис. 3.23.
Рис. 3.23. Зависимость S(a,/с) от пределов интегрирования и коэффициента к
(а) и зависимость S(A?) для пределов интегрирования: ±1.5тг; ±3.5тг и ±5,5тг (б)
б)
Анализируя зависимости, представленные на рис. 3.23, следует
иметь в виду, что конечная точность цифрового представления вейвлет-
функции приведет к отклонению от оптимального значения коэффици¬
ента k. В этом случае существенную роль играет отношение dS/dk ы
ДЬ/Дк, которое определяет величину погрешности вычисления Дм
вейвлет-функции AS в зависимости от точности представления коэф¬
фициента k. Так как AS = (<9S/5A’)AAr, для минимизации ошибки сле¬
дует выбирать величину 9S/dk возможно меньшей. Это наблюдается на
рис. 3.23,6при ±5.5тг, где график зависимости S(k') в районе оси абсцисс
представляет собой практически горизонтальную линию. Таким обра¬
зом, выбор пределов интегрирования ±5,5тг обеспечивает лучшую устой¬
чивость к погрешности цифрового представления вейвлет-функции, чем
использование пределов ±4тг.
Величины коэффициента k и интеграла (3 28) для различных пре¬
делов интегрирования приведены в табл 3.1.
Большой интерес представляет зависимость оптимального значения
94
Глава 3
Рис. 3.24. Зависимость оптимального зна¬
чения коэффициента k от границ интегриро¬
вания вейвлет-функции Морле
Глава 4
Фильтры
коэффициента А* от пределов интегрирования вейвлет-функции Мор¬
ле (рис. 3.24).
На рис. 3.24 прослеживается прямолинейная зависимость оптималь¬
ного значения коэффициента к от пределов интегрирования вейвлет-
функции Морле, построенная по данным из таблицы. Эта зависимость
становится еще более интересной, если заметить, что на данной пря¬
мой лежат и уточненное значение коэффициента к для традиционных
пределов интегрирования ±4тг, а также минимумы коэффициента к для
границ ±2.5тт и ±4,5тг. Существование такой зависимости позволяет лег¬
ко переходить от одних границ интегрирования к другим. Такой переход
полезен, например, при уточнении коэффициента к при «плавающих»
вследствие дискретности цифровых сигналов пределах интегрирования
вейвлет-функции Морле.
Практический опыт использования модифицированного вейвлета
Морле для анализа нестационарных сигналов позволяет рекомендовать
пределы интегрирования ±5,5т для вычислений с погрешностью не бо¬
лее 0,1 %. Пределы интегрирования ±1.5тг приводят к появлению боль¬
шей погрешности вследствие появления эффекта Гиббса, а пределы
±7,5тг и ±9.5тг существенно увеличивают вычислительные затраты.
Интересным является тот факт, что при пределах интегрирова¬
ния ±1,5тг вещественная часть вейвлета Морле становится идентичной
вейвлет-функции, известной под названием «мексиканская шляпа» [7].
Модифицированная вышеописанным образом вейвлет-функция
Морле была использована при обработке сигналов в ряде задач, та¬
ких как определение параметров акустической волны в жидких средах,
определение периодов сокращения сердечной мышцы, сдвига фаз ме¬
жду двумя гармоническими сигналами и др.
В процессе решения этих задач была отмечена высокая точность
определения параметров гармонических сигналов и крайне низкое вли¬
яние дестабилизирующих факторов на точность определения этих па¬
раметров.
Фильтры — это частотно-избирательные устройства, которые про¬
пускают или задерживают сигналы лежащие в определенных полосах
частот. Фильтры используют с целью подавления помехи, для коррек¬
ции частотных характеристик частотно-зависимых цепей и устройств или
в качестве корректирующих звеньев систем автоматического управления.
До 60-х годов для реализации фильтров применялись в основном
пассивные элементы, т.е. индуктивности, конденсаторы и резисторы.
Основной проблемой при реализации таких фильтров оказывался раз¬
мер катушек индуктивности (на низких частотах они становятся слишком
громоздкими). Вторая проблема — катушки индуктивности необходимо
тщательно экранировать, так как находящиеся в зоне действия перемен¬
ных магнитных полей катушки индуктивности являются источниками
ЭДС, которая является помехой.
С разработкой в 60-х годах интегральных операционных усилите¬
лей появилось альтернативное направление проектирования фильтров
на базе операционных усилителей (ОУ). В активных фильтрах приме¬
няются резисторы, конденсаторы и усилители (активные компоненты),
но в них нет катушек индуктивности. Активные фильтры почти полно¬
стью вытеснили пассивные, оставив последним частотную область выше
десятка мегагерц, т.е. область, превышающую частотный диапазон боль¬
шинства ОУ широкого применения. Но даже во многих высокочастотных
устройствах, например в радиопередатчиках и приемниках, традицион¬
ные RLC-фильтры заменяются кварцевыми фильтрами и фильтрами на
поверхностных акустических волнах Отсутствие индуктивности в ак¬
тивных фильтрах приводит к ограничению влияния внешних магнит¬
ных полей, при этом становятся актуальными проблемы, связанные со
стабильностью характеристик фильтра, которая определяется тем. как
сказываются на них небольшие вариации параметров элементов схемы,
возникающие из-за температурных дрейфов, погрешностей номиналов и
старения. Необходимо заметить, что в некоторых случаях даже неболь¬
шое отклонение значения элемента фильтра от номинального может
вызвать существенные изменения его характеристик.
С начала 80-х годов с развитием микропроцессорной техники анало¬
говые фильтры заменяются цифровыми, которые обладают абсолютной
помехозащищенностью и высокой стабильностью характеристик. Работа
96
Глава 4
Фильтры
97
цифровых фильтров может обеспечиваться программными средствами
или жесткими логическими схемами.
Первый способ реализации обладает высокой гибкостью при пере¬
наладке характеристик фильтра . но даже при использовании высокопро¬
изводительных процессоров имеет существенные ограничения в области
высоких частот. Фильтр, выполненный на жесткой логической схеме,
сложней перенастроить, но частотные ограничения становятся менее су¬
щественными из-за возможности применения параллельных вычисле¬
ний, за что приходится платить существенным усложнением схемы.
Альтернативой двум этим направлениям является использование
ПЛИС. Они обладают гибкостью переналадки, которая сопоставима
с процессорными системами и при этом высокой скоростью обработки
сигналов. Стабильность характеристик цифрового фильтра обеспече¬
на неизменностью коэффициентов фильтра, хранящихся в устройствах
памяти, и высокой стабильностью кварцевых генераторов, синхронизи¬
рующих работу цифровых устройств.
Тем не менее цифровой фильтр не может заменить аналоговый во
всех ситуациях. Цифровой сигнал в устройствах обработки информа¬
ции появляется при оцифровывании аналогового сигнала (гл. 2), ко¬
торый для этой цели необходимо готовить из-за ограниченности дина¬
мического диапазона входных напряжений АЦП и необходимости огра¬
ничивать спектр частот для обеспечения критерия Шеннона (гл. 2).
Поэтому сохраняется потребность в наиболее популярных аналоговых
RC-фильтрах.
Принципам расчета различных типов фильтров посвящено очень
большое количество изданий, например [20, 21], но несмотря на это нет
единообразия в представлении материалов и очень трудно найти два ис¬
точника не только с одинаковой интерпретацией одних и тех же явлений
и понятий, но и с одинаковым символьным обозначением. Особенно эта
проблема усугубляется при чтении книг по теории автоматического регу¬
лирования и по фильтрации сигналов. Тем не менее во всех этих издани¬
ях говорится об одном и том же. При написании этой главы автор сделал
попытку описать различные интерпретации одних и тех же понятий
Простейший фильтр получается при
построении делителя напряжения на пас¬
сивных элементах, резисторах и конденса¬
торах (рис. 4.1). Здесь ii и i? — импе-
дансы (комплексные сопротивления) соот¬
ветствующих участков цепи. Если какой-
нибудь из них имеет емкостный или индук¬
тивный характер, то коэффициент переда¬
чи всей цепи (отношение выходного напря¬
жения к входному) оказывается зависящим
тров и теории автоматического регулирования коэффициент передачи
называется передаточной функцией и обозначается
0
<4
21
0
Z2
0
L 1
Рис. 4.1. Пассивный
фильтр первого порядка
0.
^вых
от частоты. В теории филь-
(4-1)
где cj — 2тг/ — циклическая частота. В общем виде передаточная функ¬
ция комплексная, поэтому записана с точкой.
Проведем преобразование, для чего пренебрежем внутренним со¬
противлением источника сигнала и сопротивлением нагрузки. При этом
в цепи будет протекать ток
7 = -^0- {7ВХ = /(.-! + £2). (4.2)
Выходное напряжение находится по формуле
иъь1Х = Iz2. (4.3)
Подставив (4.2) и (4.3) в (4.1) получим
(4-4)
Фильтр нижних частот получится, если импеданс ii — R имеет
активный характер, а ~2 — 1/j^’C — емкостный. Подстановка значений
импедансов в (4.4) позволит определить вид передаточной функции
1/JC 1
1/j^C + R 1+jwCR'
(4-5)
4.1. Типы фильтров
Фильтры классифицируют по их частотным характеристикам. Если
необходимо ограничить прохождение высоких частот, то применяется
фильтр нижних частот (ФНЧ). Фильтр высоких частот (ФВЧ) наобо¬
рот пропускает высокие частоты, ограничивая низкие. Оба эти филь¬
тра можно объединить в полосовом фильтре, пропускающем необхо¬
димую полосу частот. Если из спектра сигнала необходимо удалить
какие-либо частоты, то применяют полосно-подавляющий фильтр или
фильтр-«пробку».
где j = \/—1 — мнимая единица.
Если ввести обозначения р — jw — оператор Лапласа (в некоторых
источниках обозначается s), Т — RC — постоянная времени, то получим
ЕКнт(р) = \-±Тр' (4-6)
где ки — коэффициент усиления на постоянном токе, т.е. при cj —> 0
значение передаточной функции ки = IV(0) = 1.
Оператор Лапласа, находящийся в числителе, означает операцию
дифференцирования, а в знаменателе — интегрирования, при этом его
7
98
Глава 4
Фильтры
99
степень определяет порядок операции. Поэтому передаточная функция
(4.6) называется интегрирующим звеном первого порядка.
Для разделения вещественной и мнимой части комплексного вы¬
ражения (4.5) необходимо числитель и знаменатель умножить на ком¬
плексно сопряженное знаменателю выражение (1 — jwCR):
С учетом (4 10) модуль передаточной функции можно записать в
виде
= /, 1 ■■/■■■ (4Л1>
\/ 1 +
1 . ccCR
1 + w2C2/?2 ~ J 1 + w2G2 R-'
(4.7)
Модуль передаточной функции интегрирующего звена найдем как
квадратный корень суммы квадратов мнимой и действительной части:
Сдвиг фаз между входным и выходным напряжением находится
как арктангенс отношения мнимой к действительной части передаточ¬
ной функции:
<Ринт = arctg(-^CP) = - arctg(cjTHHT) = - arctg ——. (4.12)
|1Г(^)1 = =
1
\/l+wW=
(4.8)
Частотные характеристики устройств удобно изображать в логариф¬
мическом масштабе по частоте. При этом модуль передаточной функ¬
ции переводят в децибелы:
К = 20lgTV [дБ].
(4-9)
При условии равенства частот щ и щс сдвиг фаз между входным и
выходным напряжением 99 = arctg(—1) = — тг/4, или —45°.
Дифференцирующее звено (ФВЧ) первого порядка получится, если
импеданс (рис. 4.1) имеет емкостной характер, а — активный.
При этом ii = I/Cjcv’C), а со = R Подставим данные импедансы
в (4.4) и получим
АЧХ и ФЧХ интегрирующего звена первого порядка (ФНЧ первого
порядка) представлены на рис. 4.2 и 4.3.
На АЧХ в логарифмических координатах явно выделяются два
участка, один горизонтальный, другой имеет наклон 20 дБ на декаду
(декада — десятикратное изменение частоты). Если продолжить эти
два участка, то они пересекутся при частоте, называемой частотой среза,
йЧ„)= « = ;Г
k J 1/juC + R 1 + jwCR
w2C2R2 . cjQR
“ 1 + u’C2R2 + J 1+ ^C'-R’’'
(4.13)
для которой модуль
передаточной функции Ил(щс) = х/2/2 и имеет
значение 3 дБ.
Модуль (4.13) имеет вид
(4-14)
где ku = 1Г(оо) — коэффициент усиления ФВЧ при щ — оо, который
для пассивного фильтра равен единице.
Рис. 4.2. Амплитудно-частотная характе¬
ристика (АЧХ) ФНЧ (интегрирующего зве¬
на) первого порядка (cvc = 100 рад/с)
<Р, рад
Рис. 4.3. Фазо-частотная характе¬
ристика (ФЧХ) ФНЧ (интегрирующего
звена) первого порядка (u»c — 100 рад/с)
Сдвиг фаз между входным
и выходным напряжением для
ФВЧ
* =arctg sin <415)
На АЧХ ФВЧ (рис. 4.4) пер¬
вый участок имеет наклон 20
дБ/дек, а второй — горизон¬
тальный. Эти участки, как и
для ФНЧ, пересекаются на ча¬
стоте среза Для этой часто¬
ты И’( Щ’с ) = ^2/2 также име¬
ет значение —3 дБ, а сдвиг фаз
«с
Рис. 4.4. Амплитудно-частотная харак¬
теристика ФНЧ (интегрирующего зве¬
на) первого порядка (лс = 100 рад/с)
7*
100
Глава 4
Фильтры
101
между входным и выходным напряжением <р — arctg(l) = тг/4, или 45°:
киТр
1 + Тр
Выражение (4.16) представляет собой передаточную функцию ФВЧ
или передаточную функцию дифференцирующего звена первого поряд¬
ка, При этом числителю соответствует операция дифференцирования,
а знаменателю — интегрирования.
Последовательное соединение двухФНЧ первого порядка позволяет
получить ФНЧ второго порядка и улучшить качество фильтра:
1 + lpl 1 р
1 + 2£Тр + Т2р2 ’
®с
где k'u — общий коэффициент усиления, £ ■— величина, называемая
в теории автоматического регулирования показателем колебательности,
в данном случае равная единице. Если разделить и числитель и зна¬
менатель выражения (4.17) на постоянную времени в квадрате, полу¬
чим другую форму записи:
1 4- 2£Тр + Т2р2
где = 1/Т2, Qf = 1/(2^) — добротность фильтра. Если показа¬
тель колебательности
ц < 1 (добротность Q f
то на АЧХ наблюдается
выброс на частоте
(при малых £).
Рис. 4.6. АЧХ полосового фильтра (с^си = 1000 рад/с, лСд = 10 рад/с)
Пр имеры АЧХ ФНЧ второго порядка с различными показателями
колебательности представлены на рис. 4.5. Такое поведение АЧХ объяс¬
няется тем, что при выполнении условия (4.19) выражение (4.18) не¬
льзя разложить на два сомножителя с вещественными коэффициен¬
тами (один корень при разложении полинома знаменателя становит¬
ся мнимым).
Точно так же ведет себя ФВЧ второго порядка, для которого пере¬
даточная функция описывается выражением
ние (4.6) и (4.16):
^Цинт ^Цднфф^диффР
1 T Тинтр 1 + 7дИффр
На рис. 4.6 приведен пример АЧХ полосового фильтра.
Фазовая характеристика выражения (4.22) будет иметь вид, пред¬
ставленный на рис. 4.7.
В общем виде передаточная функция любого фильтра представля¬
ет собой отношение полиномов:
Й/дифф(р) —
1 т 2<Тр + Т2р2 р2 + (WQ/)p т CJ2 ‘
(4.21)
а>тРт + am_ipm 1 + . . . + flip + ар
bnpn Т ^n-ip?7_1 + ... + biр + bp
Последовательное соединение ФНЧ и ФВЧ позволяет получить по¬
лосовой фильтр. Его передаточная функция представляет произведе-
где коэффициенты сц и Ь{ — вещественные постоянные величины,
т.?7 = 1,2,3,... (772 <J 77). Степень полинома знаменателя п опреде-
102
Глава 4
Фильтры
103
где 2Т1) и — линейные дифференциальные операторы. Например,
оператор может иметь вид
D(1'> =
d2
adp+bTt+c
(4.26)
где a, b и с — постоянные.
Предположим, что х(1) и
?/(/) связаны линейным дифференциаль¬
ным уравнением с постоянными коэффициентами
dt? +2^Г dt^ + y^ = X<^'
Сопоставив (4.25) и (4.37), получим
' d2 d 1
r’^+2«Ts+1
T2 rf2y(z)
Dw =
= 1.
(4.27)
(4.28)
Рис. 4.7. Фазо-частотная характеристика полосового фильтра (и;си = 1000 рад/с,
о>сд = 10 рад/с)
ляет порядок фильтра, и чем она больше, тем больше его характери¬
стика похожа на идеальную.
Один из популярных способов построения аналогового фильтра с
заданной характеристикой 7?-го порядка заключается в разложении вы¬
ражения (4.23) на произведение нескольких передаточных функций пер¬
вого и второго порядка:
Й(р) = . Wn(p). (4.24)
Эти звенья объединяются между собой каскадно, т.е. выход первого под¬
соединяется ко входу второго и т.д. Если эти звенья не влияют друг
на друга, т.е. при соединении не меняют свои собственные передаточ¬
ные функции, то общая схема будет обладать передаточной функци¬
ей ?1-го порядка.
При проектировании аналогового фильтра n-го порядка необходимо
уделять внимание вопросам стабильности характеристик фильтра, кото¬
рая определяется тем, как сказываются на его характеристиках неболь¬
шие вариации параметров элементов схемы, возникающие из-за темпе¬
ратурных дрейфов, погрешностей номиналов и старения. В некоторых
случаях даже небольшое отклонение значения элемента фильтра от но¬
минального может вызвать значительные изменения его характеристик.
В цифровых фильтрах проблемы стабильности коэффициентов
фильтра не существует, но появляются проблемы связанные с кванто¬
ванием аналоговых сигналов.
4.2. Линейные системы
Линейной системой будем называть некоторые функции x(t) и y(t),
между которыми установлено линейное соотношение. В частности,
здесь рассматриваются функциональные соотношения вида
p(1W = ^(2W)L
С помощью табл. 1.1, учитывая что 2тг/ = щ, можно найти преобра¬
зование Фурье равенства (4.27) и получить соотношение
Т2Цо>)2У(/) + 2^Т(»У(7) + У(/) = Х(/), (4.29)
где А(/) и У(/) — преобразования Фурье соответственно x(t) и ?/(/).
Вынесем общий член У(/) за скобки и после перегруппировки получим
передаточную функцию между двумя функциями х(1) и y(t):
и) T2q-w)2 + 2еп» +1 •
Если заменить jco оператором Лапласа р, то (4.30) окажется то¬
ждественным ФНЧ второго порядка (4.18).
Левую часть выражения (4.30) можно переписать и в другом виде:
(4-31)
Такая форма записи помогает выявить тот факт, что абсолютная ве¬
личина преобразования Фурье р(/) есть просто произведение абсолют¬
ной величины преобразования Фурье функции .т(£) и модуля функции
H(f). Обратное преобразование Фурье равенства (4.31) дает свертку
функции х(Г) и новой функции /?(/), представляющей собой обратное
преобразование Фурье
(4-32)
(4-25)
Интеграл такого вида носит специальное название — свертка
В нашем примере функция /?(/) находится из формулы
1
т2см2+2ет(» +1
104
Глава 4
Фильтры
105
о
sin(ucX/l-£2t)
wcx/i-r
при f < О,
при t 0.
(4.33)
значение выхода (умножение на постоянный множитель). Вообще по¬
рядок фильтра определяет число входящих в разностное уравнение зна¬
чений предшествующих выходов.
Здесь постоянная времени Т заменена частотой среза ис.
Выражение (4.33) представляет собой обратное преобразование Фу¬
рье функции //(/), часто называют импульсной функцией отклика.
Если в качестве функции .?(/) взять 6-функцию, то функция у(1) бу¬
дет равна h(t}.
Таким образом, с помощью интеграла свертки (4.32) получаем
?/(/.) = —■ [ е vx'c^r sin(uc\/l — — T)dr. (4-34)
у 1 — £2 Л)
Конечные пределы интегрирования появились в силу того, что как /?(/),
так и х’(/), для отрицательных значений равны нулю.
Итак, для функций «(/) и y(t), связанных линейным дифференци¬
альным уравнением, существуют такие функции /?(/) и H(f), что:
• функция H(f) есть преобразование Фурье функции 6(f);
• в частотной области выполняется соотношение (4 31);
• во временной области выполняется соотношение (4.32);
• если 2?(Z) = 6(f), то y(t) = h(t\,
• исходному дифференциальному уравнению может быть сопоставле¬
но эквивалентное ему интегральное уравнение.
4.3. Цифровая фильтрация сигналов
Важной задачей цифровой обработки сигналов является задача
фильтрации длинной последовательности чисел. Устройство, реализу¬
ющее эту задачу, называется цифровым фильтром. Цифровые фильтры
имеют ряд преимуществ, основные из них — стабильность характеристик
и надежность в работе, недостижимые в аналоговых фильтрах. Филь¬
труемый сигнал представляет собой поток непрерывных данных или чи¬
сел. Задача фильтрации заключается в преобразовании этого входного
потока данных и выдаче выходного, модифицированного потока данных.
Наиболее общий вид цифрового фильтра первого порядка опреде¬
ляется разностным уравнением
к
^(0 = У? ~ fc) ~ а1^(^ ~ ■*■)• (4.35)
к = 0
Текущий выход фильтра определяется линейной комбинацией Л
предшествующих значений входа, текущим значением входа и одним те¬
кущим значением выхода Такой фильтр называется фильтром первого
порядка, потому что для получения нового значения выхода из линей¬
ной комбинации значений входов вычитают только одно предыдущее
4.4. Реализация цифровых фильтров
Цифровой фильтр реализуется либо как специализированное вы-
числительное устройство на основе так называемой жесткой логики из
элементов типа сумматор, сдвиговый регистр и умножитель, либо как
программа, выполняемая на процессорном устройстве.
В цифровых фильтрах можно выделить два типа фильтров: фильтр
с конечным импульсным откликом (К 1/10-фильтр. еще называемый не¬
рекурсивным фильтром, рис. 4.8) и авторегрессионый фильтр (рекур¬
сивный фильтр, рис. 4.9). Авторегрессионый фильтр является анало¬
гом аналогового филыра.
Как видно из рис. 4.8, К1/1О-фильтр представляет собой многораз¬
рядный сдвиговый регистр, выходы которого хранят число со входа в
различные моменты времени. Так число do соответствует числу на вы¬
ходе АЦП в момент времени Zo, d-i — число на предшествующем такте
преобразования или в момент времени f_i и т.д. Числа, соответствую¬
щие различным моментам времени преобразования умножаются каждое
на свой коэффициент Л?: и поступают на сумматор. В результате на
выходе появляется новая числовая последовательность.
Авторегрессионый фильтр получается введением отрицательной об¬
ратной связи в KI/10-фильтр.
Для реализации цифровых фильтров в логических устройствах
можно выделить два подхода. Первый заключается в непосредствен-
Рис. 4.8. КИО-фильтр
Рис. 4.9. Авторегрессионый фильтр
106
Глава 4
Фильтры
107
ном повторении схем на рис. 4.8 и 4.9, а второй — использование опе¬
ративной памяти для хранения входной числовой последовательности
и коэффициентов фильтра.
Первый подход очень просто реализовать в ПЛИС с использованием
языка VHDL. Ниже приведен исходный текст описания КИО-фильтра,
имеющего семь регистров:
library IEEE;
use IEEE. STD _LOGIC_1164. ALL;
use IEEE. STD _LOGIC_ARITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity filtr is
Port ( elk : in std_logic;
adc : in stdJLogic_vector(15 downto 0);
f_out : out std-logic_vector(15 downto 0));
end filtr;
architecture Behavioral of filtr is
signal rga, rgb, rgc : stdJLogic_vector(15 downto 0);
signal rgd, rge, rgf : std_logic_vector(15 downto 0);
signal ka, kb, kc, kd : std_logic_vector(15 downto 0);
signal ke, kf, kg : stdJLogic_vector(15 downto 0);
signal pa, pb, pc, pd : std_logic_vector (31 downto 0);
signal pe, pf, pg : std_logic_vector (31 downto 0);
signal summ : std_logic_vector(34 downto 0) ;
begin
- Загрузка коэффициентов фильтра
ka <= "1010101010101010";
kb <= "1010101010101011";
kc <= "1010101010101111";
kd <= "1010101010111010";
ke <= "1010101011101110";
kf <= "1010101110111010";
kg <= "1010111011101010";
process (elk)
begin
if elk’event and elk = ’1’ then
- сдвиговый регистр
rga <= adc;
rgb <= rga;
rgc <= rgb;
rgd <= rgc;
rge <= rgd;
rgf <= rge;
summ(34 downto
0) <= "000" & pa + '’000" & pb +
& pc + "000" & pd + "000" & pe +
"000" & pf + "000" & pg;
end if;
end process;
- перемножители
pa
<= adc
*
ka;
Pb
<= rga
*
kb;
pc
<= rgb
*
kc;
pd
<= rgc
*
kd;
pe
<= rgd
*
ke;
Pf
<= rge
*
kf;
Pg
<= rgf
*
kg;
- нормализация выходного сигнала
f_out(15 downto 0) <= summ(34 downto 19);
end Behavioral;
Одна из проблем, которую приходится решать при построении це¬
лочисленных цифровых фильтров, — выбор разрядности регистров.
В описанном примере входной сигнал имеет разрядность г = 16, сле¬
довательно, и сдвиговый регистр должен быть шестнадцатиразрядным.
Коэффициенты фильтра логично брать такой же размерности (т —
г — 16). Но при перемножении двух чисел разрядность числа на вы¬
ходе умножителя равна сумме разрядностей входных чисел (?т? + ?•)•
Для нашего примера результат перемножения должен храниться в 32-
разрядных регистрах. Кроме этого, при суммировании из-за операции
переноса разрядность результата сложения увеличивается на дополнен¬
ное (а не округленное) до ближайшего целого числа число п, которое
находится по формуле
п — log2 ;V, (4.36)
где А" — количество регистров, коэффициентов, сумматоров фильтра.
Таким образом, максимальная разрядность аккумулятора, гарантирую¬
щая учет битов переноса при любых условиях, находится по формуле
f = г + т + п. (4.37)
где г — разрядность АЦП, т — разрядность коэффициентов фильтра,
f — максимальная разрядность аккумулятора фильтра. Для нашего
примера количество сумматоров равно 7, log2 7 = 2,81, дополнение до
целого дает п = 3, следовательно, / = 16 + 16 4- 3 = 35. Если число на
выходе фильтра должно по размеру соответствовать входному числу, то
необходимо провести нормализацию, например, путем отброса младших
19 разрядов, при этом, несомненно, ухудшится точность фильтрации.
Как видно из сравнения рис. 4.8 и 4.9, авторегрессионый фильтр
отличается от KI/IO-фильтра наличием отрицательной обратной связи.
Поэтому его описание на VHDL очень похоже на описание KI/10-фильтра:
library IEEE;
use IEEE.STD-LOGIC-l 164.ALL;
"000’
Глава 4
Фильтры
109
use IEEE. STD_LOGIC_ARITH . ALL,
use IEEE. STD JLOGIC-UNSIGNED. ALL;
entity filtr is
Port ( elk : in std-logic;
adc : in std_logic_vector (15 downto 0);
f_out : out std_logic_vector(15 downto 0));
end filtr;
architecture Behavioral of filtr is
signal rga, rgb, rgc : std_logic_vector(15 downto 0);
signal rgd, rge, rgf : stdJLogic_vector(15 downto 0);
signal ka, kb, kc, kd : stdJ.ogic_vector(lS downto 0);
signal ke, kf, kg : std_logic_vector(15 downto 0);
signal pa, pb, pc, pd : stdJLogic_vector(31 downto 0);
signal pe, pf, pg ■ stdJLogic_vector(31 downto 0);
begin
- Загрузка коэффициентов фильтра
ka <= ”1010101010101010";
kb <= "1010101010101011";
kc <= ”1010101010101111";
kd <= ”1010101010111010";
ke <= "1010101011101110";
kf <= "1010101110111010";
kg <= "1010111011101010";
process (elk)
begin
if clkJevent and elk = 11’ then
- сдвиговый регистр с сумматором на входе
Гда <= adc - (ра(31 downto 16) + pb(31 downto 16) +
рс(31 downto 16) + pd(31 downto 16) +
ре(31 downto 16) + pf(31 downto 16) +
рд(31 downto 16));
rgb
<=
rga;
rgc
<=
rgb;
rgd
<=
rgc;
rge
<=
rgd;
rgf
<=
rge;
f_ou
t <
= rgf;
end if;
end process;
pa <= adc * ka;
pb <= rga * kb;
pc <= rgb * kc;
pd <= rgc * kd;
pe <= rgd * ke;
mem rom MULTI8x18S
Рис. 4.10. Устройство цифровой фильтрации
pf <= rge * kf;
pg <= rgf * kg;
end Behavioral;
Такой подход к построению фильтров обладает высоким быстро¬
действием. Трансляция этих проектов в ПЛИС Virtex-II XC2V250 фирмы
Xilinx позволяет работать с тактовой частотой 83 и 67 МГц для КИО и
авторегрессионого фильтра соответственно Но этот подход имеет суще¬
ственный недостаток — при увеличении «длины» фильтра увеличивает¬
ся количество коэффициентов и сумматоров, а главное, перемножителей
двух числовых массивов, что, кроме простого увеличения количества
блоков, существенно усложняет трассировку ПЛИС и неизбежно ведет
к снижению тактовой частоты. Второй подход позволяет упростить по¬
строение длинных фильтров, но имеет более низкое быстродействие.
В этом подходе (рис. 4.10) вместо сдвигового регистра используется
ОЗУ (блок mem_ram), а коэффициенты хранятся в ПЗУ (блок mem_rom).
При этом требуется только один перемножитель и один сумматор, вы¬
полняющей свертку хранящейся числовой последовательности с коэф¬
фициентами фильтра из ПЗУ.
Счетчики, управляющие работой фильтра, расположены в блоке
flit .count:
library IEEE;
use IEEE. STD-LOGIC-1164. ALL;
use IEEE. STD_LOGIC_ARITH. ALL;
use IEEE. STD JLOGIC-UNSIGNED. ALL;
entity filt_count is
Port ( elk : in stdJlogic;
we : out std_Logic;
Фильтры
111
f.clk : out std_logic;
adruram :
inout std_logic_vector(8 downto 0);
adr^rom :
inout std_logic_vector(8 downto 0));
end filt.count;
architecture Behavioral of filt_count is
begin
process (elk)
begin
if elk’event and elk - then
adrurom <= adrusom + 1;
if adr_rom = adr_ram then
we <= ’ 1 ’ ;
adr_ram <= adr_ram + 1;
else
we <= ’O’;
end if;
end if;
end process;
end Behavioral;
При этом сумматор выглядит как:
library IEEE;
use IEEE. STD_LOGIC_1164.ALL;
use IEEE. STD-LOGIC-ARITH.ALL,
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity f_sum is
Port ( elk : in stdJLogic;
reset :
in-sum :
out_sum
in std_logic;
in std_logic_vector(35 downto 0) ;
inout std_logic_vector(43 downto
0));
end f_sum;
architecture Behavioral of f_sum is
begin
process(elk)
begin
if elk’event and elk = ’1’ then
if reset = ’1’ then
out_sum <=
"00000000000000000000000000000000000000000000”
outturn <= out_sum + "00000000" & in_sum;
end if;
end if;
end process;
end Behavioral;
J
MULTI 8x18S
mem rom
В данном примере не проведена обработка знака, если это требу¬
ется, то необходимо поступить как в примере на рис. 4.10. Трансля¬
ция данного проекта в ПЛИС Virtex-ll XC2V250 позволяет работать на
частоте 235 МГц, но необходимо помнить, что частота дискретизации
при этом составляет
/ц = /е1к/2°. (4.38)
где п — число, найденное из соотношения (4.36) и соответствующее
разрядности шины адреса коэффициентов. В нашем примере п — 9 и,
следовательно, /д ~ 500 кГц. С такой же частотой следует сигнал разре¬
шения записи в ОЗУ we, который можно использовать для запуска АЦП.
Как и в первом подходе, КИО-фильтр достаточно просто преобра¬
зовать в авторегрессионый. Как видно из рис. 4.11, преобразование
незначительное.
Характеристики фильтров определяются коэффициентами филь¬
тра, методы подбора которых подробно изложены в [2, 3, 16], а также
существует множество программ, например Matlab, которые позволяют
синтезировать цифровые фильтры.
Существует программный пакет для автоматизированного создания
цифровых фильтров разных типов, выступающий в качестве связующего
звена между ПО Matlab -h Simulink и САПР ISE. Пакет называется System
Generator for DSP и входит в состав программных средств Xilinx. Уста¬
новка пакета добавляет в Simulink возможность моделирования поведе¬
ния цифровых фильтров при их реализации в ПЛИС и автоматической
генерации HDL-описаний этих фильтров по результатам моделирования.
Внешний вид окна Simulink приведен на рис. 4.12.
Глава 4
112
Глава 5
Примеры цифровой обработки
сигналов
Рис. 4.12. Вид окна Simulink с установленным пакетом System Generator
5.1. Цифровое детектирование
AM и ФМ сигналов
Известен широкий круг задач, где используются различные виды
модуляции сигналов: амплитудная (AM) и фазовая (ФМ). Например,
модуляция при трансляции радиопередач и телевизионных изображе¬
ний; модуляция, возникающая при наблюдении доплеровского смеще¬
ния частоты электромагнитной и ультразвуковой волны и др. Существу¬
ющие методы аналогового детектирования модулированных сигналов не
удовлетворяют требованиям, предъявляемым к современной аппаратуре,
поэтому сейчас бурно развиваются методы цифровой обработки.
Для цифрового двухполупериодного амплитудного детектирования
необходимо сигнал сместить на половину разрядной сетки АЦП, взять
модуль сигнала и просуммировать на определенном интервале време¬
ни. В качестве примера приведен VHDL код устройства, реализующе¬
го AM детектирование.
library IEEE;
use IEEE.STD_L0GIC_1164.ALL;
use IEEE. STD-LOGIC JLRITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity AM_detect is
Port ( elk : in stdLLogic;
reset : in std_logic;
Adc : in std_logic_vector(ll downto 0);
Summ : inout std_logic_vector(31 downto 0));
end AM_detect;
architecture Behavioral of AM_detect is
signal AdcBuf f : stdLLogic.vector (11 downto 0);
begin
process(clk)
begin
if clkJevent and elk = ,1J then
- если больше половины разрядной сетки
if Adc > "011111111Ш" then
114
Глава 5
Примеры цифровой обработки сигналов
115
- обнулить старший разряд
AdcBuff <= Adc - ”100000000000";
else - иначе
- взять нодуль числа
AdcBuff <= "100000000000" - Adc;
end if;
if reset = ’ 1’ then
Summ <= "00000000000000000000000000000000";
else
Summ(31 downto 0) <= Summ(31 downto 0) +
"00000000000000000000" & AdcBuff;
end if;
end if;
end process;
end Behavioral;
Исходный сигнал, преобразованный АЦП, приходит на вход Adc.
Время детектирования определяется временем пребывания сигнала reset
в нулевом состоянии. На ПЛИС VIRTEX-4 проект позволяет работать
с тактовой частотой выше 400 МГц.
Фазовое детектирование сигналов более сложная операция. Она
требует наличия опорного сигнала, частота которого равна частоте де¬
тектируемого сигнала, а время импульса равно половине его периода,
library IEEE;
use IEEE. STDJLOGIC-l 164. ALL;
use IEEE. STD _LOGIC_ARITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED . ALL;
entity FM_detect is
Port ( elk : in stdJLogic;
strob : in stdJogic;
reset : in std-logic;
Adc : in stdJLogic_vector(ll downto 0);
Summ : inout stdJLogic_vector (31 downto 0));
end FM_detect;
architecture Behavioral of FM_detect is
signal AdcBuff: stdJLogic_vector(ll downto 0);
begin
process(elk)
begin
if elk’event and elk = ’l’ then
- если больше половины разрядной сетки
if Adc > "011111111111" then
- обнулить старший разряд
AdcBuff < = Adc - "100000000000";
else - иначе
- взять модуль числа
AdcBuff <= "100000000000" - Adc;
end if;
if reset = ’ 1’ then
Summ < = "00000000000000000000000000000000";
else
if strob = ’O’ then
Summ(31 downto 0) <= Summ(31 downto 0) +
"00000000000000000000" & AdcBuff;
else
Summ(31 downto 0) <= Summ(31 downto 0) -
”00000000000000000000” & AdcBuff;
end if;
end if;
end if;
end process;
end Behavioral;
Если опорный сигнал гармонический, то для фазочувствительного
выпрямления необходимо добавить еще одну АЦП и умножитель,
library IEEE;
use IEEE. STD_L0GIC_1164. ALL;
use IEEE. STD-LOGIC-ARITH. ALL;
use IEEE. STD-LOGIC-UNSIGNED. ALL;
entity FM_detect is
Port ( elk : in stdJLogic;
reset : in stdJLogic;
AdcSign : in stdJLogic_vector(11 downto 0);
AdcOporn : in std_logic_vector(11 downto 0);
Summ : inout stdJLogic.vector(31 downto 0));
end FM_detect;
architecture Behavioral of FM_detect is
signal AdcBuffS : stdJLogic_vector(ll downto 0);
signal AdcBuffО : stdjogic_vector(11 downto 0);
signal ZnakSign : stdJogic;
signal ZnakOporn : stdJogic;
begin
process(elk)
begin
if elk’event and elk = ’!’ then
- если больше половины разрядной сетки
if AdcSign > "011111111111" then
- обнулить старший разряд
AdcBuffS <= AdcSign - "100000000000";
ZnakSign <= ’O’; - знак положительный
else - иначе
- взять модуль числа
116
Глава 5
Примеры цифровой обработки сигналов
117
AdcBuffS <= "100000000000" - AdcSign;
ZnakSign <= ’1’; - знак отрицательный
end if;
if AdcOporn > ”011111111111” then
- обнулить старший разряд
AdcBuffO <= AdcOporn - ”100000000000”;
ZnakOporn <= !0’; - знак положительный
else - иначе
— взять нодуль числа
AdcBuffO <= ”100000000000” - AdcOporn;
ZnakOporn <= ’1’; - знак отрицательный
end if;
if reset = ’ 1’ then
Summ <= "00000000000000000000000000000000";
else
if ZnakSign = ZnakOporn then
Summ(31 downto 0) <= Summ(31 downto 0) +
(”00000000” & (AdcBuffS * AdcBuffO));
else
Summ(31 downto 0) <= Summ(31 downto 0) -
(”00000000” & (AdcBuffS * AdcBuffO));
end if;
end if;
end if;
end process;
end Behavioral;
Дополнительно необходимо запоминать знаки обоих сигналов и с их
учетом производить суммирование произведений. С добавлением второ¬
го АЦП и умножителя тактовая частота немного снижается и для при¬
веденного примера она выше 350 МГц.
5-2. Аппаратное детектирование сигналов
методом вейвлет-анализа
Описанные методы спектрального анализа очень хорошо подходят
для цифрового декодирования сигналов, при этом вейвлет-анализ, по
мнению авторов, является наиболее перспективным методом, который,
в силу своих преимуществ, позволит повысить точность восстановления
сигналов и надежно выделять несущую и отделять ее от помех.
Рассмотрим AM сигнал, описываемый уравнением
и = (По + Ui cos(2ir + у>1)) cos(27r/0/ + ро). (5.1)
где Uo, fo, ро — амплитуда, частота и фаза несущей. U\, fi, Р\ —
амплитуда, частота и фаза огибающей частоты соответственно
На рис. 5.1 показан результат веивлет-анализа сигнала, описанно¬
го уравнением (5.1).
Если сделать срез параллельно оси времени по несущей частоте, то
амплитуда будет меняться по закону
и = Iо + Г1 cos(2-/i/ + (5.2)
который, по сути, является законом изменения амплитуды колебаний
сигнала.
Таким образом, для детектирования AM сигналов необходимо не¬
прерывно вычислять величины R< \ и 1тХ вейвлет-преобразования
на частоте несущей. Амплитуду колебаний, рассчитанную по формуле
(5.2), можно масштабировать (регулировать громкость) непосредствен¬
но в цифровом виде и подавать на вход ЦАП, где и будет восстано¬
влен исходный сигнал.
Для реализации AM детектирования подойдет без изменений схема
рис. 1.1 с загруженными в память коэффициентами реальной и мни¬
мой части вейвлета Морле. Причем достаточно одного набора вейвлет-
коэффициентов, так как селекция несущих частот может производиться
изменением периода дискретизации Тд = 1//с1к. где /с1к — частота сиг¬
нала elk (рис. 3.5). При неизменном количестве точек анализирующей
функции N изменение периода дискретизации приведет к изменению
исследуемой частоты.
В качестве иллюстрации вышесказанного на рамочную антенну был
принят неселектированный сигнал, оцифрован и обработан методом
вейвлет-анализа (рис. 5.2). На рисунке можно видеть присутствие ра¬
диосигналов различных частот. Например, на частоте 200 кГц четко
118
Глава 5
Примеры цифровой обработки сигналов
119
Рис. 5.2. Вейвлет-разложение радиосигнала
просматривается AM сигнал, соответствующей длине волны радиостан¬
ции «Маяк» (1500 м). Так же хорошо видны и импульсные помехи.
Из сказанного следует вывод, что главный недостаток вейвлет-
преобразований — большое число вычислительных операций легко пре¬
одолевается.
Фазовая и частотная модуляция фактически одинаковы, поэтому
достаточно рассмотреть ФМ сигнал
U = Uo cos(27r/(T + Ui cos(27t/i/)), (5-3)
где Uq и /о — амплитуда и частота несущей, Ui и Д — амплитуда и
частота фазовой модуляции соответственно.
Результат вейвлет-анализа ФМ сигнала представлен на рис. 5.3.
В отличие от AM для анализа необходимо большое количество мас¬
штабов вейвлет-коэффициентов, а следовательно, и устройств, которые
должны работать одновременно.
Для ФМ демодуляции лучшим образом подходит уже упоминавше¬
еся семейство ПЛИС Virtex-4, в составе которого имеется до 512 блоков
Xtreme DSP, представляющих собой перемножители с аккумуляторами
формата 18 х 18 = 48, причем в структуре микросхемы имеются ресурсы
для быстрой подачи одного и того же цифрового сигнала одновремен¬
но на все блоки Xtreme DSP. Таким образом, в пределах одной ПЛИС
можно рассчитать 256 масштабов вейвлет-анализа в режиме реального
времени с частотой дискретизации около 100 МГц.
По такому принципу построено устройство аппаратного выделения
доплеровского смещения частоты в ультразвуковом интерферометре пе¬
ременной базы с подвижным рефлектором [18], что позволило на поря¬
док повысить точность определения этого параметра.
Гц
400-
0 372 744 1116 t, мс
Рис. 5.3. Результат вейвлет-преобразования ФМ сигналов с Д =2 Гц
и /о = 200 Гц
5.3. Использование
вейвлет-преобразования
для исследования электрокардиограммы
сердца
При обработке сигнала электрокардиограммы (ЭКГ) сердца при-
ходится сталкиваться с наличием в исходном сигнале помех и шумов,
связанных с влиянием процессов дыхания, произвольных судорожных
сокращений мышц в теле пациента, изменения сопротивления контак¬
та тело-электрод, наводок от сетей промышленной частоты (50 Гц). В
связи с этим существенно осложняется точная идентификация характер¬
ных участков сигнала электрокардиограммы. Вид исследуемого сигнала
приведен на рис. 5.4,а, на котором видно наличие в сигнале различ¬
ного рода помех.
Для идентификации в кардиосигнале переодически появляющего¬
ся R-зубца была использована методика вейвлет-анализа. Вейвлет-
преобразование в отличие от фильтрации сигнала помехи не подавляет,
а игнорирует, поскольку для любого момента времени t можно опреде¬
лить наибольшее значение вейвлет-функции 1У/-(£.а), а также величину
а, при которой достигается ее максимум. Остальные точки функции
остаются доступными для более детального анализа, и, таким образом,
искажение исходного сигнала отсутствует.
Обработка исследуемого сигнала заключается в проведении его де¬
композиции по базису вейвлет-функции С’(^)- В качестве базисной
функции, исходя из принципа подобия вейвлет-функции характерным
120
Глава 5
Примеры цифровой обработки сигналов
121
Рис. 5.4. Исследования электрокардиограммы сердца: а — сигнал электро¬
кардиограммы; б — результаты анализа вейвлетом Морле сигнала ЭКГ; в —
временной срез функции распределения вейвлет-плотности на частоте 15 Гц
участкам исследуемого сигнала, была выбрана вейвлет-функция Мор¬
ле (3.12).
В результате произведения анализа была получена функциональ¬
ная зависимость распределения вейвлет-плотности от частоты и време¬
ни, которая приведена на рис. 5.4.6. В результате исследований было
выяснено, что максимум распределения вейвлет-плотности, соответству¬
ющей появлению R-зубца, приходится на частоту 15 Гц На этой часто¬
те был выполнен временной «срез» функции распределения вейвлет-
плотности, который приведен на рис. 5.4,в. Как видно, полученная за¬
висимость включает в себя набор ярко выраженных максимумов, кото¬
рые однозначно определяют появление сигнала R-зубца в исследуемом
электрокардиологическом сигнале
5.4. Применение вейвлет-анализа
для обработки сигнала в ультразвуковом
интерферометре
Ультразвуковые интерферометры являются одними их наиболее на-
дежных и точных измерительных средств для определения скорости
распространения и коэффициента поглощения ультразвука в жидкостях
и газах. Несмотря на различие схем и методов формирования ульт¬
развуковых сигналов в разных типах интерферометров (постоянной и
переменной базы), их характеристики обладают схожими признаками.
Во-первых, измерение частоты принимаемого сигнала является основ¬
ной измерительной операцией, а в интерферометрах переменной базы
она связана с изменением скорости движения рефлектора от нуля до
некоторого установившегося значения в соответствии с эффектом До¬
плера. Во-вторых, происходит изменение амплитуды сигнала, обусло¬
вленное свойствами среды, изменением частоты и расстоянием, прохо¬
димым ультразвуковой волной. В-третьих, имеют место искажения сиг¬
нала, обусловленные неоднородностью колебаний пьезопреобразовате¬
ля, дифракцией ультразвуковых волн, непараллельностью излучателя
и рефлектора и т.п.
Для определения параметров ультразвукового сигнала используют¬
ся методы детектирования характерных точек и методы спектрального
анализа. Обе группы методов обладают существенными недостатками:
наличие искажений в обрабатываемом сигнале ведет к ложным сраба¬
тыванием детектирующих схем, а методы, основанные на пьезопреобра¬
зовании Фурье, не позволяют отследить изменения частоты сигнала в
процессе проведения измерений.
Задача обработки сигнала в ультразвуковых интерферометрах мо¬
жет быть решена с использованием вейвлет-анализа. Критерием выбо¬
ра вейвлет-функции является минимальное значение произведения дли¬
тельности сигнала на его полосу частот ДТДЗГ 1/т, представля¬
ющее собой аналитическое выражение соотношения неопределенности
[19]. Этому принципу отвечает вейвлет-функция Морле (3.27), с помо¬
щью которой была проведена обработка сигнала в жидкостном ультра¬
звуковом интерферометре переменной базы с непрерывно движущимся
рефлектором. Исследованию подвергался сигнал доплеровского сме¬
щения частоты волны падающей и волны отраженной от рефлектора,
осуществляющего непрерывное движение из состояния покоя
На рис. 5.5 показан фрагмент исследуемого сигнала с наличием
сателлитов, появление которых обусловлено непараллельностью пьезо¬
преобразователя и рефлектора, и вейвлет-плотность этого сигнала на
протяжении всего времени движения рефлектора.
Сигнал доплеровского смещения частоты является ФМ сигналом.
Для его обработки применялся подход, описанный в разд. 5.2.
На рис. 5.6 хорошо видны области разгона рефлектора, его равно¬
мерного движения и торможения, при этом можно различить изменение
122
Глава 5
Примеры цифровой обработки сигналов
123
г—■- г
ГГГГ’
1
' vj l/J Ity v\
. 1 . L
WmA
1 1—
1
VR
О 0 05 0,1 0,15 0,2 0,25 t,c
Рис. 5.5. Фрагмент сигнала доплеровского смещения частоты
Рис. 5.7. Зависимость сдвига фазы от времени по результатам обработки
тестового сигнала
Рис. 5.6. Вейвлет-плотность сигнала доплеровского смещения частоты для преде¬
лов интегрирования ±5,5л- (см. разд. 3.8)
вейвлет-плотности частоты основного сигнала (ярко выраженная темная
полоса) и изменение вейвлет-плотности частоты сателлитов (бледная
полоса, соответствующая второй гармонической составляющей основ¬
ного сигнала).
Таким образом, применение вейвлет-анализа для обработки сигна¬
лов в ультразвуковых интерферометрах позволяет локализовать особен¬
ности этих сигналов во временной и частотной области.
5-5- Определение с помощью
вейвлет-преобразования сдвига фаз
между синусоидальными сигналами
Вейвлет-анализ очень хорошо подходит для прецизионного изме¬
рения разности фаз в широком диапазоне частот. Для определения
данного параметра необходимо произвести декомпозицию каждого из
входных сигналов с помощью вейвлет-функции Морле (3.27), по соот¬
ношению (1.27) определить фазы обоих сигналов для одного и того же
момент времени и найти их разность.
По функциям распределения вейвлет-плотности для каждого вре¬
менного среза определяется максимум вейвлет-плотности, таким обра¬
зом, для каждого из исследуемых сигналов получаем функции зависи¬
мости значения максимальной вейвлет-плотности от времени.
В результате обработки двух сигналов была получена функциональ¬
ная зависимость сдвига фазы между входными сигналами от време¬
ни Ф(<т).
Для оценки точности определения сдвига фаз данной методикой
была проведена обработка двух тестовых гармонических сигналов, из¬
начально имеющих нулевой фазовый сдвиг.
После обработки тестового сигнала была получена зависимость
сдвига фазы от времени ^(t), вид которой приведен на рис. 5.7. Как
видно из рисунка, значение погрешности определения исследуемого па¬
раметра оказалась величиной порядка £ = 10-5.
На основе вышеизложенной методики определения сдвига фазы ме¬
жду двумя сигналами был построен прецизионный прибор для опре¬
деления тангенса угла диэлектрических потерь. В этом случае исход¬
ными сигналами является сигнал тока, протекающего через диэлек¬
трик, и сигнал переменного напряжения промышленной частоты (50 Гц),
приложенного к диэлектрику. Точность определения исследуемого па¬
раметра построенным прибором оказалась величиной с = 10~э, что
является показательным примером использования методики вейвлет-
анализа.
По сравнению с другими методами определения сдвига фаз между
двумя сигналами, основанными на методике прохождения исследуемо¬
го сигнала через особые точки, методика вейвлет-анализа является до¬
статочно помехоустойчивой и слабо чувствительна к изменению фор¬
мы сигнала.
На основе данной методики также могут быть построены прецизион¬
ные приборы для определения коэффициента мощности cos у? и другие
приборы, использующие в своей основе определение сдвига фазы.
124
Глава 5
Примеры цифровой обработки сигналов
125
5.6. Статистический и регрессионный
анализ на основе байесовского подхода
Од ним из способов повышения точности и надежности результа¬
тов измерений физических величин является проведение многократных
измерений с последующей статистической обработкой. Для проведения
обработки по полученным результатам измерений строится функция рас¬
пределения вероятности некоторого вида и определяются ее числовые
характеристики. Полученные характеристики являются основанием для
представления измеренной величины в виде .то ± Дл где а?о определяет
центр интервала, в котором может лежать истинное значение измеряе¬
мой величины, а Д.г — абсолютную ошибку измерений.
В настоящее время для статистической обработки используется в
основном оценка по среднему арифметическому значению выборки с ис¬
пользованием центрального момента второго порядка (дисперсии) для
определения абсолютной ошибки. Оценка по среднему арифметиче¬
скому является общепризнанной методикой обработки результатов мно¬
гократных измерений, однако ее использование следует считать кор¬
ректным только для симметричных распределений случайных величин.
Практически чаще всего используют гауссовское (нормальное) распре¬
деление. хотя, как показывают исследования, отнюдь не абсолютное
большинство измерительных процессов дают распределение результа¬
тов измерений, подчиняющееся этому закону. Способы оценки интер¬
вала распределения (например по центральным моментам различного
порядка) зависят от конкретного вида закона распределения.
Следует заметить, что метод обработки результатов измерений ока¬
зывается привязанным к конкретному закону распределения, предпола¬
гаемому априорно или определенному в процессе исследования характе¬
ристик измерительного прибора или системы. Однако при практических
измерениях довольно часто наблюдаются отклонения закона распреде¬
ления полученной выборки от предполагаемого вида распределения. Это
может быть связано как с промахами, так и с объективными флуктуа¬
циями измеряемых значений, особенно при малых объемах выборки.
Существенные отклонения математического ожидания выборки от
действительного значения измеряемой величины при наличии в выбор¬
ке промахов обусловливают необходимость использования дополнитель¬
ных методов фильтрации входных данных либо альтернативных мето¬
дик оценки (например, по медиане или моде выборки). Эти методики,
как правило, носят индивидуальный характер и не могут быть одно¬
значно рекомендованы для обработки результатов измерений различных
физических величин. В связи с этим существует необходимость созда¬
ния метода обработки результатов многократных измерений, устойчи¬
вого к наличию промахов в исходных данных, позволяющего исполь¬
зовать различные законы распределения и допускающего автоматиза¬
цию процесса обработки.
В ряде практических приложений статистики, например при метро¬
логическом контроле в процессе производства, весьма актуальной зада¬
чей является уменьшение количества измерений, требуемых для надеж¬
ной оценки измеряемого параметра. В этих условиях можно исполь¬
зовать, например, методы непараметрической статистики, однако в из¬
мерительной практике часто оказывается важным получить параметры
распределения, которые могут быть напрямую связаны с некоторыми
характеристиками исследуемого объекта или процесса. Кроме того, во¬
просы применения тех или иных непараметрических методов зачастую
требуют индивидуального подхода, что ставит под вопрос широкое рас¬
пространение данного подхода в повседневной практике метрологиче¬
ского контроля. Подобные же проблемы возникают при использова¬
нии методов предварительной фильтрации данных, оценке соответствия
распределения вероятности нормальному.
Здесь необходимо сделать следующее замечание. Несмотря на то
что развитие методов математической статистики и средств вычисли¬
тельной техники создает условия для применения все более сложных и
комплексных методов статистического анализа, в измерительной прак¬
тике часто складывается ситуация, когда требуется метод с максималь¬
ной предсказуемостью результатов и не требующий длительного време¬
ни для освоения. В частности, в практике метрологического контроля
обычно оказывается возможным несколько увеличить объем выборки,
провести дополнительную серию измерений, принять меры по ликвида¬
ции возмущающих воздействий. В этом случае такие особенности ме¬
тодов обработки, как нечувствительность к специфическим возмущаю¬
щим воздействиям, повышенная устойчивость к промахам и т.п., уже не
являются ключевыми, поскольку увеличивается актуальность простоты
освоения методики и возможности сделать конкретные выводы по ре¬
зультатам статистической обработки некоторой выборки.
Таким образом, при статистической обработке результатов измере¬
ний необходимо учитывать возможность появления промахов и откло¬
нений от предполагаемого закона распределения в анализируемой вы¬
борке. и вместе с тем метод обработки должен иметь под собой строгую
математическую основу, позволяющую в конечном итоге получать коли¬
чественные характеристики изучаемого объекта или процесса.
Процесс измерений можно представить структурной схемой, пока¬
занной на рис. 5.8 [23]. Рисунок иллюстрирует некоторые аспекты изме¬
рительного процесса. Действительно, в то время как целью измерений
является определение величины £ист, в процессе измерений регистриру¬
ется величина «гизм, являющаяся результатом взаимодействия измери¬
тельной системы, объекта измерений, системы регистрации и окружаю¬
щей среды (с учетом случайных факторов). Следовательно, в процессе
обработки измерительной информации необходимое возможно большей
точностью определить то значение .гист, которое при взаимодействии с
измерительной системой вызвало регистрацию выходных сигналов из¬
мерительной системы «ГНзм1. ^изм2 *изшУ-
126
Глава 5
Примеры цифровой обработки сигналов
127
Окружающая среда
к
Возмущающее ; '»
воздействие ;
Согласование Согласование
Рис. 5.8. Структурная схема взаимодействия измерительной системы с иссле¬
дуемым объектом, окружающей средой и наблюдателем (системой регистрации)
С учетом вышеизложенного задача статистической обработки ре¬
зультатов измерений может быть сформулирована следующим образом.
Пусть события АД. АД,..., A v соответствуют состояниям жист = Xi,
Лст = ,г2 и т.д. Пусть также в результате измерений были получены со¬
бытия Ai, Ад, • • -Ат, соответствующие состояниям ;гизм = «], жизм — а?
и т.д. На основании этих данных требуется оценить вероятности собы¬
тий АД, Ха АДу, определить наиболее вероятное значение измеря¬
емой величины и оценить погрешность измерений. При этих условиях
апостериорная (послеопытная) вероятность событий Х^АД, • • • , Ауу мо¬
жет быть использована для оценки истинного значения хист измеряемой
величины. Определение апостериорной вероятности осуществляется в
соответствии с теоремой Бейеса:
Р(Л7 | -4) =
Р(.4 | .Vt)P(.Yfr)
Е р(а I Л;)Р(Л-,)
(5.4)
где Р(АД | А) — апостериорная (послеопытная) вероятность гипотезы
АД при условии, что произошло событие А; Р(А Ад) — условная
вероятность появления события А при наличии гипотезы Ад; Р(АД) —
априорная вероятность гипотезы Ад.
То же для непрерывных случайных величин:
/(z)P(.4 | .г)
Р(А <t')/(x*)
(5-5)
где /а(^) — плотность распределения вероятности х по А.
Поскольку в теореме Бейеса не вводятся ограничения на количество
произведенных измерений т, можно ожидать, что и при малых 77? бу¬
дет получена адекватная оценка вероятности гипотез. Однако основным
препятствием к использованию теоремы Бейеса является недостаточно
обоснованная оценка априорной вероятности гипотез А, при проведении
конкретных измерений. Действительно, в выражениях (5.4), (5.5) ока¬
зываются неизвестными как априорные вероятности появления того или
иного истинного значения измеряемой величины, так и условная вероят¬
ность появления соответствующих показаний прибора. И если априор¬
ные вероятности появления гипотез относятся к анализируемым объек¬
там, то вероятность появления тех или иных показаний измерительного
прибора является характеристикой измерительной системы. На прак¬
тике можно определить функцию распределения вероятности погреш¬
ности, вносимой измерительной системой, однако использование такой
функции имеет смысл лишь при достаточно большом объеме выборки,
когда вероятностные характеристики результатов измерений будут при¬
ближаться к истинным. Кроме того, наличие промахов в выборке огра¬
ниченного объема приводит к существенному отклонению параметров
полученного распределения от истинного значения измеряемой величи¬
ны. Таким образом, функция распределения вероятности, получаемая
на основе ограниченной выборки, не всегда адекватно отражает реаль¬
ные характеристики процесса измерений.
Рассмотрим процесс определения функции распределения вероят¬
ности более подробно. Часто вид этой функции может быть качествен¬
но определен исходя из структуры и особенностей конструкции измери¬
тельной системы. Однако конкретные числовые характеристики могут
существенно варьироваться от одной серии измерений к другой. Для
их точного определения требуется достаточно большой объем выбор¬
ки, получение которого связано с длительным временем на проведение
многократных измерений. Кроме того, при таком подходе требуется от¬
дельная фильтрация промахов.
В данной работе рассматривается подход, использующий оценку
апостериорной вероятности гипотез путем анализа функции Р(А | АД) в
некотором диапазоне значений ее дисперсии (масштаба) [4]. Построение
для каждого из выбранных значений масштаба функции распределения
вероятности позволит получить апостериорную вероятность гипотез как
функцию двух величин — АД и масштаба <т:
P(Xk) = fP(Xk.a). (5.6)
где fp(Xk)(A) — некоторая функция двух переменных, имеющая смысл
вероятности.
Рассмотрим особенности данного подхода на примере нормального
распределения. Предполагается, что истинные значения контролируе¬
мого параметра объектов исследования равномерно распределены в ра¬
бочем диапазоне измерительной системы, т.е. появление объекта с теми
или иными свойствами равновероятно.
Априорная вероятность появления показаний прибора х^ при усло¬
вии, что истинное значение измеряемой величины равно л?ист. описыва¬
ется некоторой функцией распределения вероятности. Вид этой функ¬
ции зависит от методики проведения измерений и конструкции прибора и
может быть качественно оценен на этапе разработки и испытаний изме¬
рительного прибора. Например, при нормальном (гауссовском) законе
128
Глава 5
Примеры цифровой обработки сигналов
129
распределения условная вероятность появления тех или иных показа¬
ний прибора определяется как
(5-7)
В формуле (5.7) присутствует параметр а, представляющий собой
квадратный корень из дисперсии. Этот параметр является уникальной
числовой характеристикой каждой конкретной выборки и зависит пре¬
жде всего от условий проведения измерений, варьирующихся от одной
серии измерений к другой. Таким образом, в (5.7) оказывается неиз¬
вестным параметр, характеризующий разброс результатов измерений.
Анализ вероятности гипотез предлагается проводить при различ¬
ных значениях дисперсии (или иного параметра, характеризующего раз¬
брос результатов). Выбирая значения дисперсии в некотором интервале,
можно получить вероятности гипотез А\, X?, . . Хп как функцию двух
переменных: значения Хк и масштаба а
Тогда в соответствии с теоремой Бейеса оказывается возможным
определение апостериорной вероятности гипотезы х*ист = Хк в со¬
ответствии с (5.4) или (5.5). При условии, что априорные вероятности
событий являются функциями дисперсии, получаем
Рис. 5.9. График функции для выборки
^ИСТ) ^)
(5.10)
/(ж)Р(П' I *^ИСТ ) &)
ЁЁ I жист,Сг)/(л’)^
(5-8)
Поскольку было сделано предположение, что появление объектов
с теми или иными свойствами равновероятно, можно считать /(.г) =
= const, и (5.8) принимает вид
выражение (5.8) может быть записано в виде
к = 1_____
Р(хк | X„CT,(r)f(x)dx
В качестве примера рассмотрим выборку из трех результатов из¬
мерений некоторой величины:
Номер измерения 1 2 3
Значение случайно распределенной величины .... 40 50 60
Приведенная выборка обладает следующими характеристиками:
• математическое ожидание х*ср
50;
/4(.Г.Сг) =
/(д-)Р(а^- | жист, <т)
f(x)7Х XX I тттут
• средний квадрат отклонения S =
1
N
P(xk I .Еист)^)
JX P(xk I xMCT,v)dx
AlCT )
(59)
ЕД.Г? — 5 77
этой выборки график функции
(последнее преобразование было сделано с учетом того, что Pfak |
жИСт,^)^ — 1)-
Наконец, для серии измерений Л}, Ао, ..., Ат, воспользовавшись
формулой сложения вероятностей, получаем
•^ист^) быстро убывает,
1 ;
/л(^сг)=— Р(.Гг-
г = 1
^ИСТ) ^)-
(5 9)
Аналогично для серии измерений при условии, что /(.г) 7^ const,
Для иллюстрации построим для
/^(х^сг) согласно (5.10) (рис. 5.9).
На рис. 5.9 видно поведение функции /д при возрастании величи¬
ны а. При ее малых значениях функция P(xi
и каждому отсчету выборки соответствует узкий пик, на который прак¬
тически не оказывают влияния соседние центры распределений. С ро¬
стом а наблюдается перекрытие функций распределения, и при сг —* оо
/а(3^ сг) — 0 на всем интервале х. Нетрудно заметить, что при нара¬
стании а происходит также изменение количества локальных экстрему¬
мов функции />i(^)k=constI которое равно числу точек в выборке для
а —- 0 и единице для а — оо. Для рассмотрения поведения локаль¬
ных экстремумов функции /A(^)|a=cfnst построим «скелет» максимумов
/д(^,сг) для приведенного примера.
130
Глава 5
Примеры цифровой обработки сигналов
131
с
Рис. 5.10. Скелет максимумов функции
быстрее, чем возрастает любая степень х, (5.12) можно привести к виду
дх
(5.13)
Для определения положения экстремума приравняем (5.13) к нулю:
N
— х) — 0 => ^е(’Е — z) = 0.
2=1
(5-14)
Откуда получаем
На рис. 5.10 видно, что при некотором значении а наблюдается сли¬
яние линий, образованных локальными экстремумами функции /д(х, ст).
Точка слияния экстремумов имеет координату х = 50. Предельное зна¬
чение сг, при котором функция /а(^)|<7=соп81 имеет только один экс¬
тремум, для приведенной выборки равный 4.850. В сравнении с этим
N
^ЕМ = 4,П4.
содержащая в знаменателе N2 вместо N(N — 1).
Поскольку под знаком суммы в (5.10) находятся плотности вероят¬
ности, функция /д(ж,сг) также имеет физический смысл плотности ве¬
роятности. В этом случае координаты х локальных экстремумов можно
рассматривать как моды анализируемой выборки при переменном зна¬
чении дисперсии (или, в более общем рассмотрении, масштаба вероят¬
ностного распределения). При подобном подходе наличие нескольких
значением интерес представляет величина S —
г о
I
2 = 1
мод при унимодальном распределении свидетельствует о необходимо¬
сти увеличения дисперсии.
Таким образом, результаты анализа функции /^(х^сд) могут быть
сопоставлены с результатами статистической обработки результатов из¬
мерений. Можно показать, что положение экстремума /д(Х'<т) при ис¬
пользовании нормального распределения стремится к математическому
ожиданию выборки при а —г ос:
/д(лг,а) =
<9/л(^, ^)
дх
1
Е
2 = 1
1
Л сгл/Ётг . .
2=1
N
/V
^ист.сг) = ". 1 Ve-(*~g')2/(2<E(5.11)
2 = 1
N
Е
+ ‘2xi) _
2Х
(5 12)
V 2 = 1
При а ос, - 1, и с учетом того, что е~'г~ убывает
или
N
Е Xi =
2 = 1
(5.15)
Выражение (5.15) представляет собой формулу для определения
среднего арифметического выборки х. Таким образом, максимум функ¬
ции f д[х, ст) при с —> оо действительно достигается для х — £'ср-
Для определения значения <т, при котором наблюдается только
один максимум функции /д(ж,а), необходимо исследовать зависимость
числа корней уравнения (5.13) от величины <т. Так как для нормального
распределения (5.13) является нелинейным уравнением, получение точ¬
ной аналитической зависимости представляется затруднительным. Для
практических целей удобно использовать параллельный расчет по (5.9)
для нескольких значений <т, для чего удобно использовать параллель¬
ные вычислительные системы на базе ПЛИС.
В рассмотренном выше примере была показана возможность соот¬
несения результатов предлагаемого метода анализа с результатами ис¬
следований известными в статистике методами. Однако существующие
методы, основанные на определении математического ожидания в ка¬
честве наиболее вероятной величины и среднего квадрата отклонений
(или центрального момента) для оценки степени рассеивания результа¬
тов, обладают низкой помехоустойчивостью. Действительно, при вы¬
борках небольшого объема возможно появление данных, не укладыва¬
ющихся в предполагаемый закон распределения. Данная проблема ил-
люстрируется следующим примером:
Номер измерения 1 2 3 4 5
Значение случайно распределенной величины . . 10 10 10 10 90
Пример иллюстрирует результаты измерений некоторой физической
величины с истинным значением 10 Значение этой величины было
измерено 5 раз. Измерение под номером 5 представляет собой промах.
132
Глава 5
Примеры цифровой обработки сигналов
133
Рис. 5.11. Скелет максимумов функции /4(2:,<т) для выборки
Рис. 5.12. Зависимость отклонения мо¬
ды го от амплитуды промаха для раз¬
личных объемов анализируемой выборки
Рис. 5.13. Зависимость коэффициен¬
та наклона к от объема выборки N при
наличии в ней одного промаха
Рассмотрим влияние такого промаха на результаты статистической
обработки. Математическое ожидание приведенной выборки равно 26,
средний квадрат отклонения S — 16 Очевидно, что оценка результатов
измерения на основе математического ожидания дает неверные резуль¬
таты. Для сравнения построим скелет максимумов функции /4 (.г, (Р).
Анализ рис. 5.11 дает следующие характеристики выборки: коор¬
дината х, при которой наблюдается единственный максимум функции
/.4(^5^). составляет 10,323; предельное (наименьшее) значение (т, при
котором наблюдается единственный максимум, равно 27,235. Использо¬
вание математического ожидания для оценки наиболее вероятного зна¬
чения измеряемой величины привело к появлению абсолютной ошибки
в 160 %, тогда как предлагаемый метод анализа в этой ситуации дал
ошибку всего в 3,23 %. На рис. 5.11 также можно видеть, что макси¬
мум /д(«т,сг) асимптотически стремится к среднему арифметическому
выборки при увеличении а. Таким образом, предлагаемый метод ана¬
лиза дает возможность получить оценку по среднему арифметическому,
но вместе с тем имеется возможность получения альтернативных резуль¬
татов, которые в некоторых случаях дают более точное представление
об измеряемой величине. Необходимо отметить, что методика полу¬
чения величины математического ожидания является частным случаем
рассматриваемого подхода (для а ос).
Приведенный пример иллюстрирует важнейшее свойство предлага¬
емого метода анализа — малые отклонения результирующей моды при
существенных выбросах в исходной выборке. Вместе с тем при анализе
не используются явные методы фильтрации или отбрасывания данных,
по каким-либо параметрам кажущихся недостоверными. 1/1 при этом
имеется принципиальное отличие от метода оценки по моде распределе¬
ния, поскольку для определения моды требуется предварительно полу¬
чить закон распределения конкретной выборки, тогда как в формулиров¬
ке поставленной задачи предполагается, что апостериорные вероятности
тех или иных событий неизвестны. В рассматриваемой же методике для
проведения анализа оказывается достаточным наличие априорной ин¬
формации о предполагаемом законе распределения
Влияние амплитуды промаха на степень отклонения моды иллю¬
стрируется рис. 5.12. Здесь представлены результаты анализа выборки
из А’ значений, одно из которых отличается от остальных на величину
Д.г. В процессе анализа определяется мода xq.
Из рис. 5.12 видно, что зависимость «го(Д-7') достаточно хорошо ап¬
проксимируется линейной функцией. Коэффициент наклона этой функ¬
ции резко уменьшается при увеличении объема выборки.
Зависимость коэффициента наклона к от объема выборки N при
наличии в ней одного промаха приведена на рис. 5.13. Из рисунка вид¬
но. что влияние амплитуды промаха на отклонение моды резко пада¬
ет уже при объеме выборки 4—5. Такое количество измерений можно
обеспечить в большинстве измерительных приборов. Можно заметить,
что наличие одного промаха на 4—5 измерений соответствует измери¬
тельному средству, дающему достоверные результаты в 75—80 % слу¬
чаев, что, вообще говоря, является низким показателем. Таким обра¬
зом, обработка результатов измерений по предлагаемой методике мо¬
жет использоваться в том числе и в измерительных приборах, подвер¬
женных частым возмущающим воздействиям, приводящим к появлению
промахов. Это свойство, наряду с небольшим объемом выборки, не¬
обходимым для оценки измеряемой величины, позволяет существенно
улучшить эксплуатационные характеристики измерительных приборов,
использующих данную методику оценки.
Вид формулы (5.10) и рассмотрение масштаба функции плотно¬
сти распределения вероятности позволяет провести аналогию с методом
максимального правдоподобия (ММП), который также основан на ис¬
пользовании некоторой независимой переменной в качестве аргумента
функции правдоподобия, определяемой выражением
N
L(x, <т) — Р(х — ий, ст).
ztJl
(5.16)
Однако можно указать на существенные различия между методом
максимального правдоподобия и рассматриваемым методом вероятност¬
134
Глава 5
Примеры цифровой обработки сигналов
135
ного анализа. Очевидна разница в математической формулировке, кото¬
рая заключается в суммировании вероятностей в рассматриваемом ме¬
тоде в отличие от их перемножения в методе максимального правдо¬
подобия. С точки зрения теории вероятности, перемножение вероятно¬
стей событий соответствует вероятности их одновременного появления.
Применительно к измерительному процессу это означает, что все изме¬
ренные значения объективно отражают состояние объекта измерений.
Наличие возмущений, частичной несогласованности объекта и измери¬
тельной системы, помех в измерительном канале и т.п. ставит под во¬
прос корректность такого предположения.
В то же время сложение вероятностей соответствует ситуации, ко¬
гда некоторые измеренные значения могут быть использованы для оцен¬
ки состояния объекта. В этом случае происходит неявная фильтрация
промахов (хотя в действительности все они участвуют в подсчете ве¬
роятности), поскольку методика анализа предусматривает определение
такого значения измеряемой величины .г, при котором все величины
в анализируемой выборке могут быть объяснены с учетом возможных
помех в измерительной системе
Наиболее распространенным методом регрессионного анализа явля¬
ется использование метода наименьших квадратов (МНК), предусматри¬
вающего минимизацию суммы квадратов отклонений эксперименталь¬
ных точек от соответствующих значений, полученных из построенной
регрессионной зависимости
N
■W) = ^Q/GW) - У,)\ (5.17)
г = 1
где /? — вектор параметров регрессионной зависимости.
Однако весьма часто упоминается и неробастность МНК, т.е. низкая
устойчивость к наличию промахов в исходной выборке. Для рассматри¬
ваемого случая данное свойство является довольно актуальным, если
учесть, что появление асимметричных выбросов в АЦП будет приводить
к появлению неадекватных реакций корректирующих звеньев. Кроме то¬
го, применение разнообразных критериев проверки применимости МНК
в автоматизированной системе управления вызывает множество вопро¬
сов, в первую очередь, неясно, какой именно должна быть реакция си¬
стемы, если будет выяснено, что для данного конкретного участка сиг¬
нала ОС регрессионная модель на основе МНК неадекватна. Необходи¬
мость сохранения непрерывного режима управления не позволяет просто
отвергнуть данную последовательность и провести измерения повторно
(что является обычной практикой в лабораторных измерениях с исполь¬
зованием МНК и других статистических методов обработки данных).
Для регрессионного анализа, который может быть использован в
информационно-измерительных системах, работающих в автоматиче¬
ском режиме, наиболее предпочтительными являются методы обработ¬
ки, минимизирующие количество дополнительных операций над исход¬
ной выборкой, которые используют некоторые эмпирически выбирае¬
мые зависимости или коэффициенты. С учетом того, что в сложных
измерительных системах обычно не удается полностью исключить про¬
махи, весьма привлекательным является использование вероятностных
подходов, основанных на максимизации вероятности наличия некото¬
рых параметров исследуемого объекта или процесса, действие которых
привело к появлению исходной выборки.
Введем для метода наименьших квадратов функцию p(j'i,^?) =
— (ж-i — .Гз)2- В этом случае (5.17) можно представить в виде
лг
i=l
(5.18)
Функцию можно рассматривать в качестве функции рас¬
стояния между точками в некотором пространстве R^x^p^. Таким
образом, метод наименьших квадратов можно рассматривать как метод,
заключающийся в минимизации суммы расстояний в пространстве R от
регрессионной зависимости до экспериментальных точек.
Использование функции расстояния в практических измерениях не¬
сколько затруднено тем, что конкретные характеристики закона распре¬
деления исследуемой величины в точности не известны (хотя диапазон
их изменения и может предполагаться). Выше был предложен метод
статистического анализа, основанный на введении независимого пара¬
метра а. характеризующего масштаб распределения ошибки. Тогда с
точки зрения вероятностной оценки (5.17) можно записать в виде
N
Р($ = ^р(Яъ,У)-у^')- (5-19)
1 = 1
При использовании данного критерия необходимо определить на¬
бор параметров di, при подстановке которого в (5.19) функция Р(/3)
достигает наибольшего значения.
Поскольку функционал качества приближения может быть получен
и на основе МНК, и на основе вероятностных методов, между функци¬
ей расстояния и функцией вероятности существует однозначная взаи¬
мосвязь. Можно ввести оператор д: L(x) — отображающий ве¬
роятность наличия регрессионной зависимости с данными параметрами
в суммарное расстояние от регрессионной зависимости до эксперимен¬
тальных точек в пространстве R.
Если функция расстояния p(Ai’) G [0; co), а функция плотности
вероятности Р(Дх) G [0; Ртах], и нулевое расстояние в пространстве R
соответствует максимальной вероятности, то </(ж) можно принять в виде
(5.20)
137
136
Глава 5
Примеры цифровой обработки сигналов
Нетрудно убедиться, что при использовании такого отображения
минимальному (нулевому) расстоянию соответствует максимальная плот¬
ность вероятности. Следовательно, условие максимума функции веро¬
ятности, определяемое (5.19), можно также записать в виде адекватно¬
го условия минимизации суммарного расстояния в некотором простран¬
стве R между предполагаемой регрессионной зависимостью и точками
исходной выборки. Очевидно, что выражение (5.20) не единственное
в своем классе.
Из приведенного выше следует, что для набора экспериментальных
отсчетов строится пространство с функцией расстояния между точка¬
ми, определяемой характеристиками измерительного канала (включая
и цифровую часть). Для данного пространства неочевидно выполнение
аксиомы треугольника (более того, легко можно показать, что данная
аксиома не выполняется в случае гауссовского распределения ошибки),
таким образом, в общем случае нельзя говорить о его метрике. Для
подобных пространств, где не выполняется аксиома треугольника (од¬
нако выполняются остальные аксиомы, характерные для метрических
пространств), применяется термин «симметрика».
В качестве примера рассмотрим анализ выборки, представляющей
собой линейную зависимость вида у — kx И- Ь, (&=!, 6=0) в которой
присутствует
х 1
один
2
промах:
3 4
5
6
У 1
2
3 3,5
5
6
Оценка параметров регрессионной зависимости, выполненная с ис¬
пользованием МНК, дает следующий результат: у — 0,9857^ — 0.0333
при коэффициенте корреляции 0,988. Результаты оценки, выполнен¬
ной с использованием критерия (5.19), представлены ниже. В качестве
функции плотности распределения вероятности выбрана функция Гаус¬
са. В табл. 5.1 приведены полученные параметры регрессионной зависи¬
мости, минимизирующие сумму расстояний в пространстве с симметри¬
ей, построенной в соответствии с (5.20) на основе гауссовского закона
распределения. Полученные параметры приведены в зависимости от ми¬
нимального значения масштаба функции распределения вероятности.
Таблица 5.1
^min
0,1
0,5
1
5
10
50
к
1
0,989
0,9864
0,9856
0,9856
0,9856
ь
0
-0,0234
-0,0302
-0,033
-0.033
-0,033
Анализируя результаты, представленные в табл. 5.1, необходимо
обратить внимание на значения параметров регрессионной зависимости,
полученные для малых значений crmin. Примечательно, что определен¬
ные в соответствии с (5.10) параметры идентичны предполагаемым дей¬
ствительным параметрам выборки. При увеличении минимального зна¬
чения масштаба параметры регрессионной зависимости асимптотически
стремятся к значениям, полученным с помощью МНК. Различие в по
лучаемых результатах может быть объяснено исходя из свойств мето¬
да наименьших квадратов и функции расстояния, получаемой в резуль¬
тате преобразования (5.20). Действительно, для (5.20) можно наити
обратное преобразование
р(х) + Ртах
(5-21)
Таким образом, зная функцию расстояния в выбранном простран¬
стве. можно найти функцию плотности распределения вероятности дей¬
ствующую при получении экспериментальных данных. Применяя (ф. )
к функции расстояния, используемой в МНК, получаем
р ( х 1 = 1 . (5.22)
М^'С р(х) + Ртах х~ + ^тах
Следовательно, для применения МНК в регрессионном анализе не¬
обходимо наличие закона распределения вероятности, представленного
(5 22) Однако в настоящее время в этом качестве обычно выступает
гауссовский закон, который, очевидно, отличен от неявно используе¬
мого в МНК. Для его использования необходимо уточнить константу
Ртах в выражении (5.22). Поскольку вероятность полной группы со-
бытий равна 1:
Таким образом, (5.22) можно пере¬
Откуда следует k/у/Ртж — 1/7Г-
писать в виде
1
7Г(.Г2 + 1)
(5.24)
На рис. 5.14 приведены функции расстояния, построенные для гаус
совского и квадратичного законов распределения в соответствии с ото
бражением (5.20).
Рис. 5.14. Функции расстояния в простран¬
ствах с симметрикой, определяемой гауссов¬
ским (сплошная линия) и квадратичным
(штриховая линия) законами плотности рас¬
пределения вероятности
138
Глава 5
Примеры цифровой обработки сигналов
139
Анализ рис. 5.14 дает более полное представление о механизме
оценивания параметров регрессионной зависимости при использовании
функции Гаусса в качестве базы для построения функции расстояния.
При достаточно малых отклонениях регрессионной зависимости от экс¬
периментальных точек расстояние, определяемое на основе гауссовско¬
го распределения, оказывается меньше, чем квадрат отклонения (левая
часть графиков на рис. 5.14). Следовательно, при отклонении экспери¬
ментальных точек от предполагаемой регрессионной функции менее чем
на 1,6 суммарное расстояние, определенное по гауссовской функции
плотности распределения, внесет меньшую суммарную ошибку. В то же
время при возрастании отклонения функция расстояния на основе гаус¬
совского распределения возрастает по экспоненциальному закону, обес¬
печивая резкое увеличение суммарного расстояния в пространстве 7? и
снижая функционал качества приближения регрессионной зависимости.
Здесь следует иметь в виду, что аргументом графика является относи¬
тельное отклонение, определяемое с учетом масштаба функции распре¬
деления вероятности, т.е. /Лт. Как видно из анализа табл. 5.1, при
малых значениях масштаба наилучшее качество приближения достига¬
ется при проведении регрессионной функции через максимально воз¬
можное количество точек (поскольку ввиду малости а даже при малом
абсолютном отклонении функция расстояния имеет большие значения)
При увеличении масштаба относительное отклонение (аргумент графи¬
ков рис. 5.14) уменьшается, и параметры регрессионной зависимости со¬
ответствуют результатам обработки по методу наименьших квадратов.
Свойство резко увеличивать «штраф» при появлении асимметрич¬
ных пиков полезно при использовании АЦП в качестве источника об¬
рабатываемых данных, где подобные пики довольно часты. Практи¬
ка показывает, что обработка последовательностей размером порядка
10-30 отсчетов с помощью рассматриваемой методики в подавляющем
большинстве случаев дает более стабильные и адекватные результаты,
чем использование МНК.
Можно обратить внимание на то, что представляемый метод регрес¬
сионного анализа обладает по крайней мере двумя механизмами влия¬
ния на алгоритм обработки: путем выбора функции плотности распре¬
деления вероятности отклонения экспериментальных данных и путем
выбора области определения масштаба. Это открывает широкие воз¬
можности для коррекции алгоритмов анализа в соответствии с особен¬
ностями измерительной системы и условиями получения эксперимен¬
тальных данных.
В табл. 5.1 видно, что выбор минимальной величины масштаба ока¬
зывает существенное влияние на результаты анализа. Как уже отмеча¬
лось, при бесконечном увеличении масштаба параметры регрессионной
зависимости стремятся к параметрам, получаемым с помощью МНК, а
уменьшение масштаба приводит к получению результатов, ожидаемых в
случае предварительной фильтрации промахов. Функция плотности ве¬
роятности показаний прибора может быть определена в общем виде, и,
что важно в контексте разбираемой проблемы, обычно можно указать
величину приборной ошибки, с которой можно связать минимальное
значение масштаба. Подробное изучение способов перехода от величи¬
ны приборной ошибки к минимальному значению масштаба является
предметом отдельного исследования, однако, исходя из общих сообра¬
жений, можно предложить следующее.
1. Использование «правила трех сигма».
2. Трактовка приборной ошибки как «разрешающей способности»
функции плотности вероятности, т.е. наличие при crmin раздельных экс¬
тремумов для значений, отстоящих друг от друга на величину, боль¬
шую приборной ошибки.
3. Использование дискретной функции плотности распределения в
сочетании с величиной масштаба, равной величине дискретизации АЦП
по входному напряжению.
Рассмотренная методика не налагает существенных ограничений на
вид регрессионной зависимости, используемой на практике. Предста¬
вляют интерес следующие виды регрессионных выражений.
1. Параболическая зависимость г/(л’) = + Ьх + с
Выражение данного вида может успешно использоваться для ап¬
проксимации коротких участков сигнала, когда требуется определение
первой и второй производной для формирования соответствующих сиг¬
налов ОС. В данном случае производные могут быть аналитически
определены как:
= 2«г + Ъ
di
(5.25)
Данный метод был успешно применен для уменьшения влияния шу¬
мов АЦП при построении подсистемы стабилизации температуры иссле¬
дуемого образца жидкости в ряде измерительных систем. Практика по¬
казала возможность введения достаточно глубоких ОС по первой и вто¬
рой производным без возникновения существенных эффектов, связан¬
ных с дискретизацией. В то же время дальнейшее повышение порядка
регрессионного полинома приводит к появлению не вполне адекватных
процессу коэффициентов регрессии.
2. Экспоненциальная зависимость у(х) = А[(1 — ехр(—^/г)] + С.
Зависимость данного вида закрывает собой достаточно большой
класс переходных процессов в системах, передаточные функции которых
могут быть приближенно представлены как функции первого порядка.
Пример графика переходного процесса представлен на рис. 5.15.
График построен для переходного процесса в тестовой RC-цепочке, опи¬
сываемой передаточной функцией первого порядка. На рис. 5.15 хорошо
видны артефакты, связанные с комплексным воздействием возмущаю¬
щих факторов на измерительные цепи и АЦП.
Тем не менее построение регрессионной модели дает достаточно
устойчивые параметры: амплитуда А составляет 470, тогда как посто-
140
Глава 5
Примеры цифровой обработки сигналов
141
Рис. 5.15. График переходного про¬
цесса в цифровой системе управления
янная времени г равна 38. Данные значения с небольшой вариабельно¬
стью повторяются при изменении диапазона точек, используемых для
анализа. Особенно интересно, что те же данные получаются в том числе
и при использовании начального участка переходного процесса (50-100
точек). Это позволяет говорить о возможности динамической иденти¬
фикации параметров регулируемого объекта непосредственно в процес¬
се регулирования. В частности, динамическое определение параметра
А позволяет прогнозировать значение регулируемого параметра, кото¬
рого достигнет система. Для объектов с большой постоянной времени
это позволяет существенно сократить время переходного процесса путем
своевременной коррекции параметров регулирующих звеньев.
График функции вероятности, построенной в соответствии с (5.19)
в координатах ОАт, показан на рис. 5.16. Положение глобального мак¬
симума позволяет определить наиболее вероятные параметры переход¬
ного процесса.
3. Линейная зависимость ?/(х) = ах + Ь.
Зависимость представляет интерес при наличии интегрирующего
что приводит к небольшому линейному
Для определения параме-
звена в системе управления, •
дрейфу значения регулируемой величины,
тров этого дрейфа и коррекции коэффициента усиления интегрирующе-
Рис. 5.16. Функция вероятно¬
сти, построенная для экспонен¬
циального переходного процесса
в координатах 0.4 г
го звена можно использовать регрессионный анализ в установившемся
режиме, когда эффект линейного дрейфа проявляется наиболее явно.
Построение регрессионной модели также позволяет прогнозировать вы¬
ход регулируемой величины за допустимый коридор ошибки. Кроме
того, малые значения линейного коэффициента а могут служить инди¬
катором достижения установившегося режима.
В целом представленный метод характеризуется достаточно высо¬
кими требованиями к производительности вычислительного устройства,
выполняющего поиск коэффициентов регрессионной зависимости. С
другой стороны, вычисление вероятностей отдельных гипотез вполне
может быть организовано параллельно. Поэтому высокопроизводитель¬
ные ПЛИС с архитектурой FPGA представляют собой хорошую основу
для реализации подобных алгоритмов.
5-7. Краткие сведения о нейронных сетях
Нейронные сети, или нейросети, можно рассматривать как систе¬
мы, преобразующие информацию по подобию процессов, происходящих
в человеческом мозге. Типовые применения нейросетей соответствуют
задачам распознавания, классификации, анализа и сжатия образов. На¬
правление нейросетей и нейроподобных алгоритмов получило мощный
импульс в конце XX века ввиду появления соответствующей аппаратной
базы для их реализации. Однако необходимо сразу подчеркнуть, что
эффективное применение нейросетей невозможно без фундаментальной
математической подготовки и тщательного анализа поставленной зада¬
чи. Не следует относиться к нейровычислениям (равно как и к другим
математическим методам) как к самодостаточному инструменту, кото¬
рый сам по себе гарантирует получение требуемого результата. Для
нейросетей существует дополнительный психологический эффект, за¬
ключающийся в попытке восприятия этого набора алгоритмов как не¬
коего «мыслящего» образования, которое способно найти решение про¬
сто ввиду самого факта подобия человеческому мозгу. Поэтому в про¬
цессе работы с нейросетями необходимо уделять достаточно внимания
анализу самого факта применимости подобных алгоритмов к исследуе¬
мой проблеме, адекватной постановке частных задач и интерпретации
получаемых результатов.
В биологическом нейроне выделяют тело (называемое сомой) и два
вида исходящих из него отростков — дендриты, по которым в нейрон
поступают сигналы, и аксон, передающий сигнал от нейрона. Каждый
нейрон имеет только один аксон. Одиночный нейрон может принимать
сигналы от множества других нейронов (до тысячи). В мозге человека
около 1011 нейронов, между которыми имеется порядка 10Lo соедине¬
ний. Каждый нейрон передает сигналы через нервные стыки, называ¬
емые синапсами, при этом процесс передачи имеет сложную электро¬
химическую природу. В результате прохождения через синапсы часть
Примеры цифровой обработки сигналов
143
сигналов усиливается, а часть ослабляется. В конечном итоге к ней¬
рону поступают как сигналы возбуждения, так и сигналы торможения.
Если их суммарное воздействие превышает некоторый порог, то сигнал
с выхода нейрона передается другим нейронам.
Следует заметить, что наличие химических процессов в синапсах
делает биологическую нейросеть существенно отличающейся от чисто
электрической. Поэтому даже 1011 нейронов, выполненных в полупро¬
водниковом кристалле, имея сопоставимую функциональную сложность,
будут кардинально отличаться от биологического мозга принципами ре-
ализации вычислительных процессов.
Обобщенная модель нейрона, предложенная в 1943 г. МакКаллохом
и Питтсом, имеет следующий вид:
(5.26)
где входные сигналы нейрона; k —
ветствующих входов; у — выходной сигнал
вая функция.
синаптические веса соот-
нейрона; /(.г) — порого-
В табл. 5.2 приведены некоторые виды пороговых функций.
Таблица 5.2
Наименование
Описание
Ступенчатая пороговая
У =
Линейная пороговая
У =
Сигмоидная
Линейная
Гауссовская
Искусственные нейросети различаются архитектурой, т.е. структу¬
рой связей между отдельными нейронами, числом слоев, функцией ак¬
тивации нейронов, алгоритмами изменения синаптических весов (весо¬
вых коэффициентов). Особенности вычислительных процессов обусло¬
влены в том числе и способом связи нейронов, поэтому выделяют еле-
дующие виды сетей:
1) сети прямого распространения сигнала (feedforward);
2) сети с обратными связями (feedforward/feedback):
3) сети с боковыми обратными связями (laterally connected);
4) гибридные сети.
В целом нейросети можно разбить на два больших класса: сети
прямого распространения (без обратных связей) и рекуррентные сети (с
обратными связями). Одним из примеров сети прямого распространения
является персептрон Ф. Розенблатта, исследованный им в конце 50-х —
начале 60-х годов XX века. Сети такого типа, состоящие из нескольких
слоев, называются также статическими, поскольку состояние нейронов
определяется только входными сигналами и не зависит от предыдущих
состояний сети. В противоположность этому, рекуррентные сети явля¬
ются динамическими, поскольку из-за наличия обратных связей на сеть
оказывает влияние предыстория смены состояний.
Число слоев нейросети может быть самым разным (от одного). Как
правило, выходы нейронов предыдущего слоя подключены ко всем ней¬
ронам последующего слоя. При латеральных (боковых) соединениях
входы нейронов получают сигналы и от нейронов своего слоя. Мно¬
гообразие видов связей нейросетей весьма велико.
Важным свойством нейросетей является возможность их обучения.
Под обучением понимается изменение весовых коэффициентов отдель¬
ных входов нейронов таким образом, чтобы нейросеть в целом давала
требуемые результаты при подаче на ее вход тестовых сигналов с за¬
ранее известным ответом. Достижение такого состояния, при котором
нейросеть дает правильные ответы на «эталонные» воздействия, позво¬
ляет сделать предположение, что и для других воздействий подобного
класса реакция сети также будет адекватной.
Принято различать три стратегии обучения нейросети: с учителем,
самообучение и смешанную. В первом случае на вход сети подаются
тестовые воздействия и коэффициенты нейронов модифицируются так,
чтобы реакция нейросети приблизилась к требуемой. В данной страте¬
гии существует множество алгоритмов изменения коэффициентов, ка¬
ждый из которых ориентирован на конкретную архитектуру сети и класс
решаемых ей задач. Общей характеристикой подобных алгоритмов явля¬
ется их рекуррентный характер.
Исторически первой концепцией самостоятельного обучения нейро¬
сети было правило Хебба. При этом весовой коэффициент какой-либо
связи увеличивается в том случае, если возбуждены оказались и источ¬
ник, и приемник сигнала, передаваемого по этому синапсу. Тем самым
регулярно используемые входы активизируются сильнее.
Часто используется алгоритм обратного распространения ошибки,
когда нейроны, дающие ответ ближе к эталонному, «поощряются» (их
синаптические веса увеличиваются). В свою очередь, на входы каждо¬
го из этих нейронов подавались сигналы с нейронов предыдущего слоя,
часть из которых также способствовала получению нужного результата,
а часть этому препятствовала. Поэтому после определения «поощряе¬
мого» нейрона в выходном слое можно распространить процесс моди¬
фикации синаптических весов на нейроны предыдущего слоя и т.д.
Вид формулы (5.26) однозначно относит операцию вычисления вы¬
ходного сигнала нейрона к операциям «умножение с накоплением». Для
получения аргумента активационной функции необходимо выполнить
целый ряд таких операций для каждого из входов нейрона. Само приме-
144
Глава 5
Примеры цифровой обработки сигналов
145
Рис. 5.17. Параллельное вычисление
выходного сигнала нейрона
Рис. 5.18. Последовательное вычисление
выходного сигнала нейрона
нение активационной функции к полученному результату менее трудоем¬
ко, поскольку содержит меньшее число операций, чем процесс вычисле¬
ния суммы произведений входов нейрона на соответствующие синапти¬
ческие веса. В конечном итоге для реализации искусственной нейросети
в цифровом виде может потребоваться огромное число умножителей
С учетом имеющихся аппаратных ресурсов ПЛИС (блоки умноже¬
ния с накоплением) можно рассмотреть два основных варианта расчета
выходного сигнала нейронов.
При наличии достаточного количества ресурсов и необходимости
минимизировать время одного шага расчета можно использовать разно¬
видности параллельной схемы (рис. 5.1Z). В такой схеме требуется А'
умножителей и А-входовый сумматор. В итоге объем ресурсов ПЛИС,
требуемый для реализации всей нейросети, может оказаться очень боль¬
шим ввиду того, что для М А^-входовых нейронов потребуется М х N
устройств умножения, а число прочих ресурсов окажется относительно
невелико. В итоге такой проект оказывается весьма ресурсоемким, хотя
и имеет минимальное время одного шага работы сети.
Вторая схема (рис. 5.18) использует один умножитель и один акку¬
мулятор на каждый нейрон, но для N входов требуется N тактов работы
для получения выходного сигнала. Каждому нейрону при этом соот¬
ветствует единственное устройство «умножение с накоплением», полно¬
стью аналогичное устройству, выполняющему цифровую фильтрацию,
т.е. именно тот тип выделенных ресурсов, которые имеются в доста¬
точном количестве в современных ПЛИС с архитектурой FPGA. Безот¬
носительно вопроса применимости нейросети для каких-либо конкрет¬
ных задач, следует констатировать, что именно нейросетевые алгоритмы
являются подходящими для реализации в ПЛИС большого объема, по¬
скольку позволяют в полной мере задействовать блоки «умножение с
накоплением» В режиме параллельной работы.
5-8- Краткие сведения о генетических
алгоритмах
Аналогично тому, как искусственные нейронные сети были созданы
в результате наблюдения за процессами, происходящими в нервной си¬
стеме живых существ, в процессе наблюдения за эволюцией организмов
возникли так называемые генетические алгоритмы. Соответственно, для
их описания были заимствованы многие термины из генетики.
Идея генетических вычислений была высказана в конце 60-х — на¬
чале 70-х годов XX века Холландом. Такой алгоритм представляет собой
метод, отражающий естественную эволюцию методов решения пробле¬
мы, в первую очередь задач оптимизации Они отличаются от класси¬
ческих методов оптимизации рядов свойств.
1. Генетические алгоритмы обрабатывают не параметры самой за¬
дачи, а их закодированную форму.
2. Осуществляют поиск решения не из единственной заданной точ¬
ки. а из некоторого набора (популяции) таких точек.
3. Используют только целевую функцию критерия оптимальности.
4. Применяют вероятностные, а не детерминированные, правила
выбора.
Для описания алгоритма используется понятие популяции — конеч¬
ное множество особей (вариантов решения задачи). Особи, входящие в
популяцию, представлены хромосомами, т.е. наборами параметров, ко¬
торые предлагаются в качестве оптимального решения. Важнейшим по¬
нятием, от которого зависит процесс решения, является функция приспо¬
собленности (fitness function), которая определяет степень соответствия
данной особи решаемой задаче. Функция приспособленности должна
иметь четко определенную форму.
Основной (классический) генетический алгоритм включает в себя
следующие шаги.
1. Выбор исходной популяции хромосом.
Этот этап заключается в инициализации (обычно случайным обра¬
зом) заданного количества хромосом, представляемых набором двоич¬
ных чисел фиксированной длины.
2. Оце нка приспособленности хромосом в популяции.
Данный этап состоит в расчете функции приспособленности для
каждой хромосомы текущей популяции. Чем больше значение функции
приспособленности, тем выше «качество» хромосомы (предполагается,
что требуется максимизировать эту функцию).
3. Проверка условия остановки алгоритма.
Алгоритм может быть остановлен при достижении различных усло¬
вий, зависящих от специфики решаемой задачи. Это может быть как
получение значения функции приспособленности, не меньшего некото¬
рого заранее установленного значения, так и отсутствие улучшений в
течение нескольких итераций, или просто выполнение некоторого ко¬
личества итераций алгоритма.
4. Селекция хромосом.
Данный этап заключается в выборе тех хромосом, которые будут
участвовать в формировании следующей популяции. Такой выбор про¬
изводится путем имитации принципа естественного отбора, характерного
10
146
Глава 5
Примеры цифровой обработки сигналов
147
для эволюции живых организмов. Чем выше функция приспособленно¬
сти данной хромосомы, тем больше шансов она имеет перейти в сле¬
дующее поколение или сформировать потомка. Наиболее популярным
является «метод рулетки», при котором каждой хромосоме ставится
в соответствии сектор рулетки, причем тем больший, чем больше ее
функция приспособленности. «Выпадение» чисел на рулетке однознач¬
но указывает на одну из хромосом. Следует отметить, что хромосомы
с малым значением функции приспособленности все же имеют шансы
сформировать потомство.
5. Применение генетических операторов.
Этот этап применяется к хромосомам, отобранным на этапе селек¬
ции и приводит к формированию потомков. Применяются два основных
генетических оператора: скрещивание (crossover) и мутация (mutation).
Обычно мутация играет второстепенную роль — ее вероятность устана¬
вливается обычно меньше 0,1, тогда как вероятность скрещивания —
в пределах 0.5...1 (т.е. очень часто). Скрещивание отражает тот факт,
что результат смешивания генов двух хромосом, которые по отдельно¬
сти хорошо приближали решение задачи, вероятнее всего также будет
хорошо приближать это решение.
Например, если выполняется максимизация функции двух перемен¬
ных, и каждая хромосома состоит из двух байт (по одному байту на пе¬
ременную), то результатом скрещивания может быть новая хромосома,
получающая по одному байту от каждой хромосомы-родителя (напри¬
мер, первый байт от первого родителя, а второй — от второго).
Мутация случайным образом инвертирует один из битов хромо¬
сомы.
6. Формирование новой популяции
Хромосомы, полученные в результате применения генетических опе¬
раторов, включаются в состав популяции. В классическом генетическом
алгоритме вся предыдущая популяция хромосом заменяется новой по¬
пуляцией потомков с той же численностью.
7. Выбор «наилучшей» хромосомы.
Если условие завершения алгоритма выполнено, результатом ре¬
шения будет хромосома с наибольшим значением функции приспосо¬
бленности.
Как можно видеть из описания алгоритма, он подразумевает вы¬
полнение достаточно большого числа в общем-то несложных вычисле¬
ний. Эти вычисления легко могут быть распараллелены и выполнять¬
ся простыми конечными автоматами на базе логических ячеек ПЛИС,
основная задача которых — обеспечить вычисление функций приспо¬
собленности. Отдельные хромосомы могут располагаться как в блоч¬
ной, так и в распределенной памяти ПЛИС, что обеспечивает простой
доступ к ним со стороны большого числа вычислительных устройств.
В конечном счете можно обеспечить выполнение вычислений одновре¬
менно над несколькими десятками хромосом (при достаточной емкости
~1ЛИС над несколькими сотнями, т.е. в пределе над всей популя¬
цией сразу). Отсутствие «узкого места» в виде одного потока вычи¬
слений, как это имеет место в однопроцессорных (одноядерных) вычи¬
слительных системах существенно повышает привлекательность ПЛИС
для решения подобных задач.
Так же, как и для нейросетевых алгоритмов, необходимо обращать
очень существенное внимание на вопросы надлежащего математического
сопровождения применяемых алгоритмов.
10*
Обзор ПЛИС фирмы Xilinx
149
Глава 6
Обзор микросхем
программируемой логики
фирмы Xilinx
6.1. Общие сведения о ПЛИС
Микросхемы программируемой логики, или программируемые ло¬
гические интегральные схемы (ПЛИС), — одно из наиболее динамич¬
но развивающихся направлений современной цифровой электроники.
Привлекательность данной технологии заключается в предоставляемой
конечному пользователю возможности быстрого создания цифровых
устройств с произвольной внутренней структурой. По сравнению со
специализированными цифровыми микросхемами (ASIC — Application
Specific Integral Circuit), цикл разработки устройств на ПЛИС занима¬
ет значительно меньшее время и неизмеримо дешевле (благодаря тому,
что изменение принципиальной электрической схемы выполняется пу¬
тем перепрограммирования одного и того же экземпляра микросхемы).
Простейшим видом программируемого логического устройства яв¬
ляется обычная микросхема ПЗУ. Действительно, обладая А адресны¬
ми линиями и М линиями данных, микросхема ПЗУ может реализовать
М jV-входовых логических функций. Содержимое ПЗУ может рассма¬
триваться как таблица истинности некоторой цифровой схемы, содержа¬
щей комбинаторную логику. Использование микросхем ПЗУ в качестве
логических генераторов долгое время являлось эффективным приемом,
позволявшим резко снизить число корпусов микросхем, выполнявших
элементарные логические операции. Программируемые устройства по¬
добного типа называются PAL — Programmable Array of Logic.
Недостатком PAL-устройств является отсутствие в их составе тригге¬
ров. Несмотря на то что, например, RS-триггер может быть реализован
с использованием базиса Пирса или Шеффера (т.е. с применением толь¬
ко комбинаторных логических устройств), очевидно, что такое исполь¬
зование ресурсов весьма непродуктивно, поскольку вместо jV-входовых
используются только 2-входовые логические элементы.
Очевидным шагом к более эффективному использованию логиче¬
ских ресурсов является введение в состав программируемой микросхе¬
мы триггеров. Однако в этом случае, кроме программирования таблиц
истинности логических элементов, необходимо реализовать также вну¬
тренние соединения между выходами логических элементов и входами
триггеров. Таким образом, вместо металлических соединений, реализу¬
емых в процессе производства ASIC, в ПЛИС используются соединения,
коммутируемые программируемыми ключами. Для нормального функ¬
ционирования этих соединений в ПЛИС существует теневая (конфигура¬
ционная) память, хранящая таблицу соединений.
В настоящее время наиболее распространенные серии ПЛИС име¬
ют следующую архитектуру:
• CPLD (Complex Programmable Logic Device), устройства, использую¬
щие для хранения конфигурации энергонезависимую память (Flash
или EEPROM);
• FPGA (Field Programmable Gate Array), устройства, использующие
для хранения конфигурации энергозависимую память, которая тре¬
бует инициализации после включения питания.
Первые устройства с архитектурой FPGA были представлены в
1985 г. американской фирмой Xilinx. В настоящее время эта фирма
является одним из ведущих мировых производителей ПЛИС и выпуска¬
ет несколько серий ПЛИС с различными архитектурами, а также специ¬
ализированные внешние ПЗУ для хранения конфигурационных после¬
довательностей микросхем FPGA. В настоящее время основными про¬
изводителями FPGA с «классической» архитектурой являются Xilinx
и Altera, которые в целом выпускают вполне паритетную продукцию.
Практика сравнительного анализа характеристик продукции этих фирм-
конкурентов показывает, что в общем случае бесспорного лидера по тех¬
ническим характеристикам не существует. В то же время чрезмерно
трудоемко своевременно отслеживать характеристики, нововведения и
оптимальные способы использования продукции сразу двух производи¬
телей. В данном издании примеры реализации алгоритмов цифровой
обработки сигналов ориентированы на FPGA Xilinx и как правило, с не¬
большими изменениями (или без них) пригодны для реализации в FPGA
других производителей. Тем не менее ознакомление с особенностями ар¬
хитектуры ПЛИС конкретных наименований способствует созданию бо¬
лее качественных проектов, учитывающих особенности элементной ба¬
зы. В данной главе приводятся технические сведения и аналитические
материалы по двум основным сериям FPGA Xilinx, а также ознакоми¬
тельные материалы об устройствах с архитектурой CPLD. Следует от¬
метить, что основной линейкой микросхем для применения в высоко¬
производительных системах цифровой обработки сигналов в настоящее
время являются устройства FPGA, обладающие существенно большей
логической емкостью и аппаратными ресурсами для выполнения основ¬
ных вычислительных операций.
6.2. Устройства с архитектурой CPLD
Пр имерами ПЛИС, выполненных по технологии CPLD, являются се¬
мейства ХС9500, XC9500XL, XC9500XV (использующие напряжение пи¬
тания 5, 3.3 и 2,5 В соответственно), а также перспективная серия Cool
150
Глава 6
Обзор ПЛИС фирмы Xilinx
151
Рис. 6.1. Структура макроячейки ПЛИС семейства XC9500XL
Runner, устройства которой обладают микроамперным потреблением в
статическом режиме.
Микросхемы CPLD состоят из матрицы однотипных логических яче¬
ек (макроячеек, macrocells), внутренняя структура которых представлена
на рис. 6.1. На рисунке можно видеть основные составляющие макро¬
ячейки. В ее состав входят триггер и распределитель термов (product
term allocator). В семействах XC9500XL и XC9500XV распределитель
термов способен синтезировать логическую функцию 54 переменных (36
в ХС9500). Выходом макроячейки может быть как выход триггера, так
и выход распределителя термов. Кроме того, управляющие сигналы
триггера также могут быть сформированы на базе логических функций
распределителя. Такая структура позволяет реализовать на базе ма¬
кроячейки разнообразные цифровые модули и схемные решения. Со¬
держимое конфигурационной памяти, необходимое для реализации той
или иной цифровой схемы, синтезируется с помощью соответствующего
САПР. Существующие в настоящее время программные средства освобо¬
ждают разработчика от необходимости прямого управления отдельными
программируемыми соединениями (хотя такая возможность и имеется).
На рис. 6.2 показана внутренняя структура ПЛИС семейства
XC9500XL. Отдельные макроячейки, входящие в состав ПЛИС, объеди¬
нены в функциональные блоки. Кроме того, электрический интерфейс
с внешними устройствами обеспечивается блоками ввода-вывода (ЮВ,
Input/Output Block), которые обеспечивают буферизацию выходных сиг¬
налов и согласование входных логических уровней. Эти блоки включают
в себя выходные буферы с тремя состояниями и могут программировать¬
ся на ввод или вывод индивидуально. Для оптимального размещения
логических устройств на кристалле ПЛИС имеют специальные трассиро¬
вочные ресурсы (Fast Connect Switch Matrix), облегчающие соединение
макроячеек и внешних выводов ПЛИС.
Кроме этого, некоторые блоки ввода-вывода могут выполнять спе¬
циальные функции. Например, блок, помеченный на схеме как GCK
(Global ClocK), содержит специальный буферный элемент с высокой
скоростью нарастания выходного сигнала. Выход этого блока может
быть соединен с макроячейками специальными трассировочными лини¬
ями, обеспечивающими минимальную задержку распространения сиг¬
нала. что позволяет добиваться наилучших скоростных характеристик.
Аналогично, блок GSR (Global Set/Reset) обеспечивает сброс или уста¬
новку всех триггеров макроячеек, а блок GTS (Global Tri-State) переводит
все выходные буферы ПЛИС в высокоимпедансное состояние.
Для программирования конфигурационной памяти используется ин¬
152
Глава 6
Обзор ПЛИС фирмы Xilinx
153
терфейс JTAG. Контроллер JTAG и контроллер программирования flash-
ПЗУ располагаются на кристалле и обеспечивают достаточно простую
технологию перепрограммирования ПЛИС CPLD. Все ПЛИС CPLD под¬
держивают «программирование в системе» (in-system programmable), т.е.
могут быть перепрограммированы без удаления с печатной платы (ин¬
терфейс JTAG использует выделенные линии, которые не могут исполь¬
зоваться в качестве пользовательских линий ввода-вывода). Порядок
инициализации ПЛИС после включения питания или перепрограммиро¬
вания исключает появление на выводах устройства неконтролируемых
переключений логического состояния, или «дребезга». Во время про¬
граммирования все выводы переводятся в высокоимпедансное состояние.
Технология изготовления и структура макроячеек ПЛИС CPLD в
значительной степени обусловливают преимущественные области их
применения. Прежде всего, необходимо отметить, что многовходовые
логические генераторы способны реализовать весьма сложные функции.
При необходимости несколько макроячеек могут быть объединены для
формирования более сложной логической функции, но с учетом доста¬
точно большого количества используемых входных термов такая воз¬
можность требуется далеко не всегда. Это делает ПЛИС CPLD весьма
привлекательными для реализации конечных автоматов с достаточно
сложными условиями перехода между состояниями. Кроме того, оче¬
видной сферой использования CPLD является замена комбинаторной
логики и устройств малой и средней степени интеграции в цифровых (в
том числе микропроцессорных) системах общего назначения.
Далее, простота структуры и наличие большого количества трасси¬
ровочных ресурсов дает большую свободу в размещении проекта на кри¬
сталле и позволяет в конечном итоге минимизировать задержки распро¬
странения сигналов по кристаллу. Устройства, выполненные на CPLD,
имеют хорошо предсказуемые временные характеристики, поскольку за¬
держка распространения сигнала обычно обусловлена только количе¬
ством последовательно соединенных макроячеек в наиболее длинной
логической цепи. При максимальной тактовой частоте отдельного триг¬
гера /с]к = 200 МГц (типичное значение) тактовая частота всей системы
может быть приближенно оценена как /С1к/^' • где N — число макро¬
ячеек в самой длинной логической цепи. Эта оценка не относится к
устройствам типа счетчиков, использующих выделенные ресурсы для
каскадного соединения отдельных макроячеек.
Необходимо отметить также, что CPLD часто способны обеспечить
100%-ное использование логических ресурсов благодаря разветвленной
схеме внутренних соединений и возможности комбинировать ресурсы
логических генераторов.
Однако та же структура макроячеек вносит и некоторые ограниче¬
ния. Прежде всего, наиболее дефицитным логическим ресурсом CPLD
является триггер. Поэтому CPLD мало пригодны для проектирования
устройств, насыщенных триггерами, а также регистрами и счетчиками,
использующими триггеры для своей реализации.
Таблица 61
Технические характеристики ПЛИС ХС9500
Устройство
Число
макроячеек
Задержка
«контакт-контакт», нс
Типичное потреб¬
ление энергии, мА*
ХС9536
36
5, 6, 7, 10, 15
50...83
ХС9572
72
7, 10, 15
125...160
ХС95108
108
7, 10, 15, 20
180...250
ХС95144
144
7, 10, 15
300...480
ХС95216
216
10, 15, 20
360...500
ХС95288
288
10, 15, 20
500...700
* Потребление приведено для
высокоскоростного режима в диапазоне частот
0...100 мГц; в режиме пониженного энергопотребления ток
составляет около 60 %
от приведенных значений
Серия ХС9500 содержит ПЛИС с числом макроячеек от 36 до 288.
Примерно тот же логический объем имеют аналогичные продукты фир¬
мы Altera и серия CoolRunner. В настоящее время ПЛИС CPLD относят¬
ся к устройствам начального уровня и предназначены для реализации
устройств небольшого логического объема. Несколько больший объ¬
ем (а также существенно расширенные функциональные возможности)
имеют устройства CoolRunner, которые рекомендуются к использова¬
нию в новых проектах.
Основной линией ПЛИС CPLD является серия ХС9500 и ее раз¬
новидности ХС9500 XC9500XL и XC9500XV с напряжением питания 5,
3,3 и 2,5 В соответственно.
Технические характеристики ПЛИС, входящих в состав семейства
ХС9500, приведены в табл 6.1. В таблице указаны только основные
технические характеристики, позволяющие сделать выбор необходимой
ПЛИС на стадии предварительного проектирования устройства.
Описание логической емкости микросхем ограничено количеством
макроячеек, хотя для ПЛИС существует целый ряд подобных параме¬
тров:
количество ячеек (макроячеек для CPLD, CLB/slice для FPGA);
количество триггеров;
• количество эквивалентных логических вентилей
Последний параметр активно используется для описания логиче¬
ской емкости микросхем FPGA, хотя в действительности корреляция
между числом вентилей и возможностями ПЛИС по реализации того
или иного проекта не вполне однозначна. Более подробно эта взаимо¬
связь будет рассмотрена при описании микросхем FPGA, а здесь можно
указать на то, что «узким местом» технологии CPLD обычно являются
доступные на кристалле триггеры. Напротив, устройства комбинатор¬
ной логики, которые во многом определяют количество эквивалентных
логических вентилей, реализуются в CPLD достаточно просто. Поэто¬
му характеристикой микросхем серии ХС9500 является именно количе¬
ство макроячеек, каждая из которых содержит один триггер. Именно
154
Глава 6
Обзор ПЛИС фирмы Xilinx
155
Таблица 6.2
Технические характеристики ПЛИС XC9500XL
Устройство
Число
макроячеек
Задержка
«контакт-контакт», нс
Типичное потреб¬
ление энергии, мА*
XC9536XL
XC9572XL
XC95144XL
XC95288XL
* Потребление
200 МГц; в реж
приведенных 31
** Верхнее зна
36
72
144
288
приведено для
;име пониженног
чачений.
чение приведенс
5. 7, 10
5, 7, 10
5, 7, 10
6. 7, 10
высокоскоростного режима
о энергопотребления ток сс
) для частоты 150 МГц.
20.. .50
40.. 100
70.. 180
150...350**
в диапазоне частот 0-
)ставляет около 60% от
Таблица 6 3
Технические характеристики ПЛИС XC9500XV
Устройство
Число
макроячеек
Задержка
«контакт-контакт», нс
Типичное потреб¬
ление энергии, мА*
XC9536XV
36
5, 7, 10
20...50
XC9572XV
72
5, 7, 10
40...100
XC95144XV
144
5, 7, 10
70...180
XC95288XV
288
6, 7, 10
150...350
это число, как нетрудно убедиться, входит в состав обозначения ПЛИС,
представленных в табл. 6.1.
Неоднозначна также оценка быстродействия ПЛИС. В действитель¬
ности задержка распространения сигнала обусловливается множеством
факторов, в том числе использованными разработчиком схемотехниче¬
скими решениями. Поэтому можно указать только самые общие параме¬
тры, на основании которых можно оценить быстродействие получаемого
проекта. Для CPLD таким параметром является задержка распростра¬
нения «контакт-контакт», измеряемая в наносекундах, которая также
входит в условное обозначение микросхемы.
Семейство ХС9500 представляет собой базовое решение для полу¬
чения энергонезависимого цифрового устройства и рекомендуется для
начала работы с микросхемами программируемой логики фирмы Xilinx.
Семейство XC9500XL питается от напряжения 3.3 В. однако на ло¬
гические входы этой серии возможна подача напряжения 5 В (в тех¬
нической документации следует обратить внимание на параметр «5 V
Tolerance») (табл. 6.2).
Семейство XC9500XVс напряжением питания 2,5 В имеет еще мень¬
шее энергопотребление и большую тактовую частоту, но НЕ совместима
с 5-вольтовыми устройствами (табл. 6.3).
Общей характеристикой ПЛИС XC9500/XL/XV является то. что
устройства с меньшим напряжением питания обладают более высоким
быстродействием и большей функциональностью распределителей тер¬
мов
Устройства CoolRunner. Это семейство отличается пониженным
энергопотреблением (статический ток не превышает 100 мкА). Функ¬
циональные возможности и порядок проектирования в целом подобны
ПЛИС серии ХС9500. Однако технические решения, примененные в се¬
рии CoolRunner, имеют существенные отличия. Прежде всего, функци¬
ональные блоки ПЛИС CoolRunner содержат матрицу PLA в отличие от
PAL-матрицы в ХС9500 Различие между ними заключается в том что
PLA-матрица состоит из элементов И, за которыми располагается матри¬
ца элементов ИЛИ. Обе этих матрицы являются программируемыми В
архитектуре PAL матрица элементов ИЛИ фиксирована. В конечном сче¬
те использование матрицы PLA позволяет оптимизировать использова¬
ние ресурсов кристалла при реализации сложных проектов. Однако дан¬
ное отличие прозрачно для разработчика и не делает необходимым его
специальный учет при проектировании цифровых устройств на CPLD.
Еще одно отличие, на которое стоит обратить внимание состо-
И\^АРЛ3^ИЧН°М количестве Циклов перепрограммирования — 10 000
у ХС9500 против 1 000 у CoolRunner.
В состав серии XPLA3 входят шесть устройств, краткие характери¬
стики которых приведены в табл. 6.4.
Напряжение питание ядра для этой серии составляет 3,3 В. Устрой¬
ства доступны как в простых к применению корпусах PLCC и OFP так
и в корпусах BGA
Семейство CoolRunner-ll представляет собой дальнейшее развитие
технологии CPLD и использует напряжение питания ядра 1,8 В. Хаоак-
теристики ПЛИС этого семейства также приведены в табл. 6.5
Отличием семейства CoolRunner-ll является поддержка большого
ЧИСла алектрических стандартов ввода-вывода (серия ХС9500 и вооб¬
ще CPLD обычно имеют существенно меньшие возможности в плане
поддержки разнообразных электрических интерфейсов).
Устройства CoolRunner могут быть использованы в качестве аль¬
тернативы микросхемам ХС9500 и XC9500XL. обеспечивая существен¬
но меньшее энергопотребление при сохранении функциональных воз-
можностей.
Таблица 6 4
Технические характеристики
ПЛИС CoolRunner XPLA3
Устройство
Число
макро¬
ячеек
Задержка
«контакт-
контакт», нс
XCR3032XL
XCR3064XL
XCR30128XL
XCR30256XL
XCR30384XL
XCR30512XL
32
64
128
256
384
512
5
6
6
7,5
7,5
7,5
Таблица 6.5
Технические характеристики
ПЛИС CoolRunner-ll
Устройство
Число
макро¬
ячеек
Задержка
«контакт-
контакт», нс
ХС2С32
ХС2С64
ХС2С128
ХС2С256
ХС2С384
ХС2С512
32
64
128
256
384
512
3.5
4
4.5
5
5.5
6
156
Глава 6
Обзор ПЛИС фирмы Xilinx
157
Т ип
Таблица 6.6
Число программируемых выводов в устройствах CPLD
Все микросхемы CPLD. выполненные в одном типе корпуса, совме¬
стимы по выводам с младшими моделями. Обратная совместимость
обеспечивается не полностью в виду того, что для ряда корпусов чи¬
сло внешних пользовательских выводов может быть меньше числа ма¬
кроячеек.
Число программируемых выводов, доступных для проектирования,
приведено в табл. 6.6.
Устройства CPLD имеют ограниченное применение в системах ци¬
фровой обработки сигналов вследствие относительно небольшого логи¬
ческого объема и отсутствия специализированных аппаратных ресурсов,
облегчающих реализацию типичных операций.
95288
9572
34
69
72
Семейство ХС9500
Число
95216
95144
95108
выводов
PQFP (PQ)
133
166
69
81
108
81
133
VQFP(VQ)
TQFP (TQ)
BGA (BG)
Размеры,
мм
корпуса
PLCC (PC)
168
168
192
44
84
100
160
208
44
100
352
17,5x17,5
30.2x30,2
23,3x17,2
31,2x31,2
30,6x30,6
12x12
16x16
35x35
Т ип
корпуса
Число
выводов
Размеры,
мм
Г₽м₽йства XC9500XL и XC9500XV
9536
9572
95144
95288
PLCC (PC)
44
17,5x17,5
34
34
—
168
PQFP(PQ)
208
30.6x30,6
VQFP(VQ)
44
64
12x12
12X12
34
36*
34
52*
—
—
TQFP(TQ)
100
144
16x16
22x22
72
81
117
117
CSP(CP)
48
144
7x7
12x12
36
38
117
—
280
16x16
—
—
—
192
BGA(BG)
256
352
27x27
35x35
36
—
—
192
192
FBGA (FG)
256
17x17
36
—
192
имеются только
Семейство Coll Runner XPLA3
в
* Варианты корпусов
Тип
Число
6.3. Устройства с архитектурой FPGA
Микросхемы с организацией FPGA (Field Programmable Gate Array)
используют энергозависимую статическую память для хранения конфи¬
гурационной информации. Основным элементом FPGA фирмы Xilinx
является конфигурируемый логический блок (CLB) Структура CLB
ПЛИС семейства Spartan приведена на рис. 6.3.
Базовая логическая ячейка микросхем FPGA несколько отличает¬
ся от макроячейки CPLD. Сравнение их структур выявляет два основ¬
ных отличия:
1) в состав CLB FPGA входят два триггера;
2) вместо достаточно мощного распределителя термов (Product
Term Allocator), который в ПЛИС CPLD серии ХС9500 может работать
корпуса
PLCC(PC)
PQFP(PQ)
VQFP(VQ)
TQFP (TQ)
CSP (СР)
CSP (CS)
FGA (FT)
FBGA (FG)
выводов
44
208
44
100
144
56
48
144
280
256
324
Размеры,
мм
17,5x17.5
30.6x30.6
12x12
16x16
22x22
6x6
7x7
12x12
16x16
17x17
23x23
3032
36
36
36
3064
36
3128
3256
164
3384
3512
172
180
36
68
48
40
84
108
совместимо с другими
* Расположение выводов JTAG не
Т ип
Число
Размеры,
корпуса
выводов
мм
PLCC (PC)
44
17,5x17,5
PQFP(PQ)
208
30,6x30,6
VQFP(VQ)
44
12x12
100
16x16
TQFP (TQ)
144
22x22
CSP (CP)
56
6x6
132
8x8
FGA (FT)
256
17x17
FBGA (FG)
324
1 23x23
33
33
3032
33
108
164
164
120
212
220
118*
212
260
устройствами этого се-
Семейство CollRunner-ll
3064
33
3128
3256
173
3384
173
3512
173
33
64
45
80
100
100
80
118
106
184
118
212
240
212
270
G4
G3
G2
G1
SR
Н1
DIN
F4
F3
F2
F1
К
ЕС
Рис. 6.3. Структура CLB семейства Spartan
158
Глава 6
Обзор ПЛИС фирмы Xilinx
159
с 36 входными переменными, в FPGA используются 4-входовые логиче¬
ские генераторы, обозначенные на схеме LUT (Look-Up Table, табли¬
ца истинности).
Приведенная структура и ее свойства отражают основные особенно¬
сти FPGA. Поскольку в составе таких ПЛИС отсутствует flash-память для
хранения конфигурации, все таблицы истинности логических элементов
должны быть занесены в обычную статическую память. Ее фрагмента¬
ми и являются LUT, которые представляют собой блоки памяти с ор¬
ганизацией 16x1. Это позволяет реализовать таблицу истинности лю¬
бого 4-входового логического элемента. Добавление еще одного входа
к каждому логическому генератору означает удвоение объема той части
конфигурационной памяти, которая отвечает за хранение таблиц истин¬
ности, таким образом, комбинаторная логика является в FPGA более
значимым ресурсом, чем в CPLD. В то же время наличие двух триггеров
в составе CLB позволяет реализовывать на базе микросхем FPGA более
сложные устройства насыщенные регистрами, счетчиками и т.п. узлами.
Следует отметить также, что, являясь по своей сути фрагментом па¬
мяти, каждая Look-Up Table может быть использована как оперативное
запоминающее устройство с организацией 16x1 или как 16-разрядный
сдвиговый регистр Это дает возможность использовать в проектах не¬
большие по объему блоки распределенной по кристаллу памяти. В се¬
мействе Spartan можно выбрать количество портов (обычная или дву¬
портовая память) и тип интерфейса — синхронный либо асинхронный.
В последующих семействах FPGA фирмы Xilinx асинхронный интерфейс
распределенной памяти не поддерживается.
Другим важным отличием является внутренняя структура микро¬
схем FPGA. На рис. 6.4 представлен пример, относящийся к типичному
для технологии FPGA семейству Spartan.
ПЛИС, выполненная по технологии FPGA, состоит из прямоуголь¬
ной матрицы конфигурируемых логических блоков (CLB), окруженных
блоками ввода-вывода (10В — Input/Output Block). Между CLB распо¬
лагаются программируемые трассировочные линии (Routing Channels).
От микросхем CPLD представленный пример отличается тем, что от¬
дельные CLB не имеют индивидуальных выходов, соединенных с внеш¬
ними выводами ПЛИС. Вместо этого функции преобразования сигналов
выполняют выделенные ресурсы — 10В. Между матрицей CLB и блока¬
ми ввода-вывода имеются отдельные межсоединения, которые и обеспе¬
чивают подключение внешних сигналов. Такой подход весьма актуален
ввиду значительно большей логической емкости микросхем FPGA по
сравнению с устройствами CPLD (для серии ХС9500 максимальный ло¬
гический объем в настоящее время составляет 288 макроячеек, тогда как
устройства FPGA могут содержать десятки тысяч CLB). Действитель¬
но, попытка обеспечить индивидуальное соединение с выводами кор¬
пуса для большого количества логических ячеек требует чрезмерного
количества трассировочных ресурсов, в то же время число пользова¬
тельских выводов даже в корпусах максимального размера находится
юв
юв
юв
юв
юв
юв
юв
юв
! j 1
—►
CLB
-*
J1
’ F
—♦
CLB
—►
■4—
Г
Рис. 6.4. Структура ПЛИС FPGA семейства Spartan
OSC
ЮВ
юв
юв
юв
~гт~
START¬
UP
в пределах одной тысячи. Таким образом, наличие отдельного набо¬
ра блоков ввода-вывода, соединенных с основной матрицей логических
блоков, соответствует общей идеологии построения программируемых
цифровых элементов.
Реализация элементов электрического интерфейса в отдельном бло¬
ке дает еще одно весьма важное преимущество. В то время как возмож¬
ности управления электрическим интерфейсом в микросхемах CPLD се¬
рии ХС9500 ограничено установкой скорости нарастания выходного сиг¬
нала, блок ввода-вывода FPGA, представляющий собой отдельный эле¬
мент кристалла, как правило, обладает существенно большими возмож¬
ностями. Современные серии ПЛИС поддерживают до 20 электриче¬
ских интерфейсов (включая TTL и CMOS с множеством разновидностей,
а также высокоскоростные дифференциальные интерфейсы, такие как
LVDS, LVPECL и др.). Тип интерфейса, реализуемый в каждом блоке,
может быть установлен индивидуально. При этом информация о реа¬
лизуемом блоком протоколе содержится в конфигурационной памяти и
может быть задана в процессе проектирования устройства на базе ПЛИС.
160
Глава 6
Обзор ПЛИС фирмы Xilinx
161
Архитектура с раздельным расположением основных логических ре¬
сурсов и блоков ввода-вывода создает и некоторые трудности при созда¬
нии топологии внутренних соединений. В то время как проекты, вы¬
полняемые в ПЛИС CPLD, часто допускают 100%-ное использование
макроячеек, подобный результат для устройств FPGA является практи¬
чески недостижимым. Это связано с тем, что выбранное алгоритмами
трассировки кристалла взаимное расположение отдельных узлов проек¬
та внутри ПЛИС может оказаться неудобным для последующего соеди¬
нения их с блоками ввода-вывода (например, если с внешним выводом
микросхемы должен быть соединен один из блоков, расположенных на
противоположной стороне матрицы CLB). Для семейства Spartan можно
ожидать успешной трассировки относительно сложных проектов вплоть
до 60-70%-ного использования CLB.
Данная проблема может быть решена путем переназначения внеш¬
них выводов ПЛИС, однако такое решение не всегда можно считать
удачным, поскольку оно нивелирует одно из важных технологических
преимуществ данной технологии — возможность изменения внутрен¬
ней структуры цифрового устройства без изменения топологии печатной
платы. Поэтому с методологической точки зрения правильнее было бы
отталкиваться от взаимного расположения электронных компонентов на
печатной плате и добиваться наилучшей топологии печатных провод¬
ников, адаптируя внутреннюю структуру ПЛИС под требуемое распо¬
ложение ее выводов. В рамках этого подхода наблюдается тенденция
к увеличению количества трассировочных ресурсов вообще и усложне¬
нию выделенных ресурсов, соединяющих матрицу CLB с блоками ввода-
вывода. Для приведенного в качестве примера семейства Spartan такими
ресурсами являются VersaRing Routing Channels — трассировочные ли¬
нии, окружающие матрицу CLB.
На рис. 6.5 показана структура микросхемы Spartan-II — дальнейше¬
го развития серии Spartan. Сравнение этих структур позволяет сделать
некоторые заключения о тенденциях развития архитектур ПЛИС.
Прежде всего, к стандартному для предыдущих серий FPGA набо¬
ру CLB Т ЮВ добавлена блочная память (Block RAM). Для семейства
Spartan-II она составляет 16-56 Кбит и представлена блоками синхрон¬
ной двупортовой памяти объемом 4096 бит, которые могут быть сконфи¬
гурированы с разрядностью шины данных 1, 2, 4, 8, 16 бит. Использова¬
ние этой памяти никак не затрагивает основную матрицу CLB, в то время
как реализация устройств памяти на базе LUT иногда делает невозмож¬
ным использование триггеров, входящих в состав соответствующих CLB.
Интересной возможностью является использование блочной памяти
в качестве мощных блоков комбинаторной логики (эта опция трассиров¬
ки доступна в последних версиях САПР ПЛИС фирмы Xilinx). Подобным
образом достигается максимальная гибкость в выборе методологии про¬
ектирования, поскольку одна и ia же логическая структура может быть
реализована целям рядом способов, и разработчик имеет возможность
Рис. 6.5. Структура ПЛИС FPGA семейства Spartan-Il
□С
□
□
□
□с
II
т
DLL
BLOCK RAM
!=□
[=□
l: ji j
Г "in
l_IU
[=□
ы ns
1 . 1LJ
ГПП
r—in
=]□
!=□
!=□
BLOCK RAM
1 IU
EZJD
[=□
1=1 □
[=□
!=□
□ П
[=□
mn
( 1 нс
г
1 1 l-J
l=n
I-in
!=□
DLL
Г
м
""
выбрать наиболее подходящий с учетом задействуемых ресурсов ПЛИС,
получаемого быстродействия и т.п.
В состав ПЛИС Spartan-II введены также блоки распределения так¬
товых сигналов DLL (Delay Locked Loop). Эти блоки, показанные на
схеме в углах кристалла, обеспечивают одновременную подачу такто¬
вого сигнала на все триггеры матрицы CLB, используя для этого вы¬
деленные трассировочные линии. Подобным образом минимизируются
задержки распространения глобального для проекта сигнала, что акту¬
ально для высокоскоростных устройств.
Кроме того, по сравнению с семействами Spartan /Spartan-XL, уст¬
ройства Spartan-Il содержат большее количество локальных трассиро¬
вочных ресурсов, более мощную структуру VersaRing и обеспечивают
поддержку дифференциальных электрических интерфейсов.
Наконец, в семействе Spartan-З добавлены аппаратные устройства
быстрого перемножения независимых 18-разрядных операндов. Эти
устройства аналогичны выделенным ресурсам семейств Virtex и Virtex-
ll Pro. Умножители расположены вблизи отдельных блоков выделенной
памяти и позволяют с минимальными аппаратными затратами выпол¬
нять операцию «умножение с накоплением», при этом блочная память
выступает в роли устройства хранения коэффициентов цифрового филь¬
тра. Такая возможность выводит ПЛИС на совершенно новый уровень
в области цифровой обработки сигналов.
11
162
Глава 6
Обзор ПЛИС фирмы Xilinx
163
Рассмотренные отличия между двумя последовательно появивши¬
мися в своем классе семействами ПЛИС позволяют выделить некоторые
тенденции в развитии архитектур микросхем программируемой логики:
• увеличение функциональности логических блоков ПЛИС с одновре¬
менным введением в кристалл выделенных ресурсов для решения
типичных задач цифровой обработки сигналов;
• увеличение трассировочных ресурсов ПЛИС, в том числе ввод в
ее состав выделенных линий для наиболее эффективного решения
задач распространения критичных сигналов;
• повышение тактовой частоты системы, в том числе за счет более
эффективного распространения по кристаллу тактового сигнала с
помощью блоков DLL и отказа от использования асинхронного ин¬
терфейса памяти:
• увеличение количества поддерживаемых блоками ввода-вывода
электрических интерфейсов;
• переход к новым техпроцессам изготовления ПЛИС с уменьшением
технологического допуска и увеличением количества слоев метал¬
лизации, понижение напряжения питания ядра и соответствующее
снижение стоимости ПЛИС.
Кроме того, практически для всех семейств ПЛИС фирмы Xilinx
наблюдается тенденция к увеличению объема блочной памяти, разме¬
щаемой на кристалле. В сочетании с объемом матрицы CLB это дает
возможность реализовывать на базе ПЛИС микропроцессорные устрой¬
ства, использующие блочную память для хранения команд. На том
же кристалле могут быть размещены и цифровые интерфейсы внеш¬
них устройств, что минимизирует количество микросхем, требуемых для
построения микропроцессорной системы управления и соответствует со¬
временному подходу «Систем на кристалле» (SoC — System On Chip).
Одно из наиболее современных семейств ПЛИС Virtex-ll Pro содержит
в себе до 2 реализованных аппаратно ядер процессора PowerPC, кото¬
рые могут быть использованы в проекте наравне с прочими логиче¬
скими ресурсами.
Наиболее перспективными семействами FPGA фирмы Xilinx явля¬
ются ПЛИС серий Spartan и Virtex. Первая из серий включает в себя
недорогие устройства общего назначения, пригодные для решения ши¬
рокого класса задач цифровой обработки сигналов. Серия Virtex обла¬
дает несколько более широкими возможностями за счет более развитой
структуры логических блоков, обеспечивает несколько большие рабочие
частоты по сравнению с ПЛИС Spartan, но и имеет более высокую сто¬
имость в пересчете на один логический вентиль.
В настоящее время обе серии, Spartan и Virtex, развиваются фирмой
Xilinx параллельно. В практике проектирования цифровых устройств об¬
щего назначения различия между этими устройствами на самом деле не
являются принципиальными, и ПЛИС серии Virtex можно рекомендо¬
вать только в тех случаях, когда особенности их внутренней структуры
являются определяющими для успешной реализации проекта.
ПЛИС серии Spartan являются развитием базовой серии ХС4000
(семейства ХС4000Е, XC4000XL и XC4000XLA). На определенном эта¬
пе развития архитектур ПЛИС оказалось, что можно пойти как по пути
реализации наиболее производительных технических решений, так и по
пути максимального облегчения и удешевления выпускаемых микросхем
с сохранением их основных функций. Подобное разделение и привело
к появлению двух параллельно развиваемых семейств: высокопроизво¬
дительных hi-end FPGA серии Virtex и более дешевой серии Spartan, ко¬
торая позиционируется как замена специализированным микросхемам в
мелких партиях изделий. Первое семейство данной серии называлось
собственно Spartan и включало в себя пять устройств емкостью от 5
до 40 тысяч эквивалентных логических вентилей (максимум 1862 ло¬
гические ячейки). Примерно в то же время было выпущено семейство
Spartan-XL. Отличие между этими семействами заключается в исполь¬
зуемом напряжении питания: 5 В у Spartan и 3,3 В у Spartan-XL, которая
тем не менее допускает работу с 5-вольтовыми устройствами. Архитек¬
тура этих семейств базировалась на ХС4000, однако сделанные измене¬
ния наглядно демонстрировали подход, выбранный Xilinx относительно
данной серии. Функциональные возможности логических ячеек были
несколько урезаны, однако в общую структуру ПЛИС был внесен ряд
дополнений, улучшающих производительность проектов в несложных
задачах. В частности, было увеличено количество трассировочных ре¬
сурсов внутри матрицы логических ячеек, добавлены специальные трас¬
сировочные линии VersaRing, существенно облегчающие подключение
матрицы ячеек к выводам ПЛИС, улучшена производительность цепей
быстрого переноса. Введенные ограничения с точки зрения разработчи¬
ка прежде всего коснулись невозможности использовать одновременно
входы асинхронного сброса и установки для триггеров логических ячеек.
В ячейках в числе прочего был оставлен только один вход асинхронного
управления триггером, который мог, впрочем, реализовывать любую из
этих функций. Однако в целом архитектура получилась довольно удач¬
ной, большинство распространенных схемных решений реализовывалась
тем же объемом ресурсов, что и в ХС4000, но общая стоимость новых
ПЛИС того же объема оказалась существенно ниже (в 2000 г. рознич¬
ные цены на эти ПЛИС составляли от 10 до 50 у.е.).
Благодаря относительно низкой для ПЛИС того времени стоимости
семейство Spartan сыграло существенную роль в распространении дан¬
ной технологии. Однако в настоящий момент данные устройства отно¬
сятся к морально устаревшим. Их выпуск все еще продолжается, однако
применение в новых проектах настоятельно не рекомендуется. Кроме
того, необходимо пояснить еще один довольно важный момент, связан¬
ный с этими семействами ПЛИС. В 2002 г. состоялась смена поколений
САПР фирмы Xilinx — на смену пакету Xilinx Foundation Series пришел
САПР Integrated Software Environment. Строго говоря, версия 4.1 со¬
держала как очередную версию Foundation Series, так и новый продукт
11*
164
Глава б
Обзор ПЛИС фирмы Xilinx
165
ISE Однако дальнейшая поддержка Foundation Series была прекраще¬
на. Переход на новую САПР вызвал также и переход на новый маршрут
проектирования ПЛИС. Если предыдущая линия САПР ориентирова¬
лась для внутреннего представления проекта на формат edif, то САПР
ISE использует в качестве основного движка языки описания аппарату¬
ры (HDL). Для такого перехода оказалось необходимым переработать
файлы описания ПЛИС, подготовив их к работе с новым маршрутом
проектирования. При этом семейства Spartan и Spartan-XL (как и более
ранние FPGA) в число поддерживаемых новой САПР не попали. Фир¬
ма Xilinx официально рекомендует использовать для создания проектов
для этих семейств ранние версии САПР Xilinx Foundation Series.
6.3.1. Архитектура и основные особенности
ПЛИС Virtex
Серия Virtex содержит несколько семейств. Базовое семейство на¬
зывается собственно Virtex, и включает в себя 9 ПЛИС объемом от 50
тыс. до 1 млн эквивалентных логических вентилей, выполненных по
технологии 0,22 мкм. Напряжение питания ядра составляет 2,5 В, под¬
держивается большое количество электрических интерфейсов.
Следующее семейство носит название Virtex-E. В его составе также
9 устройств с диапазоном 50 тыс. — 2 млн вентилей. Это семейство
выполнено с технологическими нормами 0,18 мкм.
К моменту появления Virtex-E уже стало понятно, что блочная па¬
мять, расположенная на кристалле ПЛИС, является весьма ценным ре¬
сурсом. В ряде случаев ПЛИС может использоваться именно в каче¬
стве мощного контроллера высокопроизводительной двупортовой памя¬
ти. Надежность и помехоустойчивость внутренних программируемых со¬
единений ПЛИС значительно выше, чем у печатных проводников, соеди¬
няющих ПЛИС с внешней памятью. Поэтому у Virtex-E объем блочной
памяти был существенно увеличен. Особо высокий объем блочной па¬
мяти у семейства Virtex-EM (Extended Memory), в состав которого вхо¬
дят всего 2 микросхемы.
Отличия архитектуры семейств Virtex и Virtex-E не слишком суще¬
ственны для разработчика. В действительности рекомендуется выбор
более современных устройств Virtex-E — более,современный техпроцесс
означает более высокие рабочие частоты при меньшей стоимости ПЛИС.
Существенно измененной архитектурой обладают следующие семей¬
ства — Virtex-II и Virtex-II Pro, выполненные соответственно по 0.15 и
0,13-мкм техпроцессам. Основным архитектурным отличием этих се¬
мейств являются переработанные блоки накристальной памяти. Вместо
4 кбит они имеют размер 18 кбит. Кроме того, в этих семействах впер¬
вые появились выделенные блоки умножения 18-разрядных независи¬
мых операндов, реализованные аппаратно. Число таких блоков соот¬
ветствует числу блоков памяти, что существенно облегчает построение
систем цифровой обработки сигналов. Если в предыдущих семействах
Virtex устройство умножения занимало логические ячейки, то аппаратно
реализованные умножители Virtex-ll решили целый ряд проблем: осво¬
бождение логических ячеек, существенное увеличение производительно¬
сти и получение значительно более предсказуемых временных характе¬
ристик проекта. Разумеется, в Virtex-II сохранилась возможность реали¬
зации устройств умножения на базе логических ячеек.
Тенденция добавления на кристалл аппаратно реализованных мо¬
дулей очень ярко проявилась в семействе Virtex-ll Pro. При схожей с
Virtex-II архитектуре эти ПЛИС содержат аппаратно реализованные ядра
процессора PowerPC-405 с тактовой частотой 300 МГц. Похожие реше¬
ния можно найти среди продукции Atmel или Cypress, где матрица логи¬
ческих ячеек окружает 8-битное процессорное ядро, однако производи¬
тельность 32-разрядного PowerPC существенно выше Старшие устрой¬
ства Virtex-ll Pro (начиная с V2P20) содержат два таких процессора.
Кроме того, в семействе Virtex-ll Pro появились высокоскоростные
приемопередатчики RocketIO, обеспечивающие скорость до 3,125 Гбит/с.
Введение этих устройств позволяет эффективно решать задачу обме¬
на данными с ПЛИС, которая в принципе может обеспечить доволь¬
но большой их поток.
Наконец, с переходом к семейству Virtex-ll Pro изменилась информа¬
ция, содержащаяся в условном обозначении ПЛИС. Число, содержаще¬
еся в нем, для Virtex-ll Pro означает уже не тысячи логических вентилей,
а тысячи логических ячеек. Об этом необходимо также сказать несколь¬
ко слов. Например, для устройств CPLD количество логических ячеек на
кристалле позволяет однозначно определить его информационную ем¬
кость. Поэтому для ПЛИС CPLD в условном обозначении содержится
именно эта информация: например, ПЛИС ХС9536 содержит 36 ячеек.
Для ранних семейств FPGA в обозначение стало включаться ко¬
личество эквивалентных логических вентилей в тысячах штук. Такая
оценка отражала тот факт, что функциональные возможности различ¬
ных семейств FPGA несколько различались, и число логических ячеек,
требующихся для реализации того или иного устройства, могло суще¬
ственно различаться. Кроме того, блоки ввода-вывода FPGA также со¬
держат устройства, которые могут быть запрограммированы разработчи¬
ком. Таким образом, каждой логической ячейке и блокам ввода-вывода
было поставлено в соответствие некоторое количество логических венти¬
лей. Полученная оценка емкости ПЛИС и входит в условное обозначение
FPGA ХС4000, Spartan и почти всех семейств Virtex.
Однако сравнение ПЛИС Virtex и Virtex-ll показывает, что при оди¬
наковом количестве логических вентилей Virtex-ll имеет существенно
меньше логических ячеек. Например, 27648 в XCV1000 против всего 5120
в XC2V1000! В чем же дело, и не является ли оценка по числу логиче¬
ских вентилей завышенной? Ответ на этот вопрос кроется в существен¬
ном различии организации блочной памяти для этих семейств. Очевид¬
но, что блочная память также должна быть учтена в оценке числа логи¬
ческих вентилей, а в устройствах Virtex-ll ее существенно больше. Кроме
166
Глава 6
Обзор ПЛИС фирмы Xilinx
167
Рис. 6.6. Зависимость объема блочной памяти от логической емкости ПЛИС
того, в это семейство включены аппаратно реализованные умножители,
которые также вносят существенный вклад в оценку по числу логиче¬
ских вентилей. Очевидно, что попытка реализации подобных систем
в семействах Virtex/Virtex-E приведет к необходимости тратить логиче¬
ские ячейки Поэтому, с одной стороны, приведенные оценки вполне
адекватны, но с учетом существенной измененной архитектуры совре¬
менных FPGA следовало бы приводить более подробную информацию о
содержании программируемых ресурсов. Поэтому в обозначении Virtex-
II Pro приводится количество логических ячеек в тысячах, а информа¬
цию о наличии выделенных ресурсов можно узнать отдельно (интересно,
что объем блочной памяти и количество выделенных умножителей для
этого семейства прямо пропорциональны числу логических ячеек).
Интересно отметить, что в среде разработчиков встречается мнение,
что применение устройств Virtex-ll Pro не оправдывается с экономиче¬
ской точки зрения, поскольку они содержат аппаратно реализованные
процессорные ядра, которые в конкретном проекте могут не требовать¬
ся. Тем не менее сравнение цен на ПЛИС Virtex-ll и приблизительно
аналогичные по характеристикам Virtex-ll Pro показывает, что послед¬
ние несколько дешевле при равных логических объемах, даже с уче¬
том наличия процессоров на кристалле. В действительности площадь,
занимаемая процессором и сопутствующими устройствами, невелика, и
гораздо большее влияние на цену оказывает более современный техпро¬
цесс Приведенные ниже тесты показывают, что при тех же условиях
ПЛИС Virtex-ll Pro обеспеч ивают и более высокую производительность.
Представленная на рис. 6.6 диаграмма иллюстрирует, как при пе¬
реходе от Virtex-E к Virtex-ll и Virtex-ll Pro увеличилось соотношение
между объемом блочной памяти и числом логических ячеек.
Характеристики семейства Virtex-4
Семейство Virtex-4 было анонсировано фирмой Xilinx в июне 2004
года и использовало 90-нм технологический процесс, по которому вы¬
пускаются также семейства Spartan-3/3E/3L. В то же время упомяну¬
тые ПЛИС имеют архитектуру, схожую с Virtex-ll, а в семействе Virtex-
4 был реализован целый ряд архитектурных нововведений. Немало¬
важным нововведением является разделение нового семейства на три
подгруппы. Подгруппа LX ориентирована на преимущественное исполь¬
зование в проектах логических ячеек (хотя блоки цифровой обработ¬
ки сигналов имеются в этих ПЛИС в достаточном количестве), устрой¬
ства SX предназначены для обработки сигналов и предоставляют очень
большое для ПЛИС количество блоков DSP. Наконец, к подгруппе FX
относятся «полнофункциональные» (Full-featured) ПЛИС, имеющие на
кристалле процессорные ядра PowerPC, аналогичные используемым в
Virtex-ll Pro. Однако дополнительные устройства, имеющиеся только в
Virtex-4 FX, заслуживают отдельного упоминания. Прежде всего, это
модули Ethernet со скоростями 10/100/1000 Мбит/с. Плюсы размеще¬
ния этих модулей на кристалле очевидны — обеспечивается высокая
скорость обмена (что тем более актуально для ПЛИС большого объ¬
ема, интенсивно обрабатывающих потоки данных), уменьшается коли¬
чество внешних компонентов, повышается общая надежность системы.
Наконец, добавлено устройство, которое можно считать знаковым в ми¬
ре FPGA, — аналого-цифровой преобразователь. Конечно, программи¬
руемые аналоговые устройства существуют уже достаточно давно (на¬
пример, среди продукции фирм Cypress и Lattice), однако помещение
АЦП на кристалл большой логической емкости открывает совершенно
иные перспективы. Следует отметить, что блоки АЦП пока размеща¬
ются только в старших устройствах Virtex-4 FX, имеют разрядность 10
бит и скорость преобразования 200 kSps. Таким образом, эти АЦП под¬
ходят больше для мониторинга параметров системы, чем для сколько-
нибудь производительных и точных измерений. Можно заметить, что
для мониторинга в этих ПЛИС предусмотрен отдельный аппаратно ре¬
ализованный блок.
Концепция «системы на кристалле» имеет очень важное преимуще¬
ство с точки зрения быстрой разработки устройств. Давно известно, что
технология ПЛИС обеспечивает существенное сокращение сроков разра¬
ботки и внесения изменений в готовый проект за счет сквозного марш¬
рута проектирования и программирования устройств. В проектах типа
«микроконтроллер + ПЛИС + память + аналоговые устройства» этим
обеспечивалось ускорение проектирования по крайней мере одного из
компонентов. Однако современные ПЛИС Virtex уже сейчас обеспечи¬
вают размещение на кристалле процессора, матрицы программируемых
ячеек и памяти достаточно большого объема. Таким образом, в рам¬
ках одного устройства оказывается возможным реализовать практиче¬
ски всю цифровую часть проекта.
Здесь можно добавить, что внутрикристальные соединения обеспе¬
чивают как более высокую скорость обмена данными, так и большую
надежность по сравнению с печатными проводниками, соединяющими
ПЛИС с другими цифровыми компонентами. Соответственно, целый
168
Глава 6
Обзор ПЛИС фирмы Xilinx
169
Таблица 6.7
Характеристики ПЛИС семейства Virtex-4
ПЛИС
Число
логи¬
ческих
ячеек
Распре¬
деленная
память,
кбит
Блочная
память, кбит
(число
блоков)
Число
блоков
XtremeDSP
Максимальное
число програм¬
мируемых
выводов
XC4VLX15
13284
96
864 (48)
32
320
XC4VLX25
24192
168
1296 (72)
48
448
XC4VLX40
41472
288
1728 (96)
64
640
XC4VLX60
59904
416
2880 (160)
64
640
XC4VLX80
80640
560
3600 (200)
80
768
XC4VLX100
110592
768
4320 (240)
96
960
XC4VLX160
152064
1056
5184 (288)
96
960
XC4VLX200
200448
1392
6048 (336)
96
960
XC4VSX25
23040
160
2304 (128)
128
320
XC4VSX35
34560
240
3456 (192)
192
448
XC4VSX55
55296
384
5760 (320)
512
640
XC4VFX12
12312
86
648 (36)
32
320
XC4VFX20
19224
134
1224 (68)
32
320
XC4VFX40
41904
243
2592 (144)
48
448
XC4VFX60
56880
395
4176 (232)
128
576
XC4VFX100
94896
659
6768 (376)
160
768
XC4VFX140
142128
987
9936 (552)
192
896
ряд технологических вопросов, связанных с проектированием печатных
плат, существенно облегчается.
Характеристики ПЛИС Virtex-4 приведены в табл. 6.7.
Характеристики семейства Vi г tex-5
В 2006 г. было объявлено о выходе семейства Virtex-5, отлича¬
ющегося применением 65-нм технологического процесса и существен¬
ными улучшениями архитектуры. Прежде всего, таблицы истинности
логических ячеек сделаны 6-входовыми, что потребовало использова¬
ния 64 битов для хранения состояния каждой таблицы. Однако это
же дало возможность и изменить архитектуру распределенной памя¬
ти на 64x1 (или 32-разрядный сдвиговый регистр). Изменения косну¬
лись и выделенных ресурсов: базовая конфигурация блочной памяти
соответствует 1 кбитхЗб (т.е. каждый блок памяти содержит 36 кбиг
синхронной двупортовой памяти), а аппаратные умножители получи¬
ли возможность выполнения умножения не над двумя 18-разрядными
операндами, а над 18 и 25-разрядным. Аккумулятор блока DSP за¬
менен комбинированным регистром-сумматором-вычитателем. Также к
выходному устройству добавлен внешний 48-разрядный вход, что дает
возможность на каждом такте производить операцию над тремя опе¬
рандами: значением из выходного регистра, результатом умножения не¬
зависимых операндов, и числом, подаваемым из матрицы логических
ячеек. Максимальная тактовая частота выделенных блоков составля¬
ет 550 МГц.
Характеристики ПЛИС Virtex-5 приведены в табл. 6.8.
Таблица 6 8
Характеристики ПЛИС семейства Virtex-5
ПЛИС
Число
логических
ячеек
Распре¬
деленная
память,
кбит
Блочная
память,
блоков по
36 кбит
Число
блоков
DSP48E
Максимальное
число програм¬
мируемых
выводов
XC5VLX30
4800
320
32
32
400
XC5VLX50
7200
480
48
48
560
XC5VLX85
12960
840
96
48
560
XC5VLX110
17280
1120
128
64
800
XC5VLX220
34560
2280
192
128
800
XC5VLX330
51840
3420
288
192
1200
Примечание:
каждая логическая ячейка ПЛИС Virtex-5 имеет
4 логических ге-
нератора и 4
триггера.
Применение ПЛИС Virtex
Как же может выглядеть система, в которой применение устройств
Virtex будет оправдано? Разумеется, сделать сколько-нибудь исчерпыва¬
ющий анализ невозможно, однако можно указать на некоторые области,
в которых высокие технические характеристики этих ПЛИС, особенно
нового семейства Virtex-4, окажутся весьма своевременными. Прежде
всего, ПЛИС Virtex позволяют добиться более высоких рабочих частот
проекта, чем аналогичные по технологии изготовления устройства се¬
рии Spartan. Это преимущество очевидно для случаев, когда необходи¬
мо добиться максимальной тактовой частоты при разумных затратах (по
сравнению, например, с изготовлением специализированной микросхе¬
мы). Однако, кроме чисто количественных характеристик, устройства
Virtex, обладающие улучшенной функциональностью, при ее грамот¬
ном использовании могут существенно изменить облик разрабатывае¬
мого изделия. Рассмотрим, какие качественные изменения могут следо¬
вать из архитектурных различий между двумя наиболее популярными
ПЛИС фирмы Xilinx.
Блоки XtremeDSP. Появление встроенных умножителей в составе
Virtex-ll существенно повысило привлекательность использования ПЛИС
в устройствах цифровой обработки сигналов. ПЛИС и ранее могли
довольно успешно конкурировать даже со специализированными DSP-
процессорами за счет размещения на одном кристалле множества блоков
«умножение с накоплением» (Multiply&Accumulate, МАС), реализуемых
на базе логических ячеек. Такое решение оставляло незадействованным
существенную часть аппаратных ресурсов кристалла, а топология про¬
граммируемых соединений получалась чрезмерно сложной. Помещение
же на кристалл высокопроизводительных специализированных модулей
существенно улучшило сразу несколько аспектов. Прежде всего, специа¬
лизированный умножитель обеспечивает более высокую производитель¬
ность. Далее, его размещение на кристалле относительно других элемен¬
тов позволяет весьма эффективно реализовывать умножение входного
цифрового сигнала на массив коэффициентов, хранящихся в блочной
170
Глава 6
Обзор ПЛИС фирмы Xilinx
171
памяти ПЛИС, что также упрощает реализацию алгоритмов DSP. На¬
конец, что также немаловажно, выделение умножителей в отдельные
блоки освободило логические ячейки для других задач и одновременно
резко упростило внутреннюю топологию программируемых соединений
при реализации умножителей. Выделенные умножители имеются и в
ПЛИС Spartan-З, но их удельный вес там несколько ниже.
В семействе Virtex-4 блоки умножителей превратились в полноцен¬
ные блоки «умножение с накоплением». Кроме умножителя независи¬
мых 18-разрядных операндов, такой блок содержит и 48-разрядный ак¬
кумулятор. Разумеется, его можно и не использовать. Тактовая частота
такого блока заявлена на уровне 500 МГц, и взгляд на характеристики
подсемейства SX дает в итоге весьма впечатляющую картину: пиковая
производительность старшего кристалла составляет 256 GMAC/c! Сле¬
дует сделать оговорку, что далеко не все реализации алгоритмов обра¬
ботки сигналов будут иметь подобные характеристики. Действительно,
в микросхеме с числом программируемых выводов не более тысячи не¬
возможно реализовать 512 устройств умножения, работающих с незави¬
симыми операндами. Однако для ряда задач, особенно использующих
параллельную обработку одной и той же цифровой последовательности,
выигрыш в производительности по сравнению с сигнальными процессо¬
рами может оказаться весьма существенным. К этим задачам можно
отнести спектральный анализ на основе дискретного или быстрого пре¬
образования Фурье, вейвлет-анализ, многоканальную цифровую филь¬
трацию, аппаратную реализацию нейросетевых алгоритмов, некоторые
разновидности метода конечных элементов. Следует отметить, что це¬
лый ряд вычислительных задач в области цифровой обработки сигналов
может быть сведен к операции «умножение с накоплением», которая
реализуется в ПЛИС весьма эффективно.
Аппаратно реализованные процессорные ядра. Описание про¬
цессорных ядер с помощью HDL (так называемые софт-процессоры)
в последнее время получает все большее и большее распространение.
Действительно, объемы современных ПЛИС и высокие тактовые ча¬
стоты делают весьма привлекательным добавление в проект управля¬
ющего устройства функциональной копии ядра одного из стандартных
микроконтроллеров, либо специализированного процессорного устрой¬
ства, оптимизированного для конкретной задачи. При этом разработчик
освобождается от необходимости использовать для описания проекта
только HDL, поскольку часть функций устройства может выполняться
программно. Описание этих функций на более подходящих, чем HDL,
языках программирования существенно облегчает задачу разработчика
и ускоряет процесс разработки в целом. В настоящее время имеется до¬
вольно большая библиотека IP-ядер, описывающих самые разнообраз¬
ные микропроцессорные устройства. Фирмой Xilinx предлагаются также
софт-процессоры MicroBlaze и PicoBlaze.
С другой стороны, очевидно, что софт-процессоры неизбежно усту¬
пают своим аппаратно реализованным аналогам по быстродействию и
стоимости. Действительно, трудно ожидать от универсальной системы
успешной конкуренции со специализированными массово выпускаемы¬
ми изделиями. Однако размещение на кристалле Virtex-II Pro аппаратно
реализованных ядер достаточно мощного процессора PowerPC карди¬
нально меняет эту картину. Подключить процессорное ядро к програм¬
мируемой матрице ПЛИС с помощью стандартных САПР гораздо проще,
чем реализовать подобную систему на дискретных компонентах В то же
время рабочая частота этого процессора существенно выше, чем, напри¬
мер. у MicroBlaze (300 МГц вместо 125). В итоге на базе Virtex-ll Pro
можно в короткие сроки создать высокопроизводительную цифровую
систему, объединяющую на кристалле процессор, некоторое количество
памяти, и периферийные устройства.
Реализация системы на кристалле привлекательна еще по одной
причине. Как было показано в приведенных выше тестах, рабочие ча¬
стоты ПЛИС существенно падают, если сигналы необходимо вывести
за пределы микросхемы. Например, чрезвычайно сложно достичь ско¬
рости передачи 500 МГц по внешним печатным проводникам, однако
именно на такой частоте способны работать блоки XTremeDSP с вну¬
тренними сигналами ПЛИС. Следовательно, выполнение основной ча¬
сти вычислений внутри ПЛИС позволит достичь максимальных такто¬
вых частот проекта.
Xilinx рекомендует САПР EDK (Embedded Development Kit), кото¬
рый позволяет быстро выполнить проектирование системы на кристал¬
ле, или цифровой системы на базе процессоров PowerPC, MicroBlaze
или PicoBlaze. Процессорное ядро PicoBlaze в настоящее время пред¬
лагается бесплатно
Аппаратно реализованные приемопередатчики и контроллеры
Ethernet. Увеличение производительности ПЛИС, как ни парадоксаль¬
но, может затруднить эффективную обработку данных. В самом деле,
пиковые производительности ПЛИС очень часто приводятся из наиболее
общих и оптимистичных соображений — количество блоков какого-либо
типа просто умножается на максимальную тактовую частоту. При ЭТОМ
проблемы совместной работы этих устройств, внутрикристальной трас¬
сировки соединений и, главное, доставки к ПЛИС и из нее такого объема
данных обычно не учитываются. В то же время даже младшие ПЛИС
Virtex вполне способны полностью загрузить шину PCI 64 бит/66 МГц.
Поэтому проблему передачи данных нельзя игнорировать. Ее решение
существенно облегчилось добавлением к Virtex-ll Pro высокоскоростных
последовательных приемопередатчиков RocketlO. Эти модули способны
работать нескольких режимах (включая, например, Gigabit Ethernet и
10Gbit Ethernet), содержат всю необходимую аппаратную часть и обес¬
печивают существенную экономию аппаратных ресурсов при реализации
высокоскоростных последовательных протоколов. В дополнение следует
отметить, что выполнить подобные устройства на базе матрицы логиче¬
ских ячеек попросту невозможно.
172
Глава 6
Обзор ПЛИС фирмы Xilinx
173
В устройствах Virtex-4FX в дополнение к ним присутствуют и пол¬
ноценные Ethernet-контроллеры со скоростями передачи 10/100/1000
Мбит/с. Четыре таких контроллера в старших ПЛИС открывают самые
разные перспективы их использования.
Конечно, подключение к Ethernet можно произвести и с помощью
внешнего устройства, и даже путем реализации его функций с помощью
логических ячеек. Эти способы доступны и для устройств Spartan (как и
организация интерфейса с любым внешним контроллером). Однако ап¬
паратный блок, полностью поддержанный средствами САПР, к тому же
реализующий широко распространенную и весьма актуальную функцию,
гораздо удобнее при разработке и дополнительно освобождает логиче¬
ские ячейки ПЛИС для других операций.
Разделение семейства Virtex-4 на подсемейства. При выбо¬
ре между семействами Virtex-ll и Virtex-ll Pro может возникнуть масса
соображений как в пользу одного, так и в пользу другого решения. На¬
пример, выбор более современной ПЛИС Virtex-ll Pro может оказаться
неким компромиссом: ориентируясь на более высокую рабочую часто¬
ту, разработчик вынужденно соглашается на присутствие в системе не¬
используемых ресурсов — процессорного ядра или высокоскоростных
приемопередатчиков. Видимо, следует признать правильным подход,
при котором ПЛИС большого объема содержат дополнительные устрой¬
ства, но справедлив и тот факт, что далеко не все проекты используют
ресурсы ПЛИС равномерно. Очевидно, что платить за дополнитель¬
ные ресурсы не следует.
С этой точки зрения, разделение семейства Virtex-4 на подсемей¬
ства очень хорошо соответствует намечающимся тенденциям в сфере
разработки программируемых устройств. Три объявленных подсемей¬
ства выглядят действительно адаптированными для трех направлений с
разными требованиями к ресурсам ПЛИС: реализации устройств общего
назначения с интенсивным использованием логических ячеек (подсемей¬
ство LX), цифровой обработки сигналов (подсемейство SX) и, наконец,
проектированию систем на кристалле (для этого предназначено подсе¬
мейство FX). Соответственно, в зависимости от конкретных требований
к объему памяти, производительности в задачах DSP, наличию высо¬
коскоростных интерфейсов и пр., разработчик может ориентироваться
уже внутри семейства, выбирая устройство, наиболее близкое по соот¬
ношению имеющихся ресурсов. Можно заметить, что «специализация»
подсемейств довольно ощутима — так. ПЛИС XC4VSX55 имеет почти
вдвое меньшее число логических ячеек, чем XC2VP100 (и дешевле), од¬
нако содержит 512 блоков DSP вместо 444 умножителей.
Приведенные на рис. 6.7 и 6.8 диаграммы позволяют оценить со¬
отношение между ресурсами разного типа для всех семейств Virtex. На
диаграммах видны основные отличия в удельном весе ресурсов для се¬
мейств Virtex-4 и Virtex-ll/ll Pro Что касается количества устройств
DSP. то различия очевидны. Для подсемейств LX и FX эти ресур-
Рис. 6.7. Зависимость числа блоков DSP от логического объема ПЛИС
Рис. 6.8. Зависимость объема блочной памяти от
Virtex-ll Pro
Virtex-4FX
Virtex-4SX>
Virtex-4LX
Virtex-ip/^
150
Число логических ячеек, тыс. шт.
логического объема ПЛИС
сы достигают своеобразного «насыщения». Действительно, в проек¬
тах, ориентированных на логику, чрезмерно большая производитель¬
ность в задачах DSP обычно не требуется. Особенно это проявля¬
ется для ПЛИС с максимальным числом логических ячеек. Мож¬
но предположить, что именно их большое количество будет опреде¬
ляющим фактором при выборе таких ПЛИС. Соответственно, про¬
чих ресурсов может быть не слишком много. Чуть больше удельный
вес блоков DSP в старших устройствах FX, поскольку несколько ядер
PowerPC могут потребовать и увеличенной производительности окру¬
жающей их матрицы программируемых ресурсов. Наконец, абсолют¬
но очевидна ситуация с подсемейством SX — это прямая ориентация
на задачи DSP.
Подобная же ситуация имеет место и в отношении блочной памя¬
ти. На соответствующей диаграмме также видно «насыщение» для под¬
семейства LX, однако характеристики устройств FX практически ана¬
логичны семейству Virtex-ll Pro. Это нетрудно объяснить одинаковым
назначением блочной памяти в ПЛИС с процессорными ядрами — ис¬
пользование в качестве быстрой накристальной памяти. Для задач DSP
блочная память может использоваться для хранения таблиц коэффи¬
циентов или значений анализирующих функций, поэтому ее удельный
объем чуть выше, чем у остальных семейств.
174
Глава б
Обзор ПЛИС фирмы Xilinx
175
6.3.2. Архитектура и основные особенности
ПЛИС Spartan
По всей видимости, разработка новых устройств с использованием
упомянутых серий не представляет интереса, поэтому они будут рассмо¬
трены ограниченно. Заметим лишь, что архитектура логических ячеек
ПЛИС Spartan/Spartan-XL больше тяготела к серии ХС4000.
Рассмотрим особенности архитектуры логических ячеек подобных
ПЛИС. Матрица основных логических ресурсов состоит из конфигури¬
руемых логических блоков (КЛБ). Каждый блок ПЛИС Spartan состо¬
ит, в свою очередь, из четырех логических ячеек. В основе логической
ячейки находятся два устройства: генератор логических функций (как
правило, 4-входовый) и триггер. Генератор логических функций пред¬
ставляет собой фактически ОЗУ небольшого объема, хранящее непо¬
средственно таблицу истинности (Look-Up Table, LUT), которую следу¬
ет реализовать. Для 4-входового устройства достаточно иметь 16 би¬
тов статического ОЗУ в каждой таблице. FPGA фирмы Xilinx позволя¬
ют также использовать такую таблицу истинности в качестве обычного
ОЗУ с организацией 16x1, а также в качестве 16-разрядного сдвигового
регистра. Такая особенность архитектуры несколько ухудшает произ¬
водительность (за счет необходимости внесения на кристалл дополни¬
тельных цепей управления), однако обеспечивает дополнительные воз¬
можности как разработчику, так и средствам САПР. В конце концов,
производительность сложного проекта за счет большей функциональ¬
ности базовых логических ячеек может оказаться и выше. Второй осо¬
бенностью, характерной для FPGA Xilinx, является наличие аппаратно
реализованных буферов с тремя состояниями, обеспечивающими под¬
ключение выходов триггеров логических ячеек к внутренним трассиро¬
вочным линиям. Подобное решение производит аналогичный эффект —
дополнительный буфер несколько увеличивает задержки распростране¬
ния сигнала (даже если он не используется в проекте), однако появля¬
ется дополнительная возможность для организации сложных мульти¬
плексоров. Необходимо заметить, что в целом ряде семейств FPGA вну¬
тренние буферы с тремя состояниями только эмулируются, но реально
на кристалле не присутствуют. Как можно будет увидеть в дальней¬
шем, эта базовая архитектура на протяжении эволюции серии Spartan
неоднократно изменялась.
Появившееся в 2000 г. семейство Spartan-Il привнесло в архитектуру
low-end ПЛИС достаточно много интересных нововведений. Прежде все¬
го, стало понятно, что линии продуктов FPGA фирмы Xilinx четко раз¬
делились на high-end устройства Virtex и low-end Spartan. Вместе с тем
стало также понятно, что технологические и архитектурные особенности
этих двух совершенно разных по стоимости серий в целом практически
эквивалентны. В общем случае устройства Spartan могут делать практи¬
чески то же самое, что и соответствующие по технологии изготовления
ПЛИС Virtex. Конкретно, семейство Spartan-Il было основано на архи¬
тектуре семейства Virtex, изготовлено по гибридной 0,18/0,22 мкм тех¬
нологии и использовало ту же комбинацию напряжений питания: 2,5 В
для ядра и 3,3 В для блоков ввода-вывода. Для блоков ввода-вывода
обеспечивалась совместимость с 5-вольтовыми сигналами без использо¬
вания внешних токоограничивающих резисторов.
Общая архитектура Spartan-Il, как только что упоминалось, была
очень похожа на архитектуру семейства Virtex. По сравнению с ПЛИС
Spartan/Spartan-XL это означало следующее:
• на кристалл добавлен новый для ПЛИС Spartan вид ресурсов: син¬
хронная блочная память с объемом каждого блока 4096 бит (ана¬
логичные блоки имеются в ПЛИС Virtex);
• для распространения тактового сигнала по кристаллу с минималь¬
ными задержками используются специальные модули с автомати¬
ческой подстройкой задержек (Delay-Locked Loop, DLL) — 4 шт.
на кристалл с возможностью организации до 24 локальных так¬
товых подсетей;
• в логические ячейки добавлены выделенные ресурсы, облегчающие
построение умножителей целочисленных операндов:
• улучшены характеристики цепей ускоренного переноса:
• увеличено количество локальных и глобальных трассировочных ре¬
сурсов.
Наконец, структура и взаимное расположение логических ячеек бы¬
ли существенно скорректированы. Пара логических ячеек стала образо¬
вывать так называемую секцию (slice). Четыре ячейки (или две секции)
совместно с дополнительно введенными локальными ресурсами образу¬
ют собственно конфигурируемый логический блок (КЛБ) Такое реше¬
ние позволило внедрить «внутрь» КЛБ дополнительные трассировочные
ресурсы, позволяющие обеспечить более гибкие возможности совмест¬
ной работы отдельных логических ячеек.
Схема секции КЛБ приведена на рис. 6.9. Семейство Spartan-I! со¬
стоит из шести микросхем объемом 15, 30, 50, 100, 150 и 200 тысяч
системных вентилей. Число логических ячеек находится в пределах
432-5292 (соответственно для младшего и старшего устройств семей¬
ства), а количество 4-килобитных блоков составляет 4-14 (аналогич¬
но). Все ПЛИС доступны как в QFP, так и в BGA вариантах испол¬
нения корпусов.
Уже в следующем, 2001 г., было выпущено семейство Spartan-IIE.
Это семейство было основано на архитектуре ПЛИС Virtex-E. Соответ¬
ственно, напряжение питания ядра составляет 1.8 В, а блоки ввода-
вывода, питаемые максимально от 3,3 В, не совместимы с 5-вольтовыми
сигналами без последовательно включаемых в сигнальные цепи рези¬
сторов (номиналом не менее 120 Ом). Семейство включает в себя семь
микросхем объемом 50, 100, 150, 200. 300. 400 и 600 тысяч систем¬
ных вентилей. Количество логических ячеек и блоков памяти в точ¬
ности соответствует характеристикам устройств предыдущего семейства
176
Глава 6
Обзор ПЛИС фирмы Xilinx
177
G4
G3
G2
G1
FSIN
BY
SR
G4
G3
G2
G1
SIN
CLK
CE
Рис. 6.9. Секция КЛБ ПЛИС Spartan-ll
YB
COUT
Spartan-II. Старшие ПЛИС содержат до 15552 ячеек и до 72 блоков па¬
мяти соответственно.
Характерным является соотношение между семействами Spartan-ll
и Spartan-IIE. В действительности архитектурные различия между ними
весьма и весьма несущественны и следуют в основном из разного техно¬
логического процесса. Устройства Spartan-IIE несколько быстрее, хотя и
не обладают возможностью работать с 5-вольтовыми входными сигнала¬
ми напрямую. Оба семейства поддерживают широкий спектр электриче¬
ских интерфейсов (в том числе высокоскоростные дифференциальные).
В то же время интересно отметить, что если семейство Spartan-ll начина¬
лось с устройства объемом 15 тыс. системных вентилей, то для Spartan-
IIE нижняя планка оказалась поднята уже до 50 тыс. Тем не менее, этот
факт отнюдь не означает отказа от выпуска ПЛИС минимальной стои¬
мости. Напротив, цены на устройства Spartan с появлением описанных
семейств начали достаточно быстро падать.
Семейства Spartan-11/11Е некоторое время являлись, пожалуй, са¬
мыми популярными ПЛИС с архитектурой FPGA фирмы Xilinx. Их
универсальность, весьма низкая цена, доступность в удобных корпусах
QFP (вплоть до 300 тыс. вентилей у Spartan-IIE) и поддержка бесплат¬
ным пакетом САПР Webpack делают процесс проектирования цифровых
устройств на базе ПЛИС довольно простым и недорогим. Совместная
работа ПЛИС и микроконтроллера существенно расширяет возможности
последнего в плане управления периферийным оборудованием, аппарат¬
ной реализации некоторых функций и т.п.
В то же время в существовавшей параллельно серии Virtex про¬
изошло достаточно важное событие — размещение на кристалле вы¬
деленных умножителей независимых операндов с высокой производи¬
тельностью. Семейство Virtex-ll, в котором впервые было введено такое
архитектурное решение, сразу же привлекло повышенное внимание, по¬
скольку наличие предсказуемых по характеристикам, компактных и до¬
вольно эффективных модулей вывело устройства FPGA в первые ряды
по соотношению «производительность/цена». Особенно привлекатель¬
ным было то, что параллельная работа нескольких устройств умножения
на одном кристалле не приводило к «путанице» трассировочных ресур¬
сов и снижению общей тактовой частоты, как это обычно имело место
при реализации умножителей на базе обычных логических ячеек. Од¬
нако эти весьма привлекательные для разработчиков микросхемы до¬
вольно дороги и выпускаются только в корпусах BGA, что переводит
их в совершенно другую категорию.
Тем не менее 2002-2003 годы ознаменовались появлением очередно¬
го семейства Spartan-З. Это семейство полностью отвечает ожиданиям
от данной серии — стало дешевле и дало повышенную производитель¬
ность в типичных задачах. Что самое важное, в составе этого семей¬
ства наконец-то появились выделенные умножители, а также изменена
организация блочной памяти с 4096 бит на 1 Кх18. Иными словами,
архитектура Spartan-З в целом основана на ПЛИС. Virtex-ll. Однако име¬
ются и существенные отличия, характерные скорее для еще более совре¬
менного семейства Virtex-4 и касающиеся непосредственно логических
ячеек (которые практически не изменились при переходе от Spartan-ll
к Spartan-IIE). Интересно отметить, что Spartan-З требуют как минимум
трех источников питания: напряжение питания ядра составляет 1,2 В,
необходим вспомогательный источник питания 2,5 В, а блоки ввода-
вывода могут быть запитаны максимум от 3,3 В.
Имея похожую архитектуру, новое семейство Spartan-З выгодно от¬
личается от Virtex-ll тем, что было изготовлено по современному 90-нм
техпроцессу. Очевидно, это означает как большую производительность
при той же топологии кристалла, так и меньшую цену.
Каждый КЛБ семейства Spartan-З состоит из четырех секций, сгруп¬
пированных в пары (рис. 6.10). Левая пара называется SLICEM и содер¬
жит привычные разработчикам, знакомым с предыдущими семейства¬
ми ПЛИС Xilinx, полнофункциональные логические генераторы, кото¬
рые могут использоваться также в качестве распределенного ОЗУ или
сдвигового регистра. Однако расположенная на рисунке справа пара
SLICEL может реализовать только логику.
Можно довольно долго комментировать подобное новшество, до¬
вольно нетипичное для привычных архитектур ПЛИС. На первый
взгляд, налицо потеря части функциональности логических ячеек, кото¬
рая выгодно отличала недорогие ПЛИС Xilinx. Особенно это касается,
конечно, распределенной памяти. Здесь же следует добавить, кстати,
178
Глава 6
Обзор ПЛИС фирмы Xilinx
179
Левые секции SLICEM | Правые секции SLICEL
(логика или распределенное ОЗУ | (только логика)
CIN
Рис. 6.9. Организация секций КЛБ в ПЛИС Spartan-3
что аппаратная реализация внутренних буферов с тремя состояниями в
данном семействе была заменена на их эмуляцию с помощью програм¬
мируемых мультиплексоров. Итак, часть функциональности логических
ячеек ПЛИС оказалась принесена в жертву уменьшению времени рас¬
пространения сигнала и дальнейшему снижению стоимости.
Очевидно, что невозможно всесторонне оценить все следствия, ко¬
торые могли бы следовать из новой архитектуры. Точно так же невоз¬
можно дать однозначные рекомендации, какие подходы проектирования
позволят в полной мере использовать преимущества новой архитектуры
и минимизировать эффект от недостатков. Тем не менее можно наме¬
тить несколько основных моментов, подлежащих всесторонней проверке
как в тестах, так и на реальных проектах.
Фирма Xilinx уделяет достаточно большое внимание соблюдению
баланса между ресурсами, размещаемыми на кристалле ПЛИС. Одним
из основных моментов, относящихся к структуре КЛБ, является оценка
процентного соотношения распределенной памяти и собственно логиче¬
ских ресурсов. Собственные оценки логической емкости ПЛИС самой
фирмой Xilinx часто приводятся из соотношения «25% ячеек использу¬
ется в качестве распределенной памяти, остальное — в качестве логи¬
ки». Таким образом, по оценке Xilinx, в среднем около четверти ячеек
используется «не по прямому назначению», т.е. в качестве распределен¬
ной памяти или сдвиговых регистров. Ввиду этого решение о дальней¬
шем облегчении функциональности половины логических ячеек выгля¬
дит приемлемым на практике. В самом деле, трудно представить про¬
ект, который по каким-то причинам использует ПЛИС в качестве мелких
блоков памяти, распределенных по всему кристаллу, обладающих в си¬
лу этого плохими временными характеристиками и чрезмерно высокой
относительной ценой. Еще более странно рассматривать такой проект
на фоне присутствия в Spartan-З блочной памяти еще большего объема
(до 1,8 Мбит на кристалле в старших моделях!). Можно предположить,
что большая часть логических ячеек скорее всего будет реализовывать
именно логические функции, а уменьшение максимального объема до¬
ступной распределенной памяти прекрасно компенсируется увеличением
количества блочной (гораздо более эффективной и удобной в использо¬
вании). Наконец, следует все-таки отметить, что распределенная память
в секциях SLICEM так и осталась распределенной по всему кристаллу.
В итоге полнофункциональные SLICEM и облегченные SLICEL вполне
могут дополнять друг друга.
Что касается внутренних буферов с тремя состояниями, то мож¬
но заметить, что выигрыш от их использования появляется в тех слу¬
чаях, когда в проекте требуется мультиплексирование шин с большой
разрядностью, причем число входных шин мультиплексоров также ока¬
зывается достаточно большим. В этих случаях использование буферов
с третьим состоянием оказывается выгоднее, чем каскадное наращива¬
ние логических ячеек (ограниченных по числу входов мультиплексора).
Однако очевидно, что если возможности логических ячеек по реали¬
зации многовходовых мультиплексоров будут улучшены, то и актуаль¬
ность внутренних буферов с тремя состояниями существенно уменьшит¬
ся, Именно такой путь и был реализован в семействе Spartan-З, причем
удаление буферов привело одновременно и к уменьшению задержек, и
к удешевлению микросхем.
Модификации семейства Spartan-З
В конце 2004 и начале 2005 г. фирмой Xilinx были выпущены две
модификации семейства Spartan-З. Говоря о модификациях, имеется в
виду как несущественность отличий архитектуры ПЛИС, так и их ис¬
полнение по тому же 90-нм техпроцессу. Однако особенности обеих
модификаций достаточно интересны.
Появившееся в конце 2004 г. семейство Spartan-3L включает в себя
всего три устройства с емкостями 1 млн, 1,5 млн и 4 млн системных
вентилей. Характеристики этих устройств полностью аналогичны соот¬
ветствующим микросхемам Spartan-З. Символ L в обозначении является
первым символом словосочетания «Low power». Действительно, для
ПЛИС большого объема достаточно серьезной является проблема по¬
требления энергии. Устройства Spartan-3L имеют специальный режим
Hibernate Mode, при котором потребление тока сокращается на 98 %! В
остальном, включая поддержку средствами САПР, эти ПЛИС полностью
соответствуют своим аналогам из базового семейства
Несмотря на сниженную цену, Spartan-ЗЕ содержит довольно инте¬
ресное техническое решение, облегчающее реализацию алгоритмов DSP
180
Глава 6
Обзор ПЛИС фирмы Xilinx
181
Рис. 6.10. Каскадное со¬
единение умножителей
в ПЛИС При реализации алгоритмов, ис¬
пользующих операцию «умножение с на¬
коплением» для потока входных данных,
часто оказывается, что один и тот же
поток данных необходимо умножать од¬
новременно на разные коэффициенты с
накоплением суммы отдельно по каждо¬
му из каналов умножения. Не составля¬
ет особого труда завести входной сигнал
на входы нескольких умножителей, одна¬
ко для этого необходимо задействовать
обычные трассировочные ресурсы. В ре¬
зультате временные характеристики таких
блоков оказываются несколько неидеаль¬
ными, хотя очевидно, что такая задача
довольна типична и ее эффективное ре¬
шение существенно повысит производи¬
тельность всего проекта и характеристи¬
ки изделия в целом. Для реализации по¬
добных алгоритмов блоки умножения в
ПЛИС Spartan-ЗЕ имеют дополнительный
вход, который может каскадно соединять¬
ся с выходом предыдущего умножителя в
колонке. Младшая ПЛИС объемом 100
тыс. вентилей содержит одну, а осталь¬
ные устройства — две колонки умножи¬
телей. Каскадное соединение может быть
использовано для «сквозной» подачи одного из аргументов на все умно¬
жители целой колонки. Умножители могут работать как с каскадируе¬
мым, так и с прямым сигналом, что регламентируется соответствующим
входом (рис. 6.11). В показанном примере нижний умножитель исполь¬
зует Direct-режим и рассматривает в качестве второго операнда число,
подаваемое на его вход В. Остальные умножители в цепочке игнорируют
свои входы В, используя вместо него данные с входа BCIN. На всех вхо¬
дах BCIN при этом присутствует то же самое число, что и поданное на
вход В самого нижнего умножителя. Каскадная передача аргумента за¬
действует только выделенные трассировочные ресурсы, что одновремен¬
но и минимизирует задержки, и освобождает трассировочные ресурсы
общего назначения для выполнения других задач.
Еще одним нововведением (впервые для устройств Xilinx) являет¬
ся возможность загрузки конфигурации непосредственно с NOR-флеш с
8- или 16-разрядной шиной данных. Такой режим освобождает от не¬
обходимости использовать только специальные конфигурационные ПЗУ
производства Xilinx, заменив их практически любой подходящей по объ¬
ему микросхемой флеш-памяти.
Таблица 6.9
Характеристики ПЛИС Spartan-З и Spartan-ЗЕ
ПЛИС
Число
логических
ячеек
Число
системных
вентилей,
тыс. шт.
Распре¬
деленная
память, Кбит
Число
блоков
умножения
Максимальное
число програм¬
мируемых
выводов
Spartan-З —
1,2 В FPGA
с выделенными умножителями
XC3S50
1728
50
12
—
124
XC3S200
4320
200
30
12
173
XC3S400
8064
400
56
16
264
XC3S1000
17280
1000
120
24
391
XC3S1500
29952
1500
208
32
487
XC3S2000
46080
2000
320
40
565
XC3S4000
62208
4000
432
96
712
XC3S5000
74880
5000
520
104
784
Spartan-ЗЕ —
- 1,2 В FPGA с выделенными умножителями
XC3S100E
2160
100
15
4
108
XC3S250E
5508
250
38
12
172
XC3S500E
10476
500
73
20
232
XC3S1200E
19512
1200
136
28
304
XC3S1600E
33192
1600
231
36
376
Рис. 6.12. Максимальный логический объем ПЛИС серии Spartan
Технические характеристики ПЛИС Spartan-З и Spartan-ЗЕ приве¬
дены в табл. 6.9.
Динамика изменения максимального логического объема и напря¬
жения питания ПЛИС Spartan приведены на рис. 6.12 и 6.13.
Итак, можно выделить некоторые тенденции в развитии архитектур
недорогих микросхем программируемой логики:
• усиление специализации логических блоков недорогих ПЛИС с од¬
новременным введением в кристалл выделенных ресурсов для ре¬
шения типичных задач цифровой обработки сигналов;
182
Глава 6
Обзор ПЛИС фирмы Xilinx
183
Рис. 6.13. Напряжения питания ядра (ближний ряд) и блоков ввода-вывода
(дальний ряд) ПЛИС серии Spartan
• увеличение трассировочных ресурсов ПЛИС, в том числе ввод в
ее состав выделенных линий для наиболее эффективного решения
задач распространения критичных сигналов;
• повышение тактовой частоты системы, в том числе за счет более
эффективного распространения по кристаллу тактового сигнала с
помощью блоков DLL и отказа от использования асинхронного ин¬
терфейса памяти;
• увеличение количества поддерживаемых блоками ввода-вывода
электрических интерфейсов;
• переход к новым техпроцессам изготовления ПЛИС с уменьшением
технологического допуска и увеличением количества слоев метал¬
лизации. понижение напряжения питания ядра и соответствующее
снижение стоимости ПЛИС
Сводная информация по FPGA фирмы Xilinx представлена в
табл. 6.10. Приведенная в таблице информация позволяет получить
представление о логической емкости и основных возможностях разных
серий ПЛИС. Необходимо иметь в виду, что для определения реальных
возможностей ПЛИС по реализации того или иного цифрового устрой¬
ства важны не только количественные характеристики, выражающиеся
в количестве логических ячеек, но и возможности этих ячеек.
Обратите внимание также, что в обозначении ПЛИС присутствует
их информационная емкость в тысячах эквивалентных логических вен¬
тилей (например, XCV50 имеет почти 58 тыс. вентилей). Несмотря на
то что такой способ обозначения весьма распространен среди произво¬
дителей ПЛИС, в действительности оценка информационной емкости по
количеству вентилей не всегда является достаточно адекватной.
Под эквивалентным вентилем понимается некоторая базовая логи¬
ческая структура, являющаяся минимальной единицей для построения
цифровых узлов. В цифровой электронике существуют две разновидно¬
сти подобных структур - базисы Пирса (2И-НЕ) и Шеффера (2ИЛИ-НЕ)
С помощью этих элементов можно построить любой цифровой узел, и
Таблица 6.10
Технические характеристики ПЛИС FPGA серии Spartan ранних семейств
ПЛИС
Число
логических
ячеек
Число
системных
вентилей,
тыс. шт.
Распреде¬
ленная
память, бит
Блочная
память.
бит
(число блоков)
Максимальное
число програм¬
мируемых
выводов
Spartan/Spartan-XL — 5/3,3 В FPGA
XCS05(XL)
238
5
3200
—
77
XCSIO(XL)
466
10
6272
—
112
XCS20(XL)
950
20
12800
—
160
XCS30(XL)
1368
30
18432
—
192
XCS40(XL)
1862
40
25088
—
205
Spartan-ll — 2,5 В FPGA
XC2S15
432
15
6144
16384 (4)
86
XC2S30
972
30
13284
24576 (6)
132
XC2S50
1728
50
24576
32768 (8)
176
XC2S100
2700
100
38400
40960 (10)
196
XC2S150
3888
150
55296
49152(12)
260
XC2S200
5292
200
75264
57344 (14)
284
Spartan-
НЕ — 1,8 В FPGA
XC2S50E
1728
50
24576
32768 (8)
182
XC2S100E
2700
100
38400
40960 (10)
202
XC2S150E
3888
150
55296
49152 (12)
263
XC2S200E
5292
200
75264
57344 (14)
289
XC2S300E
6912
300
98304
65536 (16)
329
XC2S400E
10800
400
153600
163840 (40)
410
XC2S600E
15552
600
221184
294912 (72)
514
оценка информационной емкости ПЛИС вполне может быть выполне¬
на на данной основе.
Для перевода физических ресурсов ПЛИС в эквивалентные логи¬
ческие вентили используются разнообразные методики подсчета. При
этом существует некоторая неоднозначность, поскольку, например, 4-
входовый логический генератор может быть оценен в 4 или 4,5 логи¬
ческих вентиля, в зависимости от того, используется он как устрой¬
ство комбинаторной логики или как устройство памяти. Для решения
этой проблемы обычно принимается, что какая-то часть ПЛИС реали¬
зует распределенную память. Очевидно, что чем больше ресурсов бу¬
дут реализовывать распределенную память, тем выше окажется оценка
информационной емкости ПЛИС.
В то же время целый ряд цифровых узлов использует физические
ресурсы ПЛИС далеко не полностью, исключая какие-то фрагменты ло¬
гических ячеек из дальнейшего проектирования. Например, в ячейке,
содержащей 4-входовый логический генератор, триггер и буфер с тре¬
мя состояниями, в конкретном проекте может быть реализован только
триггер и 2-входовая логическая функция. Возможности архитектуры
ПЛИС при этом явно избыточны, однако неиспользованные физические
ресурсы данной ячейки уже не могут быть использованы для реализации
других цифровых узлов того же проекта. Поэтому реальная информаци¬
184
Глава 6
Обзор ПЛИС фирмы Xilinx
185
онная емкость создаваемых на базе ПЛИС устройств оказывается суще¬
ственно ниже, чем максимальная емкость, приводимая производителем.
Несколько более адекватной характеристикой информационной ем¬
кости является количество конфигурируемых логических блоков (CLB).
Поскольку синтез структуры кристалла производится средствами СА¬
ПР на основе именно этих ресурсов, можно ожидать, что оценка по
количеству CLB будет более точно отражать действительные возмож¬
ности ПЛИС.
Для FPGA тем не менее не следует ожидать 100%-ного использова¬
ния CLB для реализации устройств, задаваемых разработчиком. В ре¬
альных проектах особенности внутренних соединений, структуры проек¬
та и прочих факторов обычно приводят к тому, что часть CLB реали¬
зует вспомогательные трассировочные функции, становясь недоступной
для размещения в них собственно блоков проекта. Данная проблема
становится актуальной при сложной, разветвленной внутренней струк¬
туре проекта с использованием многоразрядных магистралей данных.
На практике для серии Spartan верхняя граница успешной трассиров¬
ки проекта лежит в пределах 60.. 70 % общего количества CLB. Для
семейств Virtex/E/ll, Spartan-ll, у которых количество трассировочных
ресурсов существенно увеличено, можно ожидать и 80...90%-ного ис¬
пользования CLB.
Тенденция к увеличению количества трассировочных ресурсов вооб¬
ще характерна для современного этапа развития архитектур ПЛИС. Уве¬
личивается как количество глобальных трассировочных ресурсов, так и
сложность локальных соединений. Например, можно обратить внима¬
ние, что наряду с понятием CLB (конфигурируемый логический блок)
используется термин slice (секция), представляющий собой «фрагмент»
CLB. Это позволяет ввести между отдельными секциями дополнитель¬
ные локальные трассировочные ресурсы, облегчающие построение са¬
мых разнообразных цифровых устройств.
Приведенные сведения не следует рассматривать как принципиаль¬
ные недостатки ПЛИС В действительности данная технология имеет
существенные отличия от дискретной электроники и специализирован¬
ных цифровых устройств микроэлектроники, которые изготавливаются
строго для решения какой-то определенной задачи. Введение в состав
ПЛИС избыточных элементов и завышение их логической емкости и
площади кристалла диктуется прежде всего необходимостью предоста¬
вить в распоряжение разработчика мощного инструмента по реализа¬
ции самых разных цифровых устройств и их быстрой трассировки сред¬
ствами САПР.
Обобщая представленную вводную информацию, можно отметить
основные особенности ПЛИС:
• возможность быстрого изменения принципиальной электрической
схемы устройства на стадии проектирования, в том числе с исполь¬
зованием языков описания аппаратуры (HDL);
Таблица 611
Число программируемых выводов в устройствах FPGA серии Spartan
Т ил
корпуса
Число
выводов
Размеры,
мм
Семейство Spartan-З
50
200
400
1000
1500
2000
4000
5000
PQFP(PQ)
VQFP(VQ)
TQFP(TQ)
FGA (FT)
FGA (FG)
208
100
144
256
320
456
676
900
1156
30,6x30,6
16x16
16x16
22x22
23x23
23x23
31x31
31x31
35x35
124
63
97
141
63
97
173
141
97
173
221
264
173
221
333
391
221
333
487
489
565
633
712
633
712
Т ип
корпуса
Число
выводов
Размеры,
мм
Семейство Spartan-IIE
50
100
150
200
300
400
600
PQFP (PQ)
TQFP (FT)
FGA (FT)
FGA (FG)
208
144
256
456
676
30,6x30,6
22x22
22x22
23x23
27x27
146
102
182
146
102
182
202
146
182
256
146
182
289
146
182
329
182
329
410
329
514
Т ип
корпуса
Число
выводов
Размеры,
мм
Семейство Spartan-ll
15
30
50
100
150
200
PQFP(PQ)
VQFP(VQ)
TQFP (TQ)
CSP (CS)
FGA (FG)
208
100
144
144
256
456
30,6x30,6
16x16
22x22
12x12
17x17
23x23
60
86
86
132
60
92
92
140
92
176
140
92
176
196
140
176
260
140
176
284
• малое время цикла «редактирование схемы — программирование
ПЛИС — тестирование» при полном отсутствии каких-либо мон¬
тажных работ и материальных затрат:
• поддержка внутри одного кристалла практически всего спектра со¬
временных технических решений в области цифровой электроники
с гарантированными временными характеристиками:
• относительно дешевые (в том числе бесплатные — ISE WebPack)
средства сквозной разработки, работающие на платформе PC под
управлением Windows, простые средства загрузки кристалла, да¬
ющие возможность с минимальными затратами провести освоение
данной технологии.
Тенденция к последовательному улучшению характеристик ПЛИС
в конечном счете создала ситуацию, когда «время жизни» отдельного
семейства существенно сокращается. Уже сейчас серия ХС4000. которая
предшествовала устройствам Spartan, не рекомендуется к использова¬
нию в новых разработках. Та же участь, по всей видимости, в ближай¬
шем будущем ожидает семейства Spartan и Spartan-XL. Такая относи¬
тельно быстрая смена поколений ПЛИС на первый взгляд ставит под
вопрос обоснованность их применения в повседневной практике разра¬
186
Глава б
Обзор ПЛИС фирмы Xilinx
187
ботки цифровых устройств. Однако здесь можно указать на то, что
логические объемы в сотни тысяч и миллионы вентилей уже сейчас за¬
ставляют использовать современные методики проектирования, основан¬
ные на использовании языков описания аппаратуры (например, VHDL
и Verilog). Такие описания позволяют в первую очередь получить аб¬
страгированное от конкретного семейства ПЛИС описание цифрового
устройства. Впоследствии, при появлении семейства с увеличенным бы¬
стродействием, меньшей ценой и т.д., можно будет в короткие сроки
произвести переход на новую элементную базу. Таким образом, поря¬
док разработки устройств на базе ПЛИС подразумевает определенную
мобильность, однако позволяет оперативно осваивать самую современ¬
ную элементную базу, в короткие сроки получая максимальную выго¬
ду от ее использования
Подробно методика проектирования цифровых устройств с исполь¬
зованием языка проектирования аппаратуры VHDL будет рассмотрена
в последующих главах.
6-4- Сравнительный анализ архитектуры
основных семейств FPGA фирмы Xilinx
В настоящее время основные производители ПЛИС FPGA поддер¬
живают как минимум две серии этих устройств. Одна из серий пред¬
ставляет собой наиболее производительный (и дорогой) вариант реали¬
зации программируемых устройств, в то время как вторая обеспечивает
приемлемый уровень функциональности и производительности по суще¬
ственно меньшей цене. Это справедливо и для ПЛИС фирмы Altera (се¬
рии Stratix и Cyclone), и для ПЛИС Xilinx (Virtex и Spartan). В данном
разделе проводится сравнительный анализ технических характеристик
основных серий FPGA фирмы Xilinx.
Общие вопросы сравнения характеристик ПЛИС. Чтобы по¬
лучить представление о характере обсуждаемого вопроса, обратимся к
аналогичной технической проблеме, существующей в области процессо¬
ров общего назначения и, по всей видимости, известной каждому, кто
имеет отношение к информационным технологиям или хотя бы выби¬
рал конфигурацию домашнего компьютера. Длительное время в сфере
РС обсуждается вопрос — как соотносятся линейки продукции Pentium
и Celeron фирмы Intel? Является ли «облегченный» процессор Celeron
низкопроизводительным бюджетным решением, покупка которого мо¬
жет быть произведена только при сильной стесненности в средствах,
или же напротив, «полнофункциональные» Pentium-ы не оправдывают
себя, а их дополнительные возможности совершенно не требуются ря¬
довому пользователю? Масса аргументов «за» и «против» привела в
конце концов к появлению публикаций, которые тщательно анализиро¬
вали, в каких именно условиях использование hi-end процессоров оправ¬
дывает себя. Имея доступ к подробной аналитической информации и
результатам тестирования производительности процессоров в конкрет¬
ных программных пакетах, пользователь мог сознательно сделать выбор
в пользу того или иного решения.
Совершенно аналогичная ситуация складывается в настоящее вре¬
мя в области устройств программируемой логики. Являясь теми же
цифровыми микросхемами, ПЛИС в полной мере подвержены тенден¬
циям, характерным для цифровой микроэлектроники вообще. Так же,
как и процессоры, ПЛИС могут быть выполнены либо на грани тех¬
нологических возможностей, обеспечивая максимальную на настоящий
момент производительность (и иметь весьма высокую цечу), либо на¬
против, обеспечить разумный минимум возможностей, который все еще
не приводит к резкому и неоправданному удорожанию. Перефразируя
принцип Парето, можно сказать, что 80 % функциональности ПЛИС
можно обеспечить, реализовав 20 % аппаратных ресурсов. Естественно,
такое процентное соотношение, взятое из первоисточника, весьма далеко
от реального, однако общая картина выглядит именно так — основные
функции ПЛИС могут быть выполнены достаточно небольшим набором
логических модулей. Добавление дополнительных устройств в скором
времени приведет к «насыщению» характеристик — пропорциональный
рост производительности прекратится. Соответственно, имеется некото¬
рая архитектура, обеспечивающая оптимальное соотношение «произво-
дительность/цена». Из современной роли ПЛИС в разработке цифровых
устройств проистекает дополнительное требование к такой архитектуре
— совместимость с наиболее производительными hi-end устройствами
на уровне исходных текстов описания аппаратуры. Иными словами,
основные цифровые узлы, разрабатываемые с использованием языков
описания аппаратуры (HDL), должны реализовываться как на наиболее
производительных, так и на дешевых ПЛИС. Во втором случае возмож¬
на некоторая потеря производительности и увеличение размера проекта
за счет того, что ряд цифровых узлов будет выполнен с использованием
большего количества логических ячеек.
Таким образом, вопросы, возникающие при выборе серии ПЛИС,
аналогичны вопросам о выборе модели процессора. Является ли се¬
рия Virtex неоправданным вложением средств? Или напротив, облег¬
ченные устройства Spartan принципиально не позволяют реализовать
какие-либо возможности обработки сигналов или реализации цифровых
устройств и являются, таким образом, вынужденным компромиссом?
Ответ на этот вопрос не имеет смысла без описания условий примене¬
ния этих серий. Кроме того, необходимо подробно рассмотреть, какие
именно характеристики ПЛИС подлежат сравнению и каким образом они
отражаются на параметрах проектируемых изделий.
Номенклатура серий Virtex и Spartan. Основой ПЛИС FPGA
является матрица логических ячеек (logic cells), окруженных блоками
ввода-вывода, непосредственно подключаемыми к внешним выводам
корпуса ПЛИС. Между отдельными ячейками, а также между матри-
188
Глава 6
Обзор ПЛИС фирмы Xilinx
189
цей ячеек и блоками ввода-вывода находятся программируемые трас¬
сировочные ресурсы.
Virtex, так и Spartan, содержат на кристалле достаточно большое ко¬
личество разнообразных специализированных ресурсов, которые часто
вносят существенные коррективы в процесс проектирования цифровых
устройств. К таким устройствам относятся:
Кроме того, современные семейства ПЛИС, как
Vir¬
tex
Virtex-E
Virtex-
EM
Vir¬
tex-11
Virtex-
ll Pro
ресурсы для
ресурсы, предназначенные для умень-
требующихся для по-
цепи
построения
умножителей: вентили
выделенные трассировочные
шения задержки распространения сигналов,
строения типовых узлов цифровой схемотехники (например,
ускоренного переноса);
выделенные
MULT-AND с уменьшенной задержкой распространения и аппа¬
ратно реализованные блоки умножения независимых 18-разрядных
операндов в семействах Virtex-ll/lI Рго/4, Spartan-З;
блочная память;
аппаратно реализованные процессорные ядра PowerPC РРС 405
(только Virtex-ll Pro и Virtex-4 FX).
Перечень дополнительных узлов на этом не исчерпывается (осо¬
бенно это относится к семейству Virtex-4, в составе которого имеется
внушительное количество специализированных аппаратных устройств).
Однако для сравнительного анализа двух основных серий FPGA Xilinx
этих сведений вполне достаточно
На рис. 6.14 представлена диаграмма развития архитектуры двух
основных серий FPGA — Virtex и Spartan. Родоначальники второй се¬
рии — семейства Spartan и Spartan-XL — на диаграмме не показаны
как устаревшие. В действительности эти семейства не вполне соотно¬
сятся с основным направлением данной книги, поскольку их архитек¬
тура основана на еще более ранней серии FPGA Xilinx под названием
ХС4000. Эта серия, имевшая несколько модификаций с разным напря¬
жением питания, была достаточно широко распространена чуть менее
10 лет назад. Ее архитектура оказалась достаточно удачной и явилась,
по сути дела, отправной точкой для дальнейшего развития. Однако
опыт использования этих ПЛИС показал, что достаточно богатые воз¬
можности логических ячеек, с одной стороны, используются не пол¬
ностью, а с другой — в архитектуре имеются «бутылочные горлышки»,
затрудняющие эффективную реализацию некоторых наиболее типичных
блоков. Производители встали перед дилеммой: наращивать функцио¬
нальность логических ячеек и сложность трассировочных ресурсов или
же, напротив, обеспечить эффективную реализацию только для наибо¬
лее типичных цифровых узлов, резко снизив общую производительность
ПЛИС при выходе за пределы, очерченные производителем. Необходи¬
мо заметить, что дополнительным фактором, действовавшим в то вре¬
мя (как, впрочем, и сейчас), была необходимость укрепления позиций
программируемой логики в качестве альтернативы заказным микросхе¬
мам. Для этого требовалось иметь доступными недорогие устройства,
Аппарат¬
ное
процес¬
сорное
ядро
Power
PC
Virtex-4
LX, SX,
FX
Virtex-5
Power
PC
(толь¬
ко FX)
Power
PC
(толь¬
ко FX)
Spar-
Spartan-
tan-ll
HE
Spar-
tan-3
Spar-
tan-3E
Блочная
4 Кбит
18 Кбит
36 Кбит
память
DSP
Вентили
MULT _AND
для
построения
умножителей
Выделенные блоки
умножения 18x18
(и MULT_AND в
логических
ячейках)
Блоки
DSP48
Питание, В
2,5
1,8
1,5
1,5
1,2
1,2
Блоки
DSP48E
Рис. 6.14. Основные семейства ПЛИС FPGA фирмы Xilinx
которые обеспечивали бы гибкость и реконфигурирование на этапе раз¬
работки в сочетании с невысокой ценой в процессе производства неболь¬
ших партий. Именно такую роль сыграли первые семейства новой серии
Spartan, которые в целом были основаны на архитектуре ХС4000, но
за счет отказа от некоторых редко используемых возможностей их це¬
ну удалось существенно снизить. Необходимо отметить, что принципи¬
ального ограничения возможностей при этом не произошло, поскольку
ряд функций, которые ранее реализовывались в одном конфигурируе¬
мом логическом блоке ХС4000, сохранили возможность реализации на
базе двух блоков Spartan.
Данная информация сейчас может рассматриваться в основном в ка¬
честве исторических сведений Несмотря на то, что поставки устройств
ХС4000 еще возможны, динамика развития в этой области такова, что
даже продукция 5-7 летней давности на сегодняшний день является кан¬
дидатом на замену. Однако отказ от рассмотрения семейств Spartan и
Spartan-XL (и более ранних) имеет под собой еще одно серьезное осно¬
вание. Как известно, основной САПР ПЛИС фирмы Xilinx, под назва¬
нием Xilinx Foundation Series, претерпев множество изменений, начиная
с версии 4.1 был существенно переработан. Фактически состоялся пе¬
реход к новой САПР — Integrated Software Environment (ISE), которая
на сегодняшний день является основной. Версия 4.2 была последней,
190
Глава 6
Обзор ПЛИС фирмы Xilinx
191
в которой поддерживалась старая САПР. Вместе с интерфейсом разра¬
ботчика и названием в новой линейке САПР был кардинально изменен
маршрут проектирования. Предыдущий маршрут, основанный на схемо¬
техническом представлении (точнее, формате описания схем edif), хо¬
рошо подходил для ПЛИС объемом до десятков тысяч эквивалентных
вентилей, но трассировка достаточно крупного проекта могла занимать
несколько часов. Новый маршрут, XST, был основан на представлении
проекта в виде описания на одном из языков высокого уровня VHDL
или Verilog (в современных версиях можно использовать оба этих язы¬
ка в одном и том же проекте). Вопросы реализации цифровых узлов
с помощью edif и HDL можно отдаленно сравнить с реализацией про¬
граммных модулей на языке ассемблера и языках высокого уровня. Ко¬
нечно, грамотный программист часто способен вручную оптимизировать
небольшой фрагмент кода, но разработка крупной программы целиком
на ассемблере представляет собой слишком сложную задачу, с кото¬
рой современный оптимизирующий компилятор языка высокого уровня
в целом справится лучше. Аналогичная ситуация сложилась и в сфе¬
ре проектирования ПЛИС. Вынужденная потеря контроля над «низким
уровнем» описания проекта скомпенсировалась тем, что новый маршрут
проектирования обеспечил существенно большую скорость трансляции
и вполне приемлемую производительность для наиболее типичных ци¬
фровых узлов. Алгоритмы преобразования HDL-описаний и трассиров¬
ки соединений также постоянно совершенствуются, поэтому в настоящее
время, говоря о разработке проекта для ПЛИС объемом в сотни тысяч
вентилей, необходимо иметь в виду именно HDL. Некоторый минус для
разработчиков, использовавших ХС4000 и Spartan, заключался в том,
что эти устройства новым маршрутом проектирования не поддержива¬
лись, и поддержка так и не была добавлена.
В этой связи имеет смысл рассматривать только семейства ПЛИС,
последовавшие за серией ХС4000. Все они поддерживаются маршру¬
том XST и вполне могут быть использованы в современных разработках.
Однако следует заметить, что даже семейства, приведенные на диаграм¬
ме, можно условно отнести к двум «поколениям». Несмотря на общую
схожесть архитектур, сумма количественных изменений и существенно
иные технико-экономические характеристики позволяют провести гра¬
ницу между двумя группами семейств FPGA. К первой группе условно
отнесем семейство Virtex и основанное на нем семейство Spartan-ll, а
также последовавшие за ним Virtex-E, Virtex-ЕМ и также основанные на
их архитектуре Spartan-IIE. Ко второй —более поздние Virtex-ll, Virtex-ll
Pro, Virtex-4 (в трех модификациях), Spartan-З и Spartan-ЗЕ. Последние
семейства расположены на диаграмме между Virtex-ll Pro и Virtex-4, по¬
скольку с точки зрения архитектуры они являются недорогими аналога¬
ми Virtex-ll/lI Pro, но выполнены по 90-нм техпроцессу, как и Virtex-4.
Сравниваемые технические характеристики ПЛИС. Объем.
Современные ПЛИС (особенно архитектуры FPGA) имеют достаточно
сложную внутреннюю структуру, которая не может быть адекватно оце¬
нена набором из двух-трех характеристик В то же время непосред¬
ственно в обозначении конкретных устройств присутствует информа¬
ция, отражающая их технические характеристики (например, объем в
эквивалентных вентилях или логических ячейках). Может сложить¬
ся впечатление, что эта информация является достаточной для оцен¬
ки ПЛИС. Однако в этом случае серия Virtex выглядит избыточной и
резко проигрывает серии Spartan по соотношению «цена/объем ресур¬
сов». Для прояснения ситуации необходимо проанализировать, какие
дополнительные факторы оказывают влияние на итоговые характери¬
стики изделия на базе ПЛИС.
При обозначении производителями своих микросхем цифро-буквен¬
ные комбинации в ряде случаев носят исключительно номинальный ха¬
рактер и позволяют только идентифицировать устройство. Однако ино¬
гда в обозначении можно выделить отдельные поля, указывающие на
объем, производительность, точность (разрядность) и прочие параме¬
тры, которые производитель считает значимыми. При этом срабатывает
принцип «большее число соответствует лучшим характеристикам выпус¬
каемого устройства», поэтому потребитель может ориентироваться на
положение «номера» в общем ряде продукции данной фирмы. В этой
связи интересно посмотреть на коррективы, вносимые фирмой Xilinx в
обозначения своих ПЛИС в течение последних 10 лет.
В отношении обозначения устройств CPLD выбираемый параметр
очевиден. Поскольку структура CPLD достаточно проста, и ресурсом,
подлежащим учету, является количество макроячеек, именно оно при¬
сутствует в составе обозначения большого количества семейств таких
микросхем. Например, в ХС9536 имеется 36 макроячеек, а в ХС9572 —
72. Однако для FPGA ситуация не столь очевидна. Поскольку даже ран¬
ние семейства имели в своем составе по крайней мере три типа ресурсов:
логические ячейки, блоки ввода-вывода и трассировочные ресурсы, их
соотношение требовалось отразить в названии. К примеру, для одной из
устаревших в настоящее время серии ХС3000 непосредственной корреля¬
ции между последними цифрами номера микросхемы и какими-либо па¬
раметрами логической емкости не прослеживается. Однако устройство с
большим номером в обозначении имеет и большее количество програм¬
мируемых ресурсов (всех типов). Естественно стремление разработчиков
(и потребителей) получить в свое распоряжение некоторую интеграль¬
ную характеристику, которую можно было бы ввести в наименование
ПЛИС и использовать как обобщенную оценку ее емкости. Возвращаясь
к примеру с процессорами, можно сказать, что потребители могут оце¬
нить для себя отношение «цена/производительность», ориентируясь на
тактовую частоту, сообщаемую производителем.
Для ПЛИС вариантом интегральной оценки ее емкости стал так на¬
зываемый эквивалентный логический вентиль (logic gate). Из цифровой
схемотехники известно, что любое цифровое устройство можно создать,
192
Глава 6
Обзор ПЛИС фирмы Xilinx
193
используя только элементы 2I/I-HE (базис Шеффера) или 21/1ЛI/I-HЕ (ба¬
зис Пирса) Таким образом, для оценки сложности цифровой схемы
можно указать количество базовых элементов, требуемых для ее реали¬
зации. Ресурсам, входящим в состав ПЛИС, также можно установить
некоторую «стоимость» в логических вентилях. В этом случае у про¬
изводителя появляется возможность обосновать, например, почему со¬
отношение цен между двумя ПЛИС не равно в точности соотношению
количества их логических ячеек. Если в одной из ПЛИС присутству¬
ют дополнительные ресурсы (например, блоки ввода-вывода), что уве¬
личивает стоимость изготовления, то появляется возможность указать
больший объем этой ПЛИС в логических вентилях. Подобный подход,
основанный на включение в обозначение ПЛИС количества логических
вентилей (в тысячах штук), является основным для многих произво¬
дителей, в том числе и Xilinx.
Обращаясь к технической документации на ПЛИС различных се¬
мейств, можно обнаружить, что оценка емкости в вентилях носит ин¬
тервальный характер. Что интересно, производители ПЛИС указывают
в обозначении своих устройств максимальную емкость, тогда как ниж¬
нее значение этого интервала может быть меньше до 3 раз. Например,
для ПЛИС Spartan-11-100 интервал логической емкости указан как 37-
100 тыс. вентилей. Очевидно, нижняя граница соответствует ситуации,
когда имеющиеся аппаратные ресурсы ПЛИС используются пользова¬
тельским проектом крайне неэффективно. Тем не менее потребитель,
читая обозначение микросхемы, ориентируется именно на верхнюю гра¬
ницу. Можно добавить, что даже в рамках принятых методик оценки
логической емкости существует множество способов регулировать этот
параметр в зависимости от принимаемых производителем предположе¬
ний о характере проектов, которые будут реализовываться в этих ПЛИС.
Например, логический генератор, входящий в состав ячейки ПЛИС, мо¬
жет быть сконфигурирован как комбинаторная логика или как распре¬
деленная память. Предположение о том, что ПЛИС будет реализовы¬
вать именно распределенную память, позволяет несколько завысить ее
логическую емкость. В этом случае в зависимости от принятого про¬
изводителем соотношения «память/логика» емкость в вентилях может
быть как завышена, так и уменьшена.
Кроме этого, в современных семействах ПЛИС на кристалле рас¬
полагается большое количество выделенных ресурсов, реализованных
аппаратно. С одной стороны, они не являются программируемыми в
общепринятом смысле этого слова, с другой — занимают некоторую
площадь кристалла и увеличивают таким образом его стоимость. В та¬
бл. 6.12 приведены технические характеристики ряда ПЛИС FPGA, от¬
носящимся к разным семействам.
Таблица разделена на две части. В первой части сравниваются
ПЛИС начального уровня, заявленные производителем как имеющие
объем около 100 тыс. эквивалентных вентилей. Для семейства Spartan-
IIE уточнения не делается, его емкость приводится в документации как
Таблица 612
Аппаратный состав ПЛИС FPGA одинаковой логической емкости
ПЛИС
Число вентилей,
тыс. шт.
Число логических
ячеек
Распределен¬
ная память, бит
Блочная память,
бит (блоков)
XC2S100E
100
2700
38400
40960 (10)
XCV100
108,904
2700
38400
40960 (10)
XCV100E
128,236
2700
38400
81920 (20)
XCV1000
1124,022
27648
393216
131072 (32)
XCV1000E
1569,178
27648
393216
393216 (96)
XC3S1000
1000
17280
122880
442368 (24)*
XC2V1000
1000
5120
163840
737280 (40)*
* В семействах Spartan-З и Virtex-ll с каждым блоком памяти ассоциирован умно¬
житель независимых 18-разрядных операндов
100 тыс. вентилей ровно, тогда как для семейств Virtex и Virtex-E де¬
лается уточнение. Сравнивая оценку в вентилях, нетрудно заметить,
что при совершенно одинаковом количестве логических ячеек и распре¬
деленной памяти (что естественно, поскольку распределенная память
реализуется именно с помощью ячеек), в устройствах Virtex появляют¬
ся «лишние» вентили. Что касается сопоставления Virtex и Virtex-E,
то здесь нетрудно заметить, что во втором устройстве объем блочной
памяти больше на 40 кбит. Однако таблица не дает ответа на вопрос,
чем отличаются Virtex и Spartan-IIE.
Вторая часть таблицы представляет еще больший интерес. В ней
приведены ПЛИС номинальным объемом миллион логических венти¬
лей (т.е. в 10 раз больше, чем в первой части таблицы). Считая, что
в оценку по вентилям основной вклад вносят логические ячейки, гру¬
бый подсчет дает 27 тысяч логических ячеек для всех этих устройств.
Примерно такое количество и имеется в ПЛИС Virtex/Virtex-E, одна¬
ко в устройствах следующего поколения логических ячеек существенно
меньше. Чем же это скомпенсировано, с учетом того, что в семействе
Virtex-ll миллион вентилей заявляется для устройства, содержащего в
5 раз меньше логических ячеек?
Ответ заключается в том, что с появлением таких семейств, как
Virtex-ll, Spartan-З и далее, в ПЛИС увеличился удельный вес выделен¬
ных ресурсов. Опыт использования ПЛИС показывает, что матрица про¬
граммируемых логических ячеек дает возможность выполнять быстрое
«прототипирование» цифровых устройств, но их стоимость и задерж¬
ки распространения сигналов существенно больше, чем для ASIC та¬
кой же функциональности. Соответственно, ПЛИС имеет смысл приме¬
нять только в том случае, если разработка ASIC экономически нецелесо¬
образна. Это означает, что достаточно выпускать небольшие количества
ПЛИС, чтобы покрыть потребности рынка в аппаратных платформах
для прототипирования и решениях для уникальных задач с небольши¬
ми объемами производства. Естественно, такое положение невыгодно
для производителей ПЛИС, которые вынуждены искать способы сниже¬
1.3
194
Глава 6
Обзор ПЛИС фирмы Xilinx
195
ния их стоимости и/или повышения привлекательности для потребите¬
ля. Если пути снижения стоимости более менее понятны (уменьшение
количества программируемых ресурсов в серии Spartan), то одним из
путей повышения производительности ПЛИС стала их ориентация на
решение задач цифровой обработки сигналов. Даже ранние семейства
Spartan обеспечивали меньшую стоимость одной операции «умножение с
накоплением», чем существовавшие в то время сигнальные процессоры,
несмотря на то что при этом ресурсы кристалла использовались далеко
не полностью. Очевидным стало решение упростить реализацию алго¬
ритмов цифровой обработки сигналов, разместив на кристалле ПЛИС
соответствующие ресурсы. В ранних семействах Spartan и Virtex исполь¬
зовались специальные вентили MULT-AND с уменьшенной задержкой
распространения, ускоряющие работу перемножителей Свое логическое
завершение этот процесс получил в Virtex-ll, где появились полнофунк¬
циональные устройства умножения независимых операндов. Более того,
блочная память в этих ПЛИС была организована таким образом, что¬
бы ее выход мог быть подан непосредственно на один из входов блока
умножения (что требуется для целого ряда DSP-задач). В наиболее
современном на настоящее время семействе Virtex-4 сделан еще один
шаг — добавлен 48-разрядный аккумулятор, работающий на той же ча¬
стоте, что и блочная память и блоки умножения. При максимальной
тактовой частоте 500 МГц и 512 блоках DSP ПЛИС позволяют достичь
пиковой производительности в 256 млрд, умножений с накоплением в
секунду, что для современных сигнальных процессоров является недо¬
стижимым результатом. Разумеется, необходимо сделать поправку, что
речь идет только о распараллеливаемых вычислениях. Однако даже
с этой поправкой понятно, что реализация выделенных блоков умно¬
жения открыла для ПЛИС новую нишу применения, где они способны
успешно конкурировать с ASIC. Таким образом, при оценке «вентиль¬
ной» емкости ПЛИС необходимо учитывать, что на кристалле разме¬
щены еще и DSP-устройства.
Еще одним весьма важным в архитектуре ПЛИС событием стало раз¬
мещение на кристалле устройств Virtex-ll Pro ядра процессора PowerPC
405. Этот 32-разрядный процессор реализован вместе с кэш-памятью
кода и данных (по 16 Кбит) и вспомогательными устройствами, соеди¬
няющими его с матрицей логических ячеек. Очевидно, что его учет в
вентилях значительно увеличит емкость кристалла, введя в заблужде¬
ние разработчика, который будет рассчитывать на соответствующее ко¬
личество программируемых ресурсов. Поэтому некоторое время назад
в обозначении ПЛИС состоялся переход к указанию количества логи¬
ческих ячеек, а не вентилей. Фирма Xilinx перешла к такому стилю
обозначения, начиная с семейства Virtex-ll Pro. ПЛИС серии Spartan
пока обозначаются по количеству логических вентилей.
В целом можно констатировать, что в современных условиях оцен¬
ка в вентилях является достаточно условной. При разработке изделия
на базе ПЛИС обычно становятся понятны требования к основным про¬
граммируемым ресурсам — логическим ячейкам и выделенным блокам
умножения. В зависимости от серии ПЛИС соотношение между коли¬
чеством этих ресурсов несколько меняется, что позволяет выбрать наи¬
более адекватное данной задаче устройство. Необходимо отметить, что
данный подход нашел свое отражение в номенклатуре нового семейства
Virtex-4, содержащего три подсемейства, различающихся именно соот¬
ношением логических ячеек, DSP-модулей и специальных узлов.
Еще больше вопросов возникает при рассмотрении характеристик
семейства Virtex-5, в котором 4-входовая LUT заменена на 6-входовую.
Обозначение производителя выбирается не по числу реально имею¬
щихся логических ячеек, а по числу их «функциональных эквивален¬
тов», т.е. действительное количество ячеек переводится в эквивалент¬
ный объем 4-входовых LUT. В итоге для определения количества связок
«LUT+триггер» номер, содержащийся в обозначении ПЛИС, необходи¬
мо поделить на 1,5.
Резюмируя, можно заметить, что современные ПЛИС содержат
большое число разнородных ресурсов, которые трудно оценить каким-
либо определенным интегральным показателем. В зависимости от ис¬
пользуемых цифровых узлов и сферы применения, наилучшие харак¬
теристики могут быть достигнуты при использовании разных семейств
ПЛИС. В последнее время наблюдается тенденция разбиения отдель¬
ных семейств на подсемейства, каждое из которых нацелено на опре¬
деленную сферу применения.
Сравниваемые технические характеристики ПЛИС. Произво¬
дительность. Производительность проекта на базе ПЛИС может быть
оценена множеством различных способов. Для современной микроэлек¬
троники наиболее интересными параметрами являются максимальная
тактовая частота проекта и максимальная задержка распространения
сигнала (эти параметры, очевидно, взаимосвязаны). Ситуация с обозна¬
чением характеристик ПЛИС в этой связи также несколько неоднознач¬
на. Для ее прояснения обратимся еще раз к более простым устройствам
с архитектурой CPLD. Основной характеристикой их производительно¬
сти является задержка «контакт-контакт», т.е. время распространения
сигнала от входного контакта корпуса ПЛИС до выходного контакта
с учетом того, что внутри ПЛИС сигнал проходит через одну макроя¬
чейку. Это время (в наносекундах) обычно входит в состав обозначе¬
ния CPLD. Напр имер, в составе семейства ХС9500 имеются устройства
с вр еменами распространения сигнала 5, 6. 7, 10, 15 и 20 нс. Оценка
быстродействия такой ПЛИС при большей сложности проекта доста¬
точно тривиальна: две последовательно соединенные макроячейки со¬
ответствуют вдвое большему времени распространения сигнала. Такой
простой анализ временных характеристик проекта является следствием
простой архитектуры CPLD и отсутствию в них выделенных модулей
ввода-вывода. Однако и возможности CPLD в организации электриче¬
ских интерфейсов достаточно скромны.
1.3*
196
Глава 6
Обзор ПЛИС фирмы Xilinx
197
Что касается устройств FPGA, то их более сложная архитектура
обуславливает и повышенную сложность организации распространения
сигнала по кристаллу. Прежде всего, логические ячейки основной ма¬
трицы таких ПЛИС не соединяются с выводами кристалла непосред¬
ственно. Вместо этого электрический интерфейс обеспечивается бло¬
ками ввода-вывода (10В — Input/Output Block), которые обеспечива¬
ют существенно большую функциональность, чем в устройствах CPLD,
но и вносят дополнительные задержки в распространение сигнала. Та¬
кое положение дел делает оценку производительности FPGA достаточ¬
но нетривиальным. Прежде всего, необходимо заметить, что в ранних
семействах FPGA использовалась и маркировка, включающая в себя за¬
держку распространения «контакт-контакт», как и для CPLD Однако
данный подход оставляет производителям ПЛИС еще больше свободы
для маневра, поскольку такая задержка весьма существенно зависит от
пути распространения сигнала. В простейшем случае задержка распро¬
странения сложится из задержки входного блока ввода-вывода, задерж¬
ки на внутренней логике (для определенности примем, что логическая
функция реализуется одной программируемой ячейкой) и задержки на
выходном блоке ввода-вывода Однако такая оценка может носить чрез¬
мерно синтетический характер. Во-первых, для разработчика основной
интерес представляет задержка, которую ПЛИС обеспечит на реальных
проектах, а не пример, выбранный разработчиком и подчеркивающий
наиболее интересные архитектурные и технологические находки. Во-
вторых, большая, чем у CPLD, сложность трассировочных ресурсов об¬
условливает слабо прогнозируемую величину задержки, дополнительно
появляющейся как результат использования более или менее сложной
трассировки конкретного проекта. Более того, для устройств FPGA су¬
ществует возможность использования логических ячеек для «сквозно¬
го» (wire-through) распространения сигнала в том случае, когда матри¬
ца трассировочных ресурсов уже не в состоянии обеспечить требуемую
сложность внутренних соединений. В этом случае итоговая рабочая ча¬
стота проекта может оказаться существенно ниже заявляемой произво¬
дителем для «идеального» случая.
Можно также заметить, что, к примеру, для FPGA Spartan-IIE суще¬
ствует в общей сложности около 100 (!) различных временных задержек,
характерных для того или иного внутреннего модуля. Поэтому указать
какое-либо «наиболее характерное время» без ущерба для краткости и
информативности описания практически невозможно. Однако между
задержками распространения сигнала на отдельных узлах внутри ПЛИС
существуют определенные соотношения. Можно ожидать, что ПЛИС,
выполненная по более совершенному техпроцессу, обеспечит пропорци¬
онально меньшие задержки на всех своих узлах. Таким образом, можно
описать каждую группу устройств внутри определенного семейства не¬
ким «классом» скорости, который будет характеризовать техпроцесс и
относить конкретную микросхему к одной из временных групп внутри
каждого семейства. Такой параметр для FPGA Xilinx носит название
«speed grade» и выбирается по принципу «больше значение — выше так¬
товая частота». Данный принцип обозначения временных задержек дей¬
ствителен для обеих основных серий этой фирмы. Конкретные величи¬
ны задержек, связанные с отдельными устройствами или путями распро¬
странения сигнала, необходимо уточнять в технической документации.
Логические ячейки. Рассмотрим сравнительные характеристики
основных программируемых ресурсов обеих серий ПЛИС, начиная с наи¬
более показательного — программируемых логических ячеек. Архи¬
тектура логических ячеек серий Spartan и Virtex в целом весьма похо¬
жа. Обе серии базируются на логических ячейках, разбитых на секции
(slice). В составе каждой секции находится 4-входовый логический ге¬
нератор (Look-Up Table, LUT), триггер и некоторое количество выде¬
ленных ресурсов: цепи ускоренного переноса, выходной буфер с тре¬
мя состояниями и пр.
С точки зрения основных программируемых ресурсов различные се¬
мейства FPGA (не только внутри продукции Xilinx, но и других произ¬
водителей) отличаются незначительно. Фактически, разница состоит в
величинах задержек распространения сигнала для различных вариантов
использования логической ячейки Что касается продукции Xilinx, то бо¬
лее дорогие ПЛИС Virtex обеспечивают меньшие задержки, чем Spartan.
Но более интересны свойства логических ячеек, проистекающие из на¬
личия в них дополнительных устройств.
В архитектуре логических ячеек FPGA семейств Spartan-11/11Е и
Virtex-E нашел наиболее явное отражение подход фирмы Xilinx к обес¬
печению функциональности ПЛИС. Особенно интересно рассмотреть
именно эти, на данный момент уже не самые современные семейства (но
все еще сохраняющие свою актуальность), ввиду того, что на момент их
активного распространения существовал альтернативный подход к рас¬
пределению по аппаратной реализации функциональных возможностей
ПЛИС, предлагаемый фирмой Altera. Вопрос заключался в том. что ис¬
пользовавшаяся структура логической ячейки имела как минимум два
узла с альтернативными реализациями.
Во-первых, логический генератор (Look-Up Table), основанный на
статической памяти, одновременно представлял собой фрагмент ОЗУ с
организацией 16x1 С помощью несложной внутренней логики эта па¬
мять могла быть предоставлена в распоряжение разработчика (причем в
двупортовом варианте). Кроме того, имелась возможность организации
в этом блоке быстрого сдвигового регистра с организацией опять-таки
16 xl. Безусловно, такое решение позволяло разработчику более гибко
управлять ресурсами ПЛИС, и дополнительно экономило их по сравне¬
нию с реализацией тех же цифровых узлов на триггерах. Поскольку на
каждый LUT приходится только один триггер, при реализации распре¬
деленной памяти или сдвиговых регистров имеется выигрыш в 16 раз!
Однако дополнительные цепи, регулирующие использование LUT в но¬
вом качестве, вносят и дополнительную задержку В связи с этим ПЛИС
198
Глава 6
Обзор ПЛИС фирмы Xilinx
199
Xilinx показывали в простых тестах меньшую производительность, чем
конкурирующие продукты фирмы Altera, в которых использование LUT
в качестве распределенной памяти было невозможно.
Во-вторых, подключение выходов логических ячеек к трассировоч¬
ной матрице также может быть выполнено различными способами. Наи¬
меньшие задержки обеспечиваются при использовании выходных муль¬
типлексоров, однако необходимость мультиплексирования большого ко¬
личества выходов приводит к их каскадному наращиванию. Альтерна¬
тивным вариантом является использование буферов с тремя состояни¬
ями. В этом случае становится возможным параллельное объединение
выходов отдельных ячеек, а увеличение количества параллельно объ¬
единяемых выходов не приводит к наращиванию «уровней» логики. Од¬
нако буфер с тремя состояниями имеет большую задержку распростра¬
нения сигнала., которая добавляется даже в том случае, если этот буфер
не используется. В данном случае Xilinx опять выбрал для своих ПЛИС
вариант с большей функциональностью (и чуть большими задержками
распространения), а в ПЛИС Altera схемы, использующие такие буфе¬
ры, эмулировались с помощью мультиплексоров. Необходимо отметить,
что эффективность того или иного решения существенно зависит как
от количества соединяемых параллельно выходов, так и от технологии
изготовления. Если для ПЛИС Virtex-E и аналогичных продуктов ли¬
нейки Spartan выигрыш от использования буферов с тремя состояния¬
ми достигался начиная с 16-32 объединяемых сигналов, то с развитием
технологии изготовления ПЛИС актуальность такой замены несколько
уменьшилась. Кроме того, объединение 16 и более сигналов подразу¬
мевает достаточно сложную структуру проекта, и наводит на мысль об
использовании дорогого кристалла большой логической емкости. Соот¬
ветственно, для дешевых ПЛИС серии Spartan такими буферами можно и
пожертвовать. Данное архитектурное изменение и было сделано в семей¬
стве Spartan-З, где внутренние буферы с тремя состояниями аппаратно не
реализованы, а эмулируются внутренними трассировочными ресурсами
(использование сигналов «Z» в НDL-описаниях по-прежнему возможно).
Однако в семействе Virtex-ll, к архитектуре которого близко семейство
Spartan-З, буферы с тремя состояниями реализованы аппаратно.
Вопрос использования или неиспользования буферов с тремя состо¬
яниями весьма неоднозначен (учитывая, что он имеет свое отношение к
конкурентной борьбе между двумя ведущими производителями FPGA).
В некоторых случаях явное указание использования внутренних буферов
позволяет разгрузить трассировочные ресурсы ПЛИС и улучшить харак¬
теристики проекта. Однако в данном случае более важным является то,
что в архитектурах ПЛИС находят отражение современные тенденции в
микроэлектронике. В частности, буферы с тремя состояниями исчезли
из наиболее современных ПЛИС, выполненных по 90-нм техпроцессу, по¬
скольку выигрыш от их использования здесь будет наблюдаться только
при очень большом количестве мультиплексируемых линий.
F-
О
—I
СО
Рис. 6.15. Схема секции ПЛИС Spartan-
200
Глава 6
Обзор ПЛИС фирмы Xilinx
201
CL S x
0 О
OQQQQOQO О
ХГСЭСЧх-
■'Т СО 04 т~ (П (П (П (И
0000§§gg
□ FF
□ LATCH
D Q
Y
CE
CK
SR REV
4
□ z
l_ CD
О Ф
о. ос
гое
ZJ _£Z
QO?
□ □
_1 LL LL
□ □□
Рис. 6.16. Схема секции ПЛИС Virtex-ll
'Т СО 04
О 0 0 0
Рис. 6.17. Схема секции ПЛИС Virtex-4
° ZE
U
и_<;
и I
□□
Ш iC
QUO
_jQZ СГ
□ □□
М" СО 04
< < < <
Q
Q
О
ID
Ш
Ш
w
09
w
ZD
ZD
ZD
co
04
T—
О
0
0
§
£
£
Q
П
О
04
DC
T—
0
CL
0
V- t.
202
Глава 6
Обзор ПЛИС фирмы Xilinx
203
Схемы секций семейств Spartan-З, Virtex-ll и Virtex-4 представле¬
ны соответственно на рис. 6.15—6.17. Для Spartan-З и Virtex-4 пока¬
заны верхние секции и часть общей логики. Назначение этих рисун¬
ков — продемонстрировать общую схожесть архитектур последних се¬
мейств ПЛИС. Тем не менее можно отметить некоторые моменты, сви¬
детельствующие об «облегчении» устройств Spartan. В основном это
касается чуть меньшей сложности внутренних трассировочных ресурсов
и меньшему количеству дополнительных выходов секции.
Интересным является также анализ организации внутренних муль¬
типлексоров в логических ячейках. Как уже упоминалось, они служат
для объединения нескольких входных линий. В действительности такие
устройства необходимы для нормального функционирования логических
ячеек, поскольку в проекте может потребоваться использовать выходной
сигнал логической ячейки как непосредственно после LUT, так и после
триггера той же ячейки. Поэтому часть мультиплексоров, входящих в
логические ячейки, может быть использована для формирования более
сложных узлов комбинаторной логики. Такие программируемые муль¬
типлексоры обозначаются как Fx, где х — номер в порядке возрастания
иерархии в общей структуре программируемых ресурсов. Количество и
организация этих мультиплексоров также оказывает существенное вли¬
яние как на цену кристалла, так и на его технические характеристики.
На рис. 6.18 показаны примеры организации мультиплексоров в
двух семействах, относящихся к разным сериям FPGA Xilinx. На этом
рисунке можно видеть, что более простое устройство Spartan-IIE содер¬
жит только мультиплексоры F5 (по одному на L.UT) и объединяющий
их выходы мультиплексор F6. В ячейках Virtex-ll организация более
сложная: каждая ячейка включает в себя как мультиплексоры, объеди¬
няющие выходы отдельных LUT, так и мультиплексоры более высокого
уровня (F7 и F8). обеспечивающие уже объединения «через секции».
Такая организация дает возможность создавать более сложные устрой¬
ства, как это показано в табл. 6.13.
Таблица 6.13
Аппаратные затраты на создание мультиплексоров (в секциях ПЛИС)
для различных семейств FPGA
Мультиплексор
Spartan-11 /11Е
Virtex/Virtex-E
Virtex-ll и
выше, Spartan-З
4:1
1
1
8:1
2
2
16:1
5
4
32:1
9
8
Блоки ввода-вывода. Удельный вес блоков ввода-вывода в об¬
щей площади и стоимости кристалла относительно невелик, а потери
привлекательности устройства для пользователя от снижения их функ¬
циональности могут быть весьма существенны Поэтому на протяже¬
нии развития архитектуры ПЛИС блоки ввода-вывода в сериях Spartan
3)
Рис. 6.18. Организация мультиплексоров в семействах Spartan-IIE (а)
и Virtex-ll (6)
и Virtex имели практически одинаковые возможности, отличаясь, прав¬
да, задержками распространения сигнала. Некоторые различия все же
имеются: например, Virtex-ll поддерживает 25 single-ended стандартов
ввода-вывода, а Spartan-З — только 19 (хотя отличия касаются в основ¬
ном высокоскоростных стандартов, для которых у Spartan-З реализова¬
ны не все варианты напряжений питания). В остальном возможности
этих серий достаточно похожи, включая даже триггеры с возможностью
DDR, размещаемые и в более дешевых устройствах Spartan. Такой под¬
ход дает возможность не заботиться о смене электрических стандартов
вместе со сменой ПЛИС (что вполне может произойти в том случае,
если разработчик выполнил прототипирование на устройстве Virtex, по
результатам чего оказалось, что необходимую производительность мо¬
жет обеспечить и гораздо более дешевая ПЛИС Spartan).
Трассировочные ресурсы. Кроме отображения (тар) цифровых
узлов на отдельные логические ячейки, требуется также распределить
их по кристаллу и запрограммировать электрические соединения между
отдельными ячейками (place & route). Реализация всего многообразия
соединений, характерных для проектов различного типа, представля¬
ет собой достаточно сложную задачу. Обычное увеличение количества
204
Глава 6
Обзор ПЛИС фирмы Xilinx
205
трассировочных линий и точек их подключения к логическим ячейкам
не вполне решает задачу качественной трассировки. Кроме увеличения
площади кристалла (и его удорожания) в этом случае будет наблюдаться
ухудшение временных характеристик чрезмерно длинных линий, пыта¬
ющихся обеспечить большое количество связей. В то же время какая-то
часть сигналов, от которых в большой степени зависят временные ха¬
рактеристики всего проекта в целом, требуют быстрого распространения
по кристаллу. Поэтому современные ПЛИС содержат иерархически ор¬
ганизованные уровни трассировочных ресурсов, обеспечивающих баланс
между количеством соединений и их временными характеристиками.
Основная и наиболее явная часть трассировочных ресурсов называ¬
ется главной трассировочной матрицей (Global Routing Matrix, GRM) и
к ней вполне применимы рассуждения о трассировочных линиях, при¬
веденные выше. Эту матрицу можно условно считать «ресурсами обще¬
го назначения», поскольку достаточно легко подобрать примеры, когда
существенно лучшие результаты достигались бы с использованием ре¬
Синхронный стиль проектиро-
тактового сигнала.
сурсов совершенно иного типа.
Наиболее ярким примером такого ресурса являются глобальные ли¬
нии распространения
вания в современных условиях наиболее предпочтителен (исследование
этого вопроса является темой отдельной большой публикации), поэтому
эффективность распределения по кристаллу тактового сигнала являет¬
ся, в некотором роде, определяющей для успешной реализации проекта,
работающего на большой частоте. Эту задачу несколько облегчает тот
факт, что тактовый сигнал подается на вполне определенный (такто¬
вый) вход триггеров логических ячеек и тактовые входы выделенных
устройств с синхронным интерфейсом (например, блочной памяти). По¬
этому тактовые линии не перегружены коммутационными устройствами
и могут быть более или менее равномерно распределены по кристал¬
лу, обеспечивая минимальные относительные задержки распростране¬
ния Эффективность работы этих линий дополнительно обеспечивается
блоками автоподстройки задержки (Delay Locked Loop, DLL), а в более
поздних ПЛИС — блоками управления тактовым сигналом (Digital Clock
Management, DCM). Подробное описание этих устройств вряд ли целесо¬
образно приводить в данной книге, поскольку с точки зрения сравнения
возможностей серий Spartan и Virtex более интересной будет информа¬
ция о количестве таких блоков.
использовавшие DLL, обычно содержали по че-
Эти входы, по одному на каждую «четверть» бло-
Ранние семейства,
тыре таких устройства, подключаемых к так называемым глобальным
тактовым входам.
ков ввода-вывода, представляют собой обычные программируемые вхо¬
ды, пригодные к использованию разработчиком, однако блоки автопод¬
стройки задержки могут располагаться только после них. На этот мо¬
мент всегда необходимо обращать внимание при разработке устройств
на ПЛИС. Для семейств Vi rtex/E/Sparta n-11/11E использовались первич¬
ные (primary) и вторичные (secondary) тактовые входы. Функциональные
возможности для всех этих семейств в принципе одинаковы, хотя в более
скоростных устройствах Virtex реализованы и более скоростные блоки.
Четыре устройства управления тактовым сигналом (каждое со сво¬
им входом) позволяют организовать на одном кристалле четыре неза¬
висимые области, каждая из которых использует собственный тактовый
сигнал. Такое свойство становится особенно привлекательным при орга¬
низации распределенных вычислительных систем, когда на одном кри¬
сталле располагаются несколько устройств, каждое из которых может
быть независимо включено или выключено, переведено на пониженную
частоту и т.п. Соответственно, управление тактовым сигналом является
дополнительным предметом для обсуждения. В этой связи интерес¬
но, что все устройства Spartan-З содержат по четыре DCM, вплоть до
объема в 5 млн вентилей (кроме самого младшего устройства, в кото¬
ром таких блоков нет), а в более мощной серии Virtex (имея в виду
устройства Virtex-ll и выше, в которых и появились DCM) их количе¬
ство составляет 4, 8 или 12 в зависимости от объема кристалла. Уве¬
личенное количество независимых тактовых сетей, которые могут быть
реализованы в этих ПЛИС, позволяет говорить, что данная серия го¬
раздо больше предназначена для построения высокопроизводительных
распределенных систем обработки сигналов. Разумеется, возможностей
аналогичных блоков семейства Spartan-З это не отменяет, но опять-таки
складывается впечатление, что ПЛИС Virtex предназначены для рабо¬
ты «без ограничений» (разработка уникальных высокопроизводитель¬
ных устройств или прототипирование новых изделий, когда разработ¬
чик не хочет ограничивать себя возможностями платформы), а серия
Spartan больше предназначена для относительно небольших партий из¬
делий, когда становятся понятными требования к аппаратной платфор¬
ме, и окончательно определяется, какая именно из ПЛИС Spartan удо¬
влетворяет требованиям проекта.
Если тот факт, что тактовые сигналы крайне желательно подклю¬
чать к вполне определенным выводам ПЛИС, широко известен разработ¬
чикам, то. как правило, не существует особенной необходимости инте¬
ресоваться внутренним строением прочих трассировочных ресурсов. Ор¬
ганизацию внутренних соединений с их помощью берут на себя сред¬
ства САПР, выбирающие оптимальные способы соединения отдельных
логических ячеек.
Очевидным решением является прямое соединение соседних ячеек.
Однако при этом такие виды связей, как магистрали данных, длинные
линии с большим коэффициентом разветвления и прочие подобные им,
реализуются весьма неэффективно. Действительно, передать сигнал на
5-ю ячейку в том же ряду оказывается возможным только с помощью
пяти последовательных передач сигнала соседним ячейкам С другой
стороны, реализовать соединения «каждый с каждым» в ПЛИС объемом
несколько десятков тысяч ячеек попросту нереально.
В этой связи в FPGA Xilinx комбинируются несколько видов трас¬
сировочных ресурсов (рис. 6.19):
206
Глава 6
Обзор ПЛИС фирмы Xilinx
207
CLB
...
CLB
CLB
...
CLB
CLB
...
CLB
CLB
...
CLB
CLB
...
CLB
6 6 6 6 6
8 а)
в) г)
Рис. 6.19. Иерархия трассировочных ресурсов FPGA Xilinx
а — длинные линии (long line), идущие вдоль ряда логических ячеек
и подключаемые к каждой шестой ячейке в ряду;
6— Hex line, подключаемые к каждой третьей ячейке;
в — Double line, подключаемые через одну ячейку;
г— уже упоминавшиеся выше прямые соединения (direct line), под¬
ключающие ячейку к каждой из 8 соседних.
Очевидно, что простые проекты можно реализовать, используя не¬
большое количество трассировочных линий. Это дает возможность
упростить топологию кристалла, уменьшив таким образом его цену —
явно напрашивающееся решение для серии Spartan. Действительно, для
простых проектов вполне достаточно относительно простой трассиро¬
вочной матрицы. Однако экономия на трассировочных ресурсах в высо¬
копроизводительных high-end FPGA может привести к весьма неприят¬
ным эффектам. В частности, при больших коэффициентах заполнения
кристалла задержки распространения резко увеличиваются (трассировка
насыщенного проекта достаточно сложна для САПР). Наиболее непри¬
ятным для разработчика может стать появление так называемых wire-
through логических ячеек, или, в переводе, ячеек, реализующих сквоз¬
ное соединение. При недостаточном количестве трассировочных линий
и невозможности пустить проводник «в обход» САПР иногда удается
использовать внутренние ресурсы ячейки таким образом, чтобы они пе¬
редавали на выход копию входного сигнала. Естественно, задержки сиг¬
нала, пропущенного через комбинаторную логику ячейки, возрастают, и
таких ситуаций следует всячески избегать. Более того, при этом первона¬
чальные оценки разработчика, относящиеся к требуемому логическому
объему ПЛИС, необходимо скорректировать в большую сторону. Таким
образом, недостаток трассировочных ресурсов может стать источником
целого комплекса негативных явлений, и этого следует избегать, осо¬
бенно для high-end FPGA.
Таблица 6.14
Количество трассировочных линий в ПЛИС различных семейств
(на каждый ряд или колонку логических ячеек)
ПЛИС
Long
Ytx
Double
Direct lines
Spartan-I 1
12
96
—
24
Virtex-ll Pro
24
120
40
16
Следует подчеркнуть, что решение САПР об использовании ячеек
в качестве своеобразного трассировочного ресурса нельзя считать не¬
эффективным. Напротив, возможность реализации такого «последнего
средства» свидетельствует о некотором алгоритмическом запасе устой¬
чивости САПР. Альтернативой явился бы отказ трансляции некоторых
проектов, наступающий при относительно небольшом коэффициенте ис¬
пользования кристалла.
Точное количество трассировочных линий каждого типа, к сожале¬
нию, приводится в документации не для всех семейств ПЛИС. Тем не
менее в табл. 6.14 приведены данные для семейств Spartan-ll и Virtex-ll
Pro. Данные примеры относятся не только к различным сериями, но и
к различным «поколениям» FPGA, поскольку разница между архитек¬
турами Virtex/Spartan-11 и Virtex-ll Pro довольно ощутима.
С учетом описанных выше характеристик трассировочных ресурсов
сведения, представленные в таблице, достаточно просто поддаются ин¬
терпретации. Отметим лишь, что количество длинных линий на каждый
ряд/колонку в Virtex-ll Pro ровно в 2 раза больше. Это дает возмож¬
ность эффективно реализовывать вычислительные системы с общими
магистралями данных, идущими вдоль ряда или колонки ячеек.
Блочная память. Блочная память относится к выделенным ре¬
сурсам ПЛИС. В ее отношении следует сказать, что различия между
отдельными семействами в основном количественные — объем памя¬
ти и ее максимальная тактовая частота выше у серии Virtex. Внутри
семейств имеется различие в способе организации памяти При пере¬
ходе к семействам Virtex-ll и Spartan-З блоки памяти объемом 4 кбит
были заменены на 18-кбитные блоки, ассоциированные с выделенными
блоками умножения (т.е. выход каждого блока памяти подключается к
одному из входов блока умножения, что облегчает реализацию таких
задач, как перемножение входного потока данных с таблицей, храня¬
щейся в блочной памяти).
Соотношение между количеством логических ячеек и блоков памя¬
ти для более ранних семейств, использующих блоки памяти объемом
4 кбит, показано на рис. 6.20. На этом рисунке опять можно увидеть,
что серия Spartan рассматривается в основном как недорогая платфор¬
ма, способная в принципе реализовать все необходимые разработчику
функции Однако для младших ПЛИС этой серии число блоков памяти
приблизительно в 2 раза меньше, чем у аналогичных по числу ячеек
микросхем Virtex. Число блоков выравнивается только у старших кри¬
сталлов. Для Spartan-llЕ это микросхемы объемом 400 и 600 тыс. ло-
208
Глава 6
Обзор ПЛИС фирмы Xilinx
209
Virtex-E
Spartan-IIE
О 5 10 15 20
Число логических ячеек, тыс. шт.
Рис. 6.20. Зависимость числа 4-кбитных блоков памяти от логической емкости
ПЛИС
гических вентилей, которые можно рассматривать в качестве дешевых
только с некоторым допущением
Таким образом, и в этом случае серию Spartan можно рассматри¬
вать как некий компромиссный вариант реализации программируемой
платформы. Реализованные в ней блоки памяти совершенно аналогич¬
ны по функциональным возможностям блокам памяти в более мощных
устройствах Virtex-E, но количество этих блоков выбрано таким образом,
что их достаточно для большинства относительно несложных проектов,
которые имеют хорошие шансы стать серийными. В то же время Spartan
не всегда обеспечивают разработчику свободу маневра.
Поскольку в более современных семействах FPGA блоки памяти, как
уже упоминалось, тесно связаны с выделенными умножителями, целе¬
сообразно рассмотреть их в следующем параграфе.
Выделенные умножители. Характеристики ПЛИС в задачах ци¬
фровой обработки сигналов в большой степени определяются возможно¬
стью этих устройств реализовывать параллельную обработку цифрового
потока. Для этой задачи используются прежде всего выделенные умно¬
жители, являющиеся основой для выполнения операции «умножение с
накоплением». Подчеркнем, что от эффективности выполнения именно
этой операции зависит достаточно большое число алгоритмов цифро¬
вой обработки сигналов, и в данном случае FPGA довольно устойчиво
заняли свою нишу, обеспечивая самую низкую удельную стоимость од¬
ной математической операции. Разумеется, следует заметить, что вы¬
игрыш от использования ПЛИС наблюдается в тех случаях, когда тре¬
буется параллельная обработка входного потока данных. В этом случае
большое количество умножителей (их число варьируется от 4 до 512)
обеспечивает очень высокую производительность на единственном кри¬
сталле. Ничто не мешает также использовать ПЛИС в качестве мощно¬
го DSP-сопроцессора в составе системы на базе микропроцессора или
микроконтроллера.
Из предыдущего материала постепенно складывалось впечатление,
что в ПЛИС Virtex стараются воплотить наиболее современные архитек¬
турные и технологические решения, обеспечив разработчику максималь¬
Число логических ячеек, тыс. шт.
Рис. 6.21. Зависимость числа выделенных умножителей от логической емкости
ПЛИС
но гибкую и производительную платформу. В то же время ПЛИС Spartan
комплектуются «по остаточному принципу», но с сохранением основных
функциональных особенностей. Исходя из этого можно ожидать, что
и в отношении выделенных умножителей будет складываться подобная
же картина: максимум ресурсов для Virtex-ll и разумный минимум для
Spartan-З. Графики на рис. 6.21 хорошо иллюстрируют это. Здесь опять
же некоторым исключением являются старшие модели Spartan-З, кото¬
рые с трудом можно отнести к устройствам начального уровня.
Производительность. Как следует из результатов тестов, все
FPGA показывают устойчивый рост тактовой частоты при переходе к
более современному семейству. Дополнительно у более современных
семейств оказываются больше и тактовые частоты работы выделенных
устройств — блочной памяти и умножителей. Это относится в том чи¬
сле и к более дешевым ПЛИС серии Spartan.
Наконец, некое общее впечатление о соотношении производитель¬
ности различных семейств ПЛИС дают графики, представленные на
рис. 6.22 И 6.23. Эти графики представляют собой зависимости так¬
товой частоты счетчика с разрядностью 8-64, реализованного в раз¬
личных семействах FPGA. Данный тест, несмотря на его синтетический
характер, позволяет прояснить два вопроса. Во-первых, при малой раз¬
рядности счетчика основная задержка распространения сигнала будет
определяться блоками ввода-вывода и эффективностью распределения
тактового сигнала внутри ПЛИС При увеличении разрядности сигнал
необходимо каскадно распространить по отдельным разрядам счетчи¬
ка, причем снижение тактовой частоты будет в этом случае зависеть от
характеристик трассировочных ресурсов, а конкретнее — линий ускорен¬
ного переноса, специально предназначенных для построения подобных
схем. Можно сравнить изменения как при переходе между семействами
одной серии (Spartan-IIE —> Spartan-З и Virtex-ll — Virtex-4 —г Virtex-
5), так и между ПЛИС разных серий (Virtex-ll и Spartan-IIE, Virtex-4 и
Spartan-З). Результаты довольно интересны. Переход к 90-нм техпроцес¬
су вызвал в одном случае ощутимый рост тактовой частоты (Virtex) и
практически незаметное ее изменение (Spartan). При этом серия Virtex
14
210
Глава 6
Обзор ПЛИС фирмы Xilinx
211
Тактовая
1 1 частота
Рис. 6.22. Характеристики выделенных умножителей современных семейств
FPGA
Максимальное
число умножителей
=г 600
1—
0 10 20 30 40 50 60 70
Разрядность счетчика
Рис. 6.23. Характеристики производительности некоторых семейств FPGA
сохраняет 1,5-2-кратное превосходство (впрочем, соотношение цен на
эти серии примерно такое же). Отмечая, что нижняя граница работы
счетчика все равно не опускается ниже 120 МГц, можно опять сделать
вывод, что для серии Spartan сохраняется разумный компромисс между
производительностью и ценой. При этом тактовая частота для основной
матрицы программируемых ресурсов повышается постольку, поскольку
улучшается технология изготовления цифровых устройств.
Конфигурирование и поддержка САПР. Здесь остается повто¬
рить сформулированные выше тезисы. Все семейства ПЛИС имеют оди¬
наковые базовые функциональные возможности. САПР, оборудование
для программирования и конфигурационные флеш-ПЗУ для обоих се¬
мейств полностью одинаковы. Более того, для проектов, не использу¬
ющих аппаратно-специфичные устройства, сохраняется переносимость
между отдельными семействами и даже сериями, что дает возможность
на ранних этапах разработки оттранслировать проект в различные се¬
мейства ПЛИС и сравнить их характеристики, сообщаемые средствами
синтеза. Семейства Spartan поддерживаются бесплатной версией САПР
ISE Webpack вплоть до довольно больших объемов, что делает их иде¬
альным вариантом для начала работы с программируемой логикой —
начальные вложения в комплектующие и программное обеспечение при
этом минимальны.
Различия в режимах конфигурирования прекрасно иллюстрируют
соотношения между сериями. Для серии Virtex существует режим ча¬
стичной реконфигурации кристалла. Очевидно, это актуально для слож¬
ных систем большого объема, когда часть проекта продолжает работу во
время смены конфигурации остальной части кристалла. ПЛИС Spartan в
этом качестве использовать вряд ли целесообразно. Однако в семействе
Spartan-ЗЕ введена весьма интересная возможность загрузки конфигура¬
ции не из специальной флеш-ПЗУ, а из обычной NOR-флеш. Очевид¬
но, второе решение гораздо дешевле. Хотя конфигурация может быть
загружена в ПЛИС с помощью, например, микроконтроллера, интер¬
фейс с NOR-флеш позволяет реализовать полностью автономное «двух¬
чиповое» решение (поскольку все тактовые сигналы и перебор адресов
выполняет сама ПЛИС). Как второстепенный факт следует отметить
также, что ПЛИС Virtex, имеющие внутри большее количество различ¬
ных ресурсов, требуют и большего объема конфигурационных данных,
чем аналогичные по логическому объему Spartan. Однако практиче¬
ская разница для потребителя при этом несущественна, поскольку раз¬
личие при использовании «штатных» флеш-ПЗУ от Xilinx проявляется
только на достаточно емких кристаллах. Наиболее удобная и дешевая
серия конфигурационных флеш-ПЗУ начинается с устройства объемом
1 Мбит, которое обеспечивает загрузку 2-3 младших устройств в ка¬
ждом из семейств FPGA.
Области применения. Из сравнения технических характеристик
и аппаратного состава основных серий ПЛИС можно сделать некоторые
предположения о преимущественных областях их использования. Кроме
подхода, основанного на использовании неограниченной реконфигуриру¬
емости ПЛИС, при проектировании нельзя не учитывать возможность их
использования в качестве замены ASIC-устройствам в небольших парти¬
ях изделий. Совершенно справедливо то возражение, что современные
микроконтроллеры способны выполнить те же задачи, что и проекты
на базе ПЛИС, но при существенно более низкой цене за кристалл со¬
поставимой сложности. До недавнего времени этому ПЛИС могли про¬
тивопоставить только возможность прототипирования новых устройств
за счет реконфигурируемой архитектуры, однако их DSP-возможности
и появление недорогих «компромиссных» семейств все больше и боль¬
ше размывает границы областей, где применение стандартных ASIC-
устройств однозначно целесообразнее. Наличие большого количества
аппаратных устройств, облегчающих выполнение операций «умножение
с накоплением» и потоковых операций с массивами памяти среднего
размера (в пределах одного блока встроенной в кристалл памяти) де¬
лают ПЛИС хорошей аппаратной платформой не только для создания
прототипов устройств цифровой обработки сигналов, но в ряде случа¬
ев и для создания серийных изделий, ориентированных на цифровую
обработку больших потоков данных.
14*
САПР Integrated Software Environment
213
Глава 7
САПР Integrated Software
Environment
7.1. Основные сведения
Integrated Software Environment (ISE) — основная САПР ПЛИС
фирмы Xilinx, обеспечивающая весь процесс проектирования цифровых
устройств на базе ПЛИС от ввода исходного описания до программи¬
рования микросхем.
Версия 8.1 ISE поддерживает следующие семейства ПЛИС:
• Virtex/Virtex-E/Virtex-I l/Virtex-l I Pro/Virtex-4;
• Spartan-1 l/Spartan-11E/Spartan-3/Sparta n-3E;
• XC9500/XC9500XL/XC9500XV;
• CoolRunner/CoolRunner-ll.
Версия 8.2 (update) поддерживает также ПЛИС Virtex-5 подсемей¬
ства LX. Поддержка ПЛИС Spartan и ХС4000 в ISE отсутствует. Для
работы с этими сериями следует использовать САПР Xilinx Foundation
Series.
САПР ISE работает под управлением ОС Windows 2000 + SP2 или
Windows ХР. Кроме того, возможна работа под управлением Solaris 2.8
и Linux (Red Hat Enterprise 3).
Все конфигурации ISE (табл. 7.1) имеют интерфейсы к САПР Synp-
lify и Leonardo Spectrum. Версия ISE Alliance специально предназна¬
чена для интеграции со средствами синтеза сторонних производителей
и не поддерживает стандартный для других версий ISE маршрут про¬
ектирования XST.
Пакет ISE WebPack представляет собой бесплатную версию САПР,
доступную для загрузки с сайта Xilinx (www.xilinx.com). Он имеет огра¬
ничение по максимально поддерживаемому объему ПЛИС, но начиная
с версии 8.1 функциональные возможности WebPack полностью соот¬
ветствуют ISE Foundation.
Требования к памяти сильно зависят от емкости проектируемых
ПЛИС. В табл. 7.2 приведены рекомендации фирмы Xilinx.
Требования к памяти не являются безусловными и отражают уро¬
вень устойчивой работы САПР при трассировке ПЛИС с достаточно
большим коэффициентом заполнения. Требования к процессору не
являются критичными (фактически достаточно производительности на
Таблица 7.1
Варианты конфигурации САПР ISE
Характеристика
ISE WebPack
ISE Foundation
Операционная система
Windows,
Windows, Solaris
XST
Linux (32 бит)
+
Linux (32 и 64 бита),
+
Core Generator
+
+
FPGA Editor
+
+
Поддерживаемые ПЛИС:
Virtex
До V600
Все
Virtex-Е
До V600E
Все
Virtex-ll
До 2V500
Все
Virtex-ll Pro
До VP7
Все
Virtex-4
LX15, LX25. SX25, FX12
Все
Spartan-ll
Все
Все
Spartan-IIE
Все
Все
Spartan-3
До 3S1500
Все
Spartan-3E
Все
Все
CPLD (XC9500, CoolRunner)
Все
Все
Таблица 7.2
Требования к оперативной/виртуальной памяти рабочей станции
при работе с различными ПЛИС
ПЛИС
Память,
Мбайт
XC9500/XL/XV
CoolRunner
CoolRunner-ll
Spartan-ll
Spartan-IIE (до XC2S200)
Spartan-З (до XC3S200)
Spartan-ЗЕ (до XC3ES250)
Virtex (до XCV150)
Virtex-E (до XCV200E)
Virtex-ll (до XC2V250)
128/128
Spartan-IIE (до XC2S600)
Spartan-З (до XC3S400)
Spartan-ЗЕ (до XC3S500)
Virtex (до XCV400)
Virtex-E (до XCV400E)
Virtex-ll (до XC2V500)
Virtex-ll Pro (XC2VP2)
256/256
ПЛИС
Память,
Мбайт
Spartan-З (до XC3S1000)
Spartan-ЗЕ (до XC3ES1200)
Virtex (до XCV800)
Virtex-E (до XCV600E)
Virtex-ll (до XC2V1000)
Virtex-ll Pro (до XC2VP7)
512/512
Spartan-З (до XC3S2000)
Virtex (до XCV1000)
Virtex-E (до XCV2000E)
Virtex-ll (до XC2V1500)
Virtex-ll Pro (до XC2VP40)
Virtex-4 (до LX25, SX25, FX20)
1000/1000
Spartan-З (до XC3S5000)
Virtex-E (до XCV3200E)
Virtex-ll (до XC2V6000)
Virtex-ll Pro (до XC2VP100)
Virtex-4 (до LX100)
2000/2000
Virtex-ll (до XC2V8000)
Virtex-4
3000/3000
уровне комфортной работы в выбранной операционной системе), однако
трассировка сложных проектов для ПЛИС большого объема потребует
достаточно большой производительности.
Отдельным вопросом является выбор устройства отображения. Не¬
сомненно, что для работы в САПР разрешение монитора и качество изо¬
бражения должно быть достаточно высокими. Представляется, что для
214
Глава 7
САПР integrated Software Environment
215
версии 8.1 начальным уровнем может считаться разрешение 1280 х 1024,
при котором на экране помещаются основные элементы управления и
панели инструментов, оставляя достаточно свободного места.
Версия 8.1 занимает до 2,2 Гб дискового пространства при установ¬
ке поддержки всех серий ПЛИС.
При инсталляции необходимо выполнить регистрацию копии СА¬
ПР. При начале инсталляции запрашивается регистрационный номер,
который можно получить либо через систему онлайновой регистрации
(самый оперативный и удобный способ), либо по электронной почте или
факсу. В последних случаях инсталляцию придется отложить до полу¬
чения серийного номера устанавливаемой копии продукта.
Панели, расположенные слева, представляют собой соответственно
список файлов текущего проекта и список процессов (операций), до¬
ступных для текущего выбранного файла.
Для создания нового проекта необходимо выбрать соответствующий
пункт главного меню (File —# New Project). После этого открывается
мастер создания нового проекта, как показано на рис. 7.2-7.3.
7.2. Основы работы
Внешний вид главного окна оболочки проектирования показан на
рис. 7.1.
Рис. 7.2. Диалоговое окно создания нового проекта
I
FPGADedgrtSywary
^Design Ovc/wew
|7j Sawwrj-
Piocewev
П
c
S ouces Kx SAT*be и mjiemen*atxx
^DencProiect
| w Q «3:200-91256
k^oulPP 8cp.»ch)
Xilinx BE P--XPM^rpWRrpj«ctyyrigPr<>j«srMe [ ГМипмйД;
Ek Ed* Y**» Precess Wodow
EEE
and Warring
i
»
Add ЕюУЙ-g Source
Create Hew Source
View Design Summary
Deagn Uribe:
User ConsQar/s
Syrvheste ■ XST
mcfement Design
Generate Piogramtrmg Г te
Update Bitstream wtth Processor Date
Project Properties
0 Enable Enhanced Design Sucr-may’
О Enatte Message FSeing
О Dispiay IncremerJaiMessjage;
Enhanced Design S<jnvr»«y Content; j
C Show Errors .
1 □ Shc**»Warnr»g;
Q Show Foang Corrrfre«<5
О Show Dock Repcrt
I
I ,
( Sources ; gg Snapshots, . Lcxanci
Ей
i ■
i
I
I
i
i
t
Lv...
£ Processes
»\ WvrinQi Find n Fir:
>
top XL Dedgn 5иптгняу
Launching Design Suaenery**.
Al Lurert Messages
Reports
Report N^me
Synthesis Report
Г ranilabon Report
Map Report
Piece and Rou-e Report
Slate I Report
T«gen Report
Г "
Project file:
Moduli Name
Target Device.
Pioducl Version
= с a ? Э О
top
исЗ*200-«256
; ISE. 81.03-
DtHOPqnjECl .ojact Jtatu>
Current Sime:
• Errors:
• Warnings.
• Updated:
ЧтП май 01 4546 2OOF
DrUriHd Rt?po<b
Generated Errors
1 йрГЛГй'Л .V*l
WerrMfwt
у
Рис. 7.1. Главное окно САПР ISE
Главное окно ISE называется «Навигатор проектов» (Project Naviga¬
tor). В этом окне расположены инструментальные панели и консоль
сообщений. В отличие от предыдущих версий отчет о состоянии проек¬
та, занятых ресурсах ПЛИС и результатах выполнения основных шагов
трансляции хорошо структурирован и разбит на группы.
Рис. 7.3. Диалоговое окно выбора ПЛИС и маршрута проектирования
В первом окне открывшегося мастера необходимо задать имя про¬
екта и размещение папки с материалами. Настоятельно рекомендуется
выбрать для хранения проектов отдельную папку, не располагающую¬
ся внутри папки, в которую был установлен пакет. В показанном на
рис. 7.2 примере проекты размещены в D:\XProject.
Кроме этого, в показанном окне необходимо задать параметр «Top¬
Level Module Туре», т.е. тип представления модуля верхнего уровня. При
этом типу HDL соответствует описание на одном из языков описания
аппаратуры, Schematic задает графическое описание, а форматы EDIF и
NGC/NGO предусматривают использование результатов работы внеш¬
них средств синтеза.
216
Глава 7
САПР Integrated Software Environment
217
Несмотря на то что описание на HDL существенно эффективнее
графического ввода, рекомендуется выбирать схемотехническое предста¬
вление верхнего уровня проекта. На начальном этапе освоения САПР
графическое представление некоторых схемных решений значительно
нагляднее, кроме того, графическое представление может выступать в
качестве структурной схемы проекта. Естественно, вложенные модули
могут быть полностью описаны на HDL.
В следующем окне мастера (рис. 7.4) следует выбрать создать ис¬
ходные файлы, которые будут входить в состав проекта, а затем указать
тип вновь создаваемого модуля. Обычно это файл описания верхнего
уровня проекта (в данном случае он имеет тип Schematic).
Рис. 7.4. Диалоговое окно создания новых модулей
Sources for:j Synthesis/lmplementation v
DemoProject
S О xc3s200-5ft256
[tjJrr op (top.sch)
I SourcesSnapsho’s r Libraries
Design Utilities
User Constraints
Synthesize • XST
Implement Design
Genet aFe Programming File
Update Bitstream with Processor Data
£
* «
E
Рис. 7.5. Добавление
существующих или создание
новых модулей проекта
Следующее диалоговое окно (рис. 7.5)
позволяет добавить к проекту уже суще¬
ствующие модули. То же действие можно
выполнить и позже: Project —» Add Source
или Project — Add Copy of Source. Удобно
также то, что в окне процессов размещены
два пункта для быстрого добавления новых
модулей или подключения к проекту суще¬
ствующих.
По завершению создания нового гра¬
фического описания ПЛИС в списке фай¬
лов проекта появится только что создан¬
ный файл top.sch. Двойной щелчок на этом
файле приведет к открытию в главном ок¬
не приложения для редактирования файлов
такого типа. Внешний вид окна этого при¬
ложения показан на рис. 7.6. Удобным но¬
вовведением (начиная с ISE 7.1) является
ИXffir< О:\ХРго>wjecl . u г ’
He Ed* Project Source Process Add lock j*(r»dw neo
□ A Ufi -ij jV is x.t-t 4»
r-rt ? t a-Ь So/CA ;a8ft ✓ AAae
$ОиГП»
: *i
Solees for
-i
•- £Jw3>a&St256
. J
Sources Uxane-
P.o«:
X
I
Seteci Oc*m«
V/lier-you осаЬгесЪ
О Seiecl. me ertic b.jnch
О Select the Ire egcneii
Wlteri jKAi move an object
(*' К eep the correct св’o jftw cbjrd-
О Break the corrections to ofrei objects
Wbwyou vie the e*ea sdec< Iptf. itWcl Ihe object
0 AreerxJo'edtytheater
j О Intersect tho area
VAwivyou uie the area sde*J tod s-eted
(*) Objects exciuitog c’lrbute
О Attnbutes vodov*.; ody
0
«I
»l
I
3c.aEV.ed : ^Launching beaiqn ЗшаозЕу".
•S] CcrsnJe QEtfoii jXjWaaxxjs
Frx3«tFfet
I
i
Ej T De-ign Swonwp
-•л'
xi
>
Рис. 7.6. Окно графического редактора
то, что редактор графического представления открывается в закладке
основного окна, а не в виде нового приложения. Это позволяет быстро
переключаться между модулями проекта независимо от их типа.
Инструментальная панель этого приложения (рис. 7.7) содержит
как стандартные для Windows-приложений кнопки работы с файлами
и редактирования, так и кнопки доступа к специфичным для данного
редактора операциям. Рассмотрим кнопки, относящиеся к редактирова¬
нию схемы (остальные элементы управления являются стандартными
для Windows-приложений).
Рис. 7.7. Инструментальная панель редактора ECS
Кнопка с изображением лампочки открывает окно с шаблонами
проектирования на языках описания аппаратуры. Кнопка с изображе¬
нием наклонной стрелки (показана нажатой) включает режим выбора
объектов курсором мыши. Следующая кнопка, с изображенным каран¬
дашом, служит для проведения линий связи между выводами компо¬
нентов. В этом режиме можно вводить как одиночные линии, так и
шины. Вид рисуемой линии зависит от того, к какому выводу компо¬
нента эта линия должна быть подключена. Этот же режим включается
при нажатии комбинации Ctrl-W.
218
Глава 7
САПР Integrated Software Environment
219
Кнопка с символами abc около изображения проводника позволя¬
ет назначать им имена, а следующая, с символами а(0), — изменять
имена шин.
Следующая кнопка включает режим подключения одиночных про¬
водников к шинам (bus taps)
Последняя кнопка в первой группе позволяет устанавливать в схе¬
му маркеры ввода-вывода. В библиотеках ISE отсутствуют компонен¬
ты типа IPAD и OPAD, как в САПР Xilinx Foundation Series, и при¬
вязка к выводам ПЛИС осуществляется с помощью маркеров ввода-
вывода (I/O markers). Обратите внимание, что при выборе этого ре¬
жима появляется еще одна панель, позволяющая указать тип вывода
ПЛИС (Automatic, Input, Output, Bidirectional). В автоматическом ре¬
жиме вид устанавливаемого маркера будет определен, исходя из типа
вывода компонента, подключенного к проводнику или шине, на кото¬
рую устанавливается маркер.
Кнопка с изображением компонента позволяет помещать компонент
на схему, однако эта операция может быть выполнена и с помощью выбо¬
ра компонента из списка, расположенного в панели справа от основного
поля ввода (закладка Symbols).
Далее расположена группа кнопок, предназначенная для помеще¬
ния на схему разнообразных элементов оформления. Там же распо¬
ложены кнопки для вращения ранее установленных компонентов и их
зеркального отображения.
Из кнопок на оставшейся части панели интересны предпоследняя
(с изображением стрелок, направленных вверх и вниз, которая позво¬
ляет просмотреть содержимое компонента на «нижнем уровне») и по¬
следняя — для проверки корректности введенной схемы. Проверка кор¬
ректности производится по формальным признакам, на уровне контроля
конфликтующих соединений и неподключенных выводов.
Справа от основного поля ввода схемы располагается панель на¬
стройки поведения курсора в режиме выбора (рис. 7.8).
Набор возможностей, представленный в этой панели, достаточно
удобен и позволяет разработчику настроить поведение редактора в со¬
ответствии со своими предпочтениями. Особенно это касается режи¬
ма выбора области, который реализуется по-разному в графических ре¬
дакторах.
Для создания собственного HDL-компонента (рис. 7.9) можно вос¬
пользоваться уже описанным способом (New Source), однако теперь в
качестве типа компонента необходимо указать VHDL Module (компо¬
нент VHDL).
В данном примере создается компонент с именем alu (Arithmetic-
Logic Unit — арифметико-логическое устройство). Для компонента не¬
обходимо задать его интерфейс, т.е. имена и тип выводов, которые будут
указаны на его схемотехническом представлении (рис. 7.10).
Зададим для арифметико-логического устройства выводы в соот¬
ветствии с представленным примером. Здесь шины а, Ь представляют
: When ycx i click on a brand i
: i 0 Select the entire branch
■■г О Select the line segment
;J
При выборе проводника:
• выделять весь проводник;
о выделять сегмент линии.
При перемещении объекта:
• сохранять соединения с другими объ¬
i When you move an object
i G Keep the connections to cthei objects
О Break the connections to on .er objects
- -»
■ i
!
I When you use the area select tool, select the objects that
• Are enclosed ty the area
О Intersect the area
- I' .
i . ■ <:<
ектами;
о разрывать соединения с другими объ¬
ектами.
' 1. When you use the area select tool, select
■» '
(*) Objects excl jdrng attribute windows
C Attributes windows onk
J- Options ■
При выборе области выделять объекты:
• полностью расположенные в области;
о пересекающие область.
При выборе области выделять:
• объекты, исключая окна атрибутов;
о только окна атрибутов.
Рис. 7.8. Панель настройки режимов выбора
Рис. 7.9. Диалоговое окно создания нового компонента
Рис. 7.10. Диалоговое окно настройки выводов компонента
220
Глава 7
САПР Integrated Software Environment
221
собой входные 8-разрядные шины аргументов, 3-разрядная шина ор за¬
дает тип операции, а шина q с направлением out будет содержать ре¬
зультат. Отдельно отмечаются сигналы, представляющие собой шины
(т.е. группы проводников, а не отдельные линии). В приведенном при¬
мере к шинам относятся все сигналы.
После завершения работы мастера и создания шаблона в основ¬
ном окне ISE будет показано содержимое только что созданного ком¬
понента (рис. 7.11).
’В •<* * ■ м
% % & S « ЧТ'* [WO
1
2 — Company:
3 Engineer:
4 —
< 5 ?■— Create Date: 02:16:59 OE/1J/2OC6
.6 — Design Marne:
7 — Module Name: alu - Behavioral
и — Project Магле:
9- ■— Target Devices:
10 Tool versions:
11 — Description:
12
13 - Dependencies:
14 ’ —
15 — Revision:
i 16 Revision G.O1 - File Created
17 \— Additional Coirrnents:
18 —
■'
20 library IEEE;
21 use IEEE.STD_LOGIC_1164.ALL;
i; 22 'use IEEE.STD_LOGIC_ARITH.ALL;
23 vизе IEEE.STD_LOGIC_UNSIGNED.ALL;
24
25 Uncomment the following library declaration if instantiating
26 ■; any Xilinx primitives in this code.
27 —library UNISIM;
28 —use UNI3IM.VCornponents.all;
• --2*9
30 entity alu is
31 Port ( a : in STI-_LOGTC_VECTC’R (7 dounto 0);
32 b : in STD LOGIC VECTCI- (7 dovntc 0) ;
33 ■ op : in STD_LOG1C._VECTOR (2 downto 0);
34 q : out STD_LCGIC_V£CTOR (7 dounto 0) ) ;
35 end alu;
36
37 architecture Behavioral of alu is
Сюда пользователь
добавляет описание
39 '
40
41
42
43
. 44 .
<.
top ■' X Design Suwnaiy
Рис. 7.11. Вид текстового редактора после завершения работы мастера
В текстовом редакторе необходимо ввести описание только что со¬
зданного компонента на языке VHDL в соответствии с примером:
with op select
q <= а + b when "ООО",
a-b when "001",
a and Ъ when "010",
a or b when "011",
a xor Ъ when "100",
a when "101",
b when "110",
"00000000" when others;
В данном примере задается работа АЛУ на основе выбора типа опе¬
рации содержимым шины ор. Работа АЛУ производится асинхронно,
т.е. результат появляется на выходе сразу после изменения состояния
входных шин или кода операции. В приведенном примере можно про¬
анализировать поведение компонента: в зависимости от состояния ши¬
ны op (with op select) выходной шине q присваивается одно из выраже¬
ний а+b | а-b | a and b | a or b | a xor Ъ | а | Ъ | 0. При коди¬
ровании типа операции предполагается, что старший разряд находится
слева, т.е. запись «001» предполагает наличие логической единицы в
самом младшем разряде.
Представленный текст вводится после ключевого слова begin в раз¬
деле architecture. После набора текста необходимо оттранслировать
компонент. Для этого компонент должен быть выбран в списке фай¬
лов проекта. После выбора в окне доступных процессов появится спи¬
сок операций, возможных для выбранного файла. Компонент создается
операцией Design Entry Utilities —> Create Schematic Symbol. Двойной
щелчок на этом пункте запускает синтез схемотехнического представле¬
ния компонента, при этом ход синтеза и результаты будут показаны в
консоли системных сообщений в нижнем окне. При этом САПР мо¬
жет предложит сохранить те файлы, которые были изменены с момента
последнего сохранения.
Обратите внимание на сообщение о результате трансляции, посколь¬
ку данная операция проверяет корректность описания и синтезирует ком¬
понент по обычным правилам компиляции. При ошибках в описании,
в том числе и методологических (например, соединение двух активных
выходов или попытка синтеза компонента, реализация которого выходит
за рамки возможностей технологии ПЛИС), будет выведено сообщение
об ошибке и компонент создан не будет.
После повторного синтеза компонента убедитесь в том, что компо¬
нент оттранслирован без ошибок. В противном случае САПР будет ис¬
пользовать последнюю корректно оттранслированную версию компонен¬
та, что впоследствии послужит источником труднообнаружимых ошибок
в работе всего проекта. При успешном повторном синтезе будет запро¬
шено подтверждение на перезапись уже имеющегося компонента, а при
возврате в схемотехнический редактор появится окно запроса на обно¬
вление измененных компонентов (Update).
После успешного синтеза нового компонента его можно разме¬
стить на схеме. Компоненты, создаваемые разработчиком, появля¬
ются в отдельной группе на вкладке Symbols. Название группы со¬
ответствует полному пути к размещению файлов проекта (например,
D:\Xproject\DemoProject\ — обратите внимание, что проекты пользо¬
вателя НЕ РЕКОМЕНДУЕТСЯ размещать в общей папке ISE). Устано¬
вленный на схему компонент показан на рис. 7.12.
222
Глава 7
САПР Integrated Software Environment
223
Cl
Fl File Edit View Project Source P'ocess Add Tocfc Widow Help
Рис. 7.12. Установленный на схему компонент
После установки компонента необходимо подключить его к внеш¬
ним выводам ПЛИС. Поскольку в данном примере все функциональные
возможности были уже реализованы в созданном компоненте, остается
подключить его к внешним выводам. Хорошим стилем проектирования
является минимизация количества внешних компонентов, необходимых
для нормальной работы проекта. Исключением являются компоненты,
иллюстрирующие режим работы или особенности реализации того или
иного узла (например, буферы с тремя состояниями, установленные как
отдельные схемотехнические компоненты, наглядно демонстрируют тип
выхода элемента; в то же время выход с тремя состояниями можно опи¬
сать и внутри VHDL-компонента).
Для подключения компонента к выводам необходимо установить
маркеры ввода-вывода. Однако эти маркеры могут быть установлены
только на уже имеющиеся линии, поэтому вначале необходимо провести
шины от выводов компонента alu. Пример показан на рис. 7.13.
alu
|-XLXN--1(7oj> '
| XLXN- -2(7 0Д> ;
I XLXN 3(2:0)>
a(7:0) ■
op(2.0)
Рис. 7.13. Подключение шин и маркеров ввода-вывода к выводам компонента
Самым удобным вариантом является размещение маркеров ввода-
вывода непосредственно на проведенных шинах. В этом случае разряд¬
ность размещаемых маркеров соответствует разрядности подключаемых
шин, например а(7:0).
Однако после проведения шин (с учетом достаточного места для
последующего подключения отдельных проводников) можно вывести и
отдельные линии этих шин. Эти линии выводятся с помощью элементов
bus taps (рассмотренных выше). При выборе соответствующего режима
курсор превращается в изображение отвода от шины, как показано на
рис. 7.13. Такие символы необходимо установить на каждую шину в
соответствующем разрядности этой шины количестве. Направление вы¬
вода отдельного проводника может быть изменено на панели, появля¬
ющейся справа от главного окна в данном режиме.
При размещении bus tap размещайте основание треугольника не¬
посредственно на шине.
После установки на каждую шину соответствующего количества вы¬
водов можно разместить буферы ввода-вывода. Эти буферы находятся
в группе компонентов 10 и называются ibuf и obuf для входных и вы¬
ходных буферов соответственно.
В САПР ISE допускается не устанавливать входные и выходные бу¬
феры, поскольку их наличие около каждого вывода ПЛИС подразуме¬
вается по умолчанию, и при их отсутствии в схеме буферы нужного
типа будут установлены автоматически (в опциях процесса компиляции
имеется соответствующая настройка).
Тип устанавливаемого маркера можно установить на панели свойств,
располагающейся справа. По умолчанию маркеру присваивается имя
XLNX.XX, где XX — порядковый номер компонента в соответствии с
внутренней нумерацией ECS.
В настоящий момент все компоненты, шины и проводники схемы
имеют имена, заданные по умолчанию. Последующий анализ такой
схемы и задание номеров выводов будут затруднены неудобными обо¬
значениями. Кроме того, в настоящий момент не задан порядок под¬
ключения буферов к отдельным проводникам шин. Поэтому следует
изменить заданные по умолчанию имена более наглядными и соответ¬
ствующими назначению компонентов.
Двойной щелчок на шине открывает окно редактирования свойств
объекта. Для свойства Name следует задать новое имя (рис. 7.14). На¬
пример, для шины а будет введено а(7:0). Здесь в круглых скобках
указаны индексы самого старшего и самого младшего разрядов шины.
Следует обязательно оставить в поле редактирования символы « (7:0)»,
поскольку без них имя будет относиться уже не к шине, а к одиноч¬
ному проводнику.
Введенное имя по умолчанию не будет показано на схеме. Для
размещения имени вблизи шины необходимо нажать кнопку add, распо¬
ложенную в колонке Visible. Эта кнопка откроет диалоговое окно до¬
бавления имени атрибута на схему (на схему можно добавить название
любого атрибута). Нажатие кнопки Add в этом диалоге автоматиче¬
ски выберет «координаты» размещения имени на схеме. Результат этой
операции показан на рис. 7.15.
После задания имен всем шинам схему можно считать завершен¬
ной. Однако перед началом трансляции проекта необходимо закрепить
224
Глава 7
САПР Integrated Software Environment
225
Рис. 7.14. Диалоговое окно ввода имени шины
: alU: ■:
4 XLXN 4Г7 ~бУ>'
5 I XLXN -3(2:0 )>
f—— Ь(7:-0)
f= op(^Q
Рис. 7.15. Схема с размещенным именем шины
за отдельными выводами схемы номера выводов корпуса ПЛИС. В Xilinx
Foundation Series номер вывода задавался в окне атрибутов каждого мар¬
кера ввода-вывода, что затрудняло переход от одного кристалла к друго¬
му, и требовало дополнительной проверки того, что всем выводам про¬
екта были назначены корректные номера. Пакет ISE использует более
удобный способ назначения номеров выводов.
В главном окне необходимо добавить к проекту новый файл —
Implementation Constraints File. В качестве имени можно выбрать pins
(«выводы»), что позволит впоследствии легко находить файлы тако¬
го типа.
Вновь созданный файл необходимо ассоциировать с одним из фай¬
лов проекта (запрос со списком файлов проекта будет дан автоматиче¬
ски). Очевидно, что главным файлом проекта является top.sch.
Для файла pins.ucf необходимо запустить утилиту РАСЕ (User Con¬
straints —> Assign Package Pins в окне процессов). В этом случае появится
окно, подобное показанному на рис. 7.16.
Перед открытием этого приложения Навигатор проектов предвари¬
тельно создаст список выводов проекта и их типов. Для этого выпол¬
няются несколько шагов трансляции проекта. Если в проекте имеются
ошибки, редактор ограничений запущен не будет.
В основной части окна этого приложения показано схематическое
изображение кристалла ПЛИС с отмеченными выводами. В левой ча¬
сти расположены собственно панели редактирования номеров выводов
(рис. 7.17). Рассмотрим эту часть более подробно.
Рис. 7.16. Окно редактора выводов
Del«r, Diff. Type Pair IMme| Local Clock
Termination
Bank
Swap Local Clock IO
Termination
'Jrik'.own
Jnknown
Jnknown
Unknown
■Unknown
Unknown
Unknown.
; Unknown
Unknown
,1 ь-г—
Рис. 7.17. Назначение выводов ПЛИС
А ‘ * ■
■
jtOUame 1Ю Direction
Vief I V< co Drive Str.
Список был заполнен в соответствии с указанными именами мар¬
керов ввода-вывода. Тип маркеров (колонка I/O Direction^ указан ав¬
томатически в соответствии с их типом в схеме. В графе Loc (располо¬
жение) необходимо ввести номер вывода ПЛИС, к которому необходимо
подключить соответствующий сигнал. В соседней колонке размещается
название банка ввода-вывода, к которому относится данное имя. Это
сделано для того, чтобы избежать ситуации, когда в одном банке ока¬
зываются линии, требующие разного напряжения питания.
Наконец, колонка I/O Std позволяет установить для вывода один
из электрических интерфейсов, которые реализуются аппаратно путем
15
226
Глава 7
САПР Integrated Software Environment
227
активизации соответствующих буферов ввода-вывода. В соседних ко¬
лонках можно задать опорное напряжение (требуется не для всех ти¬
пов интерфейса), напряжение питания линий ввода-вывода Vcco, мак¬
симальный выходной ток, тип внутренней подтяжки, скорость нараста¬
ния и задержку.
Номера выводов могут быть отредактированы непосредственно в
представленной таблице. Обозначение вывода вводится в формате Рхх,
где хх— номер вывода в соответствии с обозначением корпуса ПЛИС.
Для корпусов типа BGA, имеющих матричное расположение выводов,
символ «Р» не вводится (например, А5).
/
Возможность назначения конкретного вывода в качестве програм¬
мируемого должна быть проверена по документации на соответ¬
ствующую ПЛИС.
Ada Existing Source
Create New Sour e
View Design Summary
Design Utilities
Q Create Schematic Symbol
FJ) View Command Line Log File
fi^Checi Design Rules
View HDL Functional Model
View HDL Instantiation Template
[ User Constraints
[ « ?Synthesize-XST
—■ - "
t
I
I
j^^view Synthesis Report
Fti View R TL Schema!"
[frl View T . hnology Schema'ic
Generate Post-Synthesrs Simulation Model
fImplement Design
is- CiOTranslate
j “ T ranslation Report
dial Floorplan Design
Generate Post-Translate Stmulaiior Model
Щ Assign Package Pins Post-Translate
aQ Map
Map Report.
Generate Post-Map Static Timing
Floorplan Design Post-Map (Floorplanner)
Manually Place & Route (FPGA. Editor)
Generate Post-Map Simulation Model
$ Ci
^1
s»
Q Place L Route
Place L Route Report
Clock Region Report
Asynchronous Delay Report
Pad Report
Guide Results Report
MPPR Results Utilities
Generate Post-Place & Route Static Timing
View/Edt Placed Design fFioorplannet)
View/Ed't Routed Design (FPGA Editor)
Analyze Powei (XPowet)
Generate Power Data
Generate Post-Place & Route Simulation Model
Generate IBIS Model
Back-annotale Pin Lncacons
JEJ
&
э
$ t
Q
s»
* U
Generate Programming File
Update Bitstream with Processor Data
JzJ Options
Processes
■—---
■ч
f
i
Рис. 7.18. Процессы, доступные
для проекта на базе FPGA
I
После сохранения файла ограни¬
чений и выполнения функционального
модулирования можно приступать непо¬
средственно к трансляции проекта.
Для трансляции необходимо ука¬
зать файл main.sch (попытка трансля¬
ции проекта без выбора главного фай¬
ла не является ошибкой, но приведет
к трансляции одного из библиотечных
компонентов пользователя), после чего
становится доступным список процессов
для этого файла (рис. 7.18).
Трансляция проекта включает три
основных этапа: Synthesize, Implement
Design и Generate Programming File. Ha
рис. 7.18 эти процессы показаны в «раз¬
вернутом» виде. Пиктограммы около
имен отдельных компонентов соответ¬
ствуют типу приложений, которые бу¬
дут запущены при их активизации. Знач¬
ком документа показаны файлы отче¬
та, которые при активизации будут вы¬
ведены в основное окно. Однако для
составления этих отчетов может потре¬
боваться запуск каких-либо этапов син¬
теза или трассировки. Двойными стрел¬
ками отмечены процессы, исполняемые
в основном окне ISE. Прочие пункты со¬
ответствуют внешним утилитам, откры¬
вающимся в своем окне, и значки пред¬
ставляют собой пиктограммы соответ¬
ствующих приложений.
Для трансляции всего проекта достаточно запустить процесс Ge¬
nerate Programming File. Недостающие для его выполнения процессы
будут запущены автоматически.
Ход трансляции будет показан в консоли, при появлении ошибки
трансляция прекращается. При этом зеленые «галочки» напротив ка¬
ждого процесса показывают его успешное завершение, желтые воскли¬
цательные знаки говорят о том, что один из вложенных процессов не
был запущен (что является нормальной ситуацией), критические ошиб¬
ки показываются красными крестиками. Знаки вопроса сигнализиру¬
ют, что результаты выполнения этого процесса устарели и требуется
его повторный запуск.
Настройки параметров трансляции производятся из контекстного
меню для каждого процесса. Интерес представляют настройки про¬
цессов Implementaion и Generate Programming File. Общее количество
настроек довольно велико, к тому же точный состав меняется от вер¬
сии к версии САПР и от одной серии ПЛИС к другой. Поэтому здесь
будут перечислены только некоторые особенности настройки параме¬
тров трансляции и синтеза, которые оказывают существенное влияние
на процесс проектирования.
Все окна настройки свойств процесса (рис. 7.19) имеют два уровня
отображения: Standard и Advanced. На уровне Standard показаны наи¬
более часто используемые свойства, но ряд довольно важных настроек
становятся доступны только в режиме Advanced Поэтому комментарии
к настройкам будут сделаны именно для данного режима, хотя и дале¬
ко не для всех пунктов диалоговых окон (что существенно увеличило
бы объем материала данной главы).
Итак, в показанном на рис. 7.19 окне интерес представляют сле¬
дующие пункты.
Optimization Goal имеет два варианта: Speed и Area. Эти варианты
соответствуют общей направленности алгоритмов на оптимизацию с це¬
лью достижения максимальной производительности или минимальной
занимаемой площади на кристалле.
Optimization Effort регулирует «интенсивность» алгоритмов опти¬
мизации [effort дословно означает «усилие»). Значение normal соот¬
ветствует меньшему времени работы, значение high — более высокому
качеству получаемых результатов.
Напротив параметра Use Synthesis Constraints File необходимо оста¬
вить флажок, поскольку только в этом случае ограничения по взаим¬
ному размещению компонентов на кристалле и подключения к выводам
ПЛИС будут использоваться ISE.
Параметр Keep Hierarchy (варианты Yes/No/Soft) регулирует уро¬
вень соответствия структуры ПЛИС тому описанию, которое было вве¬
дено пользователем. Дело в том, что после эквивалентных преобра¬
зований логических выражений, упрощений и оптимизации получаемая
15*
228
Глава 7
САПР Integrated Software Environment
229
Рис. 7.19. Диалоговое окно настройки свойств трансляции
структура логических блоков может существенно отличаться от той схе¬
мы, которая была введена разработчиком. Разумеется, функционирова¬
ние при этом полностью соответствует описанию проекта. Если пара¬
метр имеет значение No, САПР имеет возможность провести глубокую
оптимизацию проекта, не сохраняя в точности ту иерархию цифровых
блоков, которая задается в описании.
Параметр Global Optimization Goal имеет множество вариантов:
• AIICIockNets — проект оптимизируется таким образом, чтобы обес¬
печить максимальную частоту тактовых сетей. Вариант может ис¬
пользоваться в случаях, когда обработка сигнала сосредоточена в
ПЛИС и выполняется большим количеством цифровых блоков, так¬
тируемых внешним сигналом высокой частоты;
• InPad to OutPad— минимизируется время распространения сигна¬
лов от входных линий микросхемы к выходным. Вариант удобен в
случаях, когда ПЛИС выступает в качестве контролера в системе,
включающей несколько микросхем;
• Offset In Before — минимизируется время установления сигнала на
входах цифровых блоков относительно последующего фронта так¬
тового сигнала;
• Offset Out After — минимизируется время установления сигнала
на выходах цифровых блоков относительно предыдущего фронта
тактового сигнала;
• Maximum Delay—минимизируется максимальная задержка распро¬
странения. Может быть использован в проектах с большим удель¬
ным весом комбинаторной логики и сложной трассировкой.
В ряде случаев изменение параметра Global Optimization Goal мо¬
жет существенно улучшить временные характеристики проекта, поэтому
рекомендуется использовать данную возможность в случаях, когда не
удается удовлетворить требованиям по производительности.
На рис. 7.20 показан вид диалогового окна настройки свойств син¬
теза HDL. В данном окне рекомендуется оставлять показанные настрой¬
ки, за исключением случаев, когда требуется воспользоваться опреде¬
ленными типом физических ресурсов ПЛИС для реализации той или
иной функции. Например, умножение может быть реализовано как с
помощью аппаратных умножителей (если они присутствуют в данной
ПЛИС), так и на базе логических ячеек, что может быть явно указа¬
но в настройках. Аналогично, ПЛИС Xilinx допускают использование
как блочной, так и распределенной памяти. Особенно много вариантов
существует для выбора способа кодирования состояний конечных авто¬
матов. В автоматическом режиме для каждого их этих случаев выбира-
Рис. 7.20. Диалоговое окно настройки свойств синтеза HDL
230
Глава 7
САПР Integrated Software Environment
231
ется вариант, соответствующий оптимальному использованию ресурсов
ПЛИС (для памяти — в зависимости от объема требуемого блока, для
конечных автоматов — в зависимости от числа состояний).
На рис. 7.21 показана последняя вкладка: Xilinx Specific Options.
На ней представляют интерес следующие параметры.
блоках ввода-вывода, что положительно влияет как на производитель¬
ность проекта, так и на объем ресурсов).
Далее рассмотрим свойства процесса Implement Design (рис. 7.22).
Доступ к диалоговому окну настройки этих свойств осуществляется так¬
же по контекстному меню, вызываемому правой кнопкой мыши.
Рис. 7.21. Диалоговое окно настройки специальных параметров
Рис. 7.22. Диалоговое окно настройки параметров трансляции
Р., ■ I!'.
Max Fanout — задает максимальный «коэффициент разветвления»
для сигналов. Если один выход внутреннего блока должен быть под¬
ключен к множеству входов, трассировка программируемых соединений
может существенно усложниться. Речь в данном случае не идет о превы¬
шении максимальной нагрузочной способности по протекающему току,
поскольку внутри ПЛИС существуют многочисленные устройства буфе¬
ризации. Дело в том, что при необходимости распространения важного
для проекта сигнала по множеству ячеек может оказаться полезным со¬
здать его копию с тем, чтобы каждый из блоков, распространяющих
свою копию сигнала, делал это для ограниченной площади кристалла
ПЛИС. Таким способом можно добиться уменьшенной задержки рас¬
пространения за счет использования небольшого количества дополни¬
тельных ресурсов.
Той же цели способствует параметр Register Duplication. При раз¬
решении дублирования регистров САПР будет создавать их копии для
тех областей ПЛИС, которые находятся на большом расстоянии от тех
ячеек, которые формируют важный для проекта сигнал.
Следует убедиться, что установлены флажки Add I/O Buffers (ав¬
томатически размещает соответствующие буферы ввода-вывода) и Раск
I/O Registers into lOBs (позволяет использовать регистры, имеющиеся в
В данном окне необходимо обратить внимание на флажок Use LOC
Constraints, который подтверждает необходимость следовать ограниче¬
ниям, наложенным разработчиком на размещение компонентов проек¬
та. Также важным может оказаться сохранение иерархии субмодулей
{Preserve Hierarchy on Sub Module), если данные модули были разрабо¬
таны ранее и относительное размещение компонентов для них уже опти¬
мизировано. В подобных случаях повторная трансляция для проекта «в
целом» может ухудшить производительность.
На вкладке Map Properties (рис. 7.23) устанавливаются свойства
процесса отображения описания проекта на ресурсы ПЛИС. Свойство
Trim Unconnected Signals позволяет исключить из проекта неиспользу¬
емые цепи. Установленный флажок напротив Replicate Logic То Allow
Logic Level Reduction в ряде случаев позволяет достаточно эффектив¬
но управлять процессом синтеза. Смысл этого флажка — разрешить
средствам САПР «копировать» фрагменты логических блоков с целью
уменьшения количества последовательно соединенных логических яче¬
ек. Это приводит к некоторому повышению быстродействия за счет ис¬
пользования дополнительных ресурсов.
Установленное свойство Allow Logic Optimization Across Hierarchy
разрешает, как это видно из названия, оптимизировать логические функ¬
ции, скомбинированные из выражений, содержащихся в разных модулях
проекта. Установка этого флажка может как улучшить, так и ухудшить
общую производительность, поскольку в ряде случаев используется раз¬
дельная оптимизация субмодулей с последующим их объединением в
ПЛИС большого объема. При этом разрешение на «перемешивание»
232
Глава 7
САПР integrated Software Environment
233
Рис. 7.23. Диалоговое окно настройки параметров отображения
Рис. 7.24. Диалоговое окно настройки параметров размещения и трассировки
отдельных компонентов с последующей оптимизацией может свести на
нет усилия по оптимизации отдельных компонентов проекта.
Свойство Map То Input Functions позволяет выбрать максимально
используемое число входов логических генераторов. Это значение же¬
лательно оставить выбранным по умолчанию.
Параметр Optimization Strategy довольно часто подвергается изме¬
нениям. Возможные значения стратегии размещения — оптимизация
по используемым ресурсам (Area) и оптимизация по быстродействию
(Speed). Вариант Balanced представляет собой промежуточное решение.
Интерес представляет также последний из представленных на вклад¬
ке параметров — Map Slice Logic into Unused Block RAMs. Посколь¬
ку блочная память может выполнять функции логического генератора
(причем весьма мощного), часть многовходовых логических функций
может быть реализована с помощью этих ресурсов. Установка флаж¬
ка явно разрешает подобное использование этого дефицитного ресурса.
Настройки процесса Place & Route (рис. 7.24) позволяют устано¬
вить параметры процесса взаимного размещения ресурсов ПЛИС и трас¬
сировки связей между ними. «Строгость» проверки различных усло¬
вий размещения задается свойством Place & Route Effort Level, имею¬
щем две отдельные настройки для этапов Place (размещение) и Route
(трассировка).
Существует режим Guide Mode. Понятие guide в данном случае
означает, что трассировщик берет за основу ранее разведенный вариант
создаваемого проекта. Этот режим полезен, если в проект были вне¬
сены незначительные изменения, но в целом его трассировка является
вполне удачной. В таком случае включение Guide Mode (с указанием со¬
ответствующего файла в строке Guide File) позволяет сохранить удачное
размещение основной части проекта.
Следующие вкладки (рисунки для них не приведены) задают свой¬
ства генерации отчетов о моделировании временных характеристик про¬
екта. Эти характеристики определяются отдельно после трансляции
(Post-Map) и после трассировки (Post-Place & Route). Характеристи¬
ки, определенные после трассировки, соответствуют реальному разме¬
щению проекта с учетом дополнительных задержек, появившихся из-за
неудачного размещения и/или трассировки.
Наконец, процесс Generate Programming File (генерация файла про¬
граммирования ПЛИС) содержит относительно небольшое количество
настраиваемых параметров.
В окне на рис. 7.25 может оказаться важной установка флажков
«Create Binary Configuration File» и «Create ASCII Configuration File».
Все эти файлы являются разновидностями форматов одной и той же
конфигурационной последовательности. Однако конфигурация ПЛИС
может быть загружена не только с помощью САПР ISE, но и процес¬
сором или микроконтроллером. Для этого может оказаться удобным
двоичный формат (binary file) или даже текстовый формат, в котором
загружаемые биты записаны обычными символами в кодах ASCII.
Следующая вкладка, Configuration Options, позволяет задать на¬
стройки процесса загрузки конфигурации ПЛИС в части установки при¬
тягивающих резисторов на выводах ПЛИС. Изменение этих настроек не
представляется важным для нормальной работы.
234
Глава 7
САПР Integrated Software Environment
235
Рис. 7.25. Диалоговое окно настроек процесса формирования файла
конфигурации ПЛИС
На последней вкладке можно установить очень важный параметр
Security, отвечающий за возможность обратного считывания конфигура¬
ции ПЛИС. Запрещение обратного считывания (Readback) полностью
защищает проект от несанкционированного копирования.
Пр иведенная информация о продукте ISE не является исчерпыва¬
ющей, хотя и дает примерное представление о порядке работы с этой
довольно эффективной версией САПР. Целью изучения САПР ISE для
специалистов в области цифровой обработки сигналов должно стать не
столько доскональное освоение тонкостей этого продукта, сколько зна¬
ние основных этапов разработки цифровых устройств на базе ПЛИС
и реализации на основе этих микросхем систем цифровой обработки
сигналов.
На вкладке Startup Options (рис. 7.26) можно задать порядок выпол¬
нения ПЛИС внутренних операций в процессе инициализации. Послед¬
ние такты загрузки конфигурационной последовательности отводятся на
выполнение подготовительных к нормальной работе действий. На дан¬
ной вкладке можно назначить каждому из этих действий конкретный
такт из завершающего цикла. На рисунке видно, что ПЛИС выполняет:
• установку вывода Done,
• разрешение выходов (перевод их из высокоимпедансного состояния
в рабочее, заданное конфигурационным файлом);
• перевод внутренней схемы сброса/установки в неактивное состоя¬
ние;
• разрешения записи в регистры;
• разрешение работы устройств DLL.
Установленные по умолчанию параметры полностью соответству¬
ют нормальной работе ПЛИС. Их изменение желательно производить
в случае, когда цель таких изменений и ожидаемый результат понят¬
ны разработчику.
Рис. 7.26. Диалоговое окно настроек создания файла конфигурации
(порядок загрузки и инициализации)
Проектирование печатных плат на базе ПЛИС
237
Глава 8
Вопросы проектирования
печатных плат для устройств
на базе ПЛИС
Разработка систем на базе ПЛИС не сводится только к проектиро¬
ванию непосредственно цифровой части в САПР ПЛИС. Важную роль
играет также качество трассировки печатной платы, которое может су¬
щественно ухудшить характеристики проекта по сравнению с тем, что
доступно ПЛИС. В данной главе изложен ряд практических наблю¬
дений и результаты сравнительных исследований различных подходов
к совместной трассировке печатной платы и программируемых соеди¬
нений внутри ПЛИС.
Проектирование печатных плат для электронных устройств — до¬
статочно обширная и сложная тема, поэтому вряд ли можно дать
сколько-нибудь исчерпывающие рекомендации. В течение последних
лет существенные изменения произошли как в области персональных
компьютеров, с помощью которых можно выполнять проектирование,
так и в области электронных компонентов, характеристики которых на¬
прямую обуславливают требования к САПР печатных плат. Очевидно,
что мощность современных компьютеров, используемых в качестве рабо¬
чих станций, многократно возросла по сравнению с платформами 5—10-
летней давности. Однако и требования к печатным платам существен¬
но изменились. Постоянно наблюдаются тенденции к установке ком¬
понентов поверхностного монтажа, корпусов типа BGA с большим ко¬
личеством выводов (и вообще увеличение числа выводов компонентов),
увеличению числа слоев печатной платы, уменьшению минимального
размера печатных проводников и зазоров, а также диаметра отверстий.
Электронные устройства становятся компактнее, вместе с тем повыша¬
ется плотность монтажа компонентов, и печатные платы сами по себе
становятся продуктом деятельности высококвалифицированных разра¬
ботчиков. Вместе с тем потребность в самостоятельном проектировании
печатных плат возникает и у специалистов в смежных направлениях, в
том числе ориентирующиеся на проектирование систем на базе ПЛИС.
Необходимость уделять внимание печатной плате при проектирова¬
нии ПЛИС имеет под собой достаточно серьезные основания. Устройства
с фиксированной топологией кристалла (ASIC) имеют вполне опреде¬
ленную цоколевку, и назначение их выводов строго определено. Можно
ожидать взаимозаменяемости некоторых линий (например, порты ввода-
вывода общего назначения в микроконтроллерах), но, как правило, спи¬
сок соединений выводов микросхемы с другими компонентами печат¬
ной платы определяется схемой устройства, т.е. строго фиксирован и
принципиальным изменениям не подлежит. В этом случае разработчик
печатной платы должен найти способ оптимального размещения компо¬
нентов и трассировки печатных проводников, и соответствующие цели
ставятся перед САПР печатных плат.
Очевидно, что из самых общих соображений такие САПР долж¬
ны. выполнять трассировку быстро, качественно, а получаемый продукт
должен быть удобен для монтажа, отладки, ремонта, сборки, быть эр¬
гономичным и соответствовать массе дополнительных требований, ко¬
торые читатели, вероятнее всего, сформулируют самостоятельно в про¬
цессе чтения данного списка. Можно лишь заметить, что вопросы раз¬
мещения компонентов на печатной плате и последующего проведения
проводников относятся к достаточно сложной области с точки зрения
алгоритмики. В действительности подобные задачи в своей «чистой»
формулировке не могут быть решены даже с учетом возросшей произ¬
водительности современных компьютеров, поскольку число возможных
вариантов размещений компонентов и путей проведения линий растет
(в очень грубом приближении) пропорционально факториалу от числа
компонентов. Неудивительно, что результаты автоматического размеще¬
ния компонентов в подавляющем большинстве случаев выглядят непри¬
емлемыми. Для трассировки же реализуются алгоритмы, использующие
некоторые частные соображения или иным путем избегающие перебора
чрезмерно большого числа вариантов. Обычно разработчик печатной
платы может существенно улучшить качество трассировки, правильно
размещая компоненты и/или вручную редактируя наиболее ответствен¬
ные цепи. Соответственно возрастает ценность как высококвалифици¬
рованных инженерных кадров, так и профессиональных программных
инструментов, способных предоставить подробную информацию о теку¬
щем состоянии проекта и автоматизировать рутинные операции.
Рассмотрим особенности ПЛИС с точки зрения разработчика печат¬
ных плат (ПП). Прежде всего, подавляющее большинство ее выводов
взаимозаменяемы. С одной стороны, можно использовать возможности
замены выводов, чтобы упростить топологию и избавиться от ряда пере¬
ходных отверстий и перекрестных соединений, с другой — к огромному
числу вариантов размещения компонентов и проведения линий добави¬
лось еще и множество вариантов назначения выводов ПЛИС сигналам
проекта. Часто разработчики печатных плат, не имевшие ранее опыта
использования ПЛИС, крайне редко используют возможности замены
выводов, ограничиваясь тем списком соединений, который передает им
системный архитектор или проектировщик ПЛИС. Поэтому приходится
создавать черновой вариант схемы, проводить трассировку платы, после
чего можно создавать окончательный вариант схемы. При этом совре¬
менные средства САПР должны обладать глубокой степенью интегра¬
ции, чтобы данный процесс был автоматизирован (чего не наблюдается,
238
Глава 8
Проектирование печатных плат на базе ПЛИС
239
Рис. 8.1. Фрагмент двухсторонней ПП с применением автоматической
трассировки
например, у связки ISE-FPCAD). Конечным итогом подобной несогласо¬
ванной работы может стать продукт, подобный показанному на рис. 8.1
(приведен фрагмент двухсторонней ПП, трассировка которой проведе¬
на в автоматическом режиме).
Хорошо видно, что на плате имеется большое количество длин¬
ных линий и переходных отверстий, при этом рабочая частота устрой¬
ства оказалась существенно ниже, чем это позволяют примененные ми¬
кросхемы.
На рис. 8.2 приведен фрагмент ПП аналогичной сложности, но при
ее проектировании широко использовались возможности взаимозамены
однотипных выводов и применялась ручная трассировка.
Можно отметить, что представленная на рис. 8.2 печатная плата
имеет более короткие проводники, чем ПП на рис. 8.1, а также меньшее
количество переходных отверстий. Соответственно вероятность устойчи¬
вой работы второго устройства выше, чем первого, но удовлетворитель¬
ным результат можно считать только после того, как будет проверено
соответствие топологии печатной платы внутренней архитектуре ПЛИС.
Структура логической ячейки ПЛИС выглядит следующим образом:
входные сигналы поступают на логический генератор, далее при необ¬
ходимости фиксируются триггером и через выходные мультиплексоры
выводятся из ячейки. Соответственно, нормальным путем прохожде¬
ния сигнала будет направление «слева направо», если смотреть относи¬
тельно матрицы логических ячеек. При этом цепи ускоренного перено¬
са, позволяющие эффективнее реализовать арифметические операции
над многоразрядными аргументами, располагаются вертикально и име-
Рис. 8.2. Фрагмент двухсторонней ПП, разведенной вручную
ют вполне определенное направление распространения, поэтому стар¬
ший бит рекомендуется располагать сверху (также относительно матри¬
цы ячеек). Тогда сигналы, приходящие на блоки ввода-вывода ПЛИС,
будут поданы в основную матрицу ячеек по кратчайшим трассировоч¬
ным линиям и будут наиболее эффективно задействованы выделенные
ресурсы ПЛИС. Шины управления при этом естественно разместить
вдоль верхней и нижней части выводов матрицы (рис. 8.3).
LSB
Управление
i
^з^з^з^з^з^зр^зр зр^
а? н?зр
—
Управление
Рис. 8.3. Рекомендуемое распределение выводов для FPGA небольшого объема
Для ПЛИС среднего и большого размера можно использовать груп¬
пировку сигналов управления вблизи управляемых ими шин данных. Та¬
кое решение (с учетом большей площади кристалла) позволит умень¬
шить задержку распространения управляющих сигналов до места их
действительного использования. Кроме того, программируемые выво¬
ды ПЛИС объединяются в банки (обычно 8), причем различные банки
240
Глава 8
Проектирование печатных плат на базе ПЛИС
241
могут использовать разное напряжение питания. Поэтому может ока¬
заться необходимым размещение и линий данных, и линий управления
в пределах одного банка.
Нельзя утверждать, что приведенные сведения относятся к исклю¬
чительно важным и полностью определяют характеристики проекта.
В действительности можно заметить, что ПЛИС имеют достаточное ко¬
личество трассировочных ресурсов, облегчающих трассировку сигналов
от блоков ввода-вывода до наиболее подходящего места в матрице логи¬
ческих ячеек. Поэтому «неудачное» размещение выводов вряд ли ока¬
жется фатальным (сигналы все же будут разведены), однако задержки
распространения окажутся несколько больше.
Исходя из изложенного, можно понять, что требования к САПР
ПП, способным дать хороший результат при работе с ПЛИС, предъявля¬
ются крайне высокие. Такие САПР должны не только использовать
возможности ПЛИС по переназначению выводов, но и выполнять та¬
кое назначение с учетом внутренней архитектуры устройства (для чего
требуется информация о типе сигналов). Задержки, вносимые ПЛИС,
необходимо сопоставлять с задержками вносимыми внешними провод¬
никами. Можно понять, почему профессиональные САПР ПП способ¬
ные выполнять совместный анализ печатной платы и установленной на
ней ПЛИС (например, САПР компании Mentor Graphics), имеют весь¬
ма высокую стоимость. Рассмотрим, однако, какие результаты можно
получить, выполнив лишь базовые рекомендации и пользуясь простей¬
шими инструментами трассировки. На рис. 8.4 представлена ПП устрой¬
ства, в котором цифровая обработка производится на ПЛИС Spartan-1 IE
XC2S200E фирмы Xilinx. Для данной платы в целом соблюдены из¬
ложенные выше рекомендации.
ПЗУ RS-232
Рис. 8.4. Печатная плата цифрового устройства на базе FPGA Spartan-IIE
Данный проект был выбран по той причине, что синтетические те¬
сты, призванные выявить разницу между автоматическим назначени¬
ем выводов и их ручной расстановкой, не давали убедительного ответа.
Проект, реализующий корреляционную обработку и фильтрацию, упра¬
вляемый софт-процессором, занимает 96 % ресурсов ПЛИС и работает
на максимальной тактовой частоте 13 МГц. Соответственно, он суще¬
ственно нагружает алгоритмы трассировки ПЛИС, и влияние внешних
цепей должно оказаться существенным. Компоненты расположены из
соображений удобства компоновки ПП и наименьшей длины сигналь¬
ных проводников, при этом учтена рекомендация Xilinx — входы рас¬
положены слева по отношению к матрице логических ячеек, выходы —
справа. Этот проект был выбран в качестве реального примера сложного
устройства, на характеристики которого могла бы существенно повлиять
автоматическая расстановка выводов. Однако в режиме автоматической
расстановки выводов (номера выбирались САПР ISE, а не задавались
пользовательским файлом ограничений) тактовая частота проекта сни¬
зилась до 12 МГц! Этот пример наиболее наглядно показывает, что
вопросы автоматического назначения выводов ПЛИС штатными сред¬
ствами САПР в настоящий момент не получили удовлетворительного
решения, и вмешательство разработчика, следующего определенным ре¬
комендациям, вполне может улучшить характеристики проекта.
На печатной плате, показанной на рис. 8.4, можно выделить две
части — аналоговую и цифровую. В левой, аналоговой, части нахо¬
дятся операционные усилители, вторичные источники питания и АЦП.
Правая часть — цифровая. В центре расположена FPGA Spartan-IIE, в
нижней части — ПЗУ для хранения коэффициентов фильтров, реализо¬
ванных в ПЛИС. Печатная плата двухсторонняя. Нижний слой (зеленый
цвет) почти целиком отведен под общий проводник. Такое расположе¬
ние позволяет снизить уровень шума за счет уменьшения сопротивления
общего проводника и повышения эффективности фильтрации помехи по
цепям питания за счет наиболее близкого расположения фильтрующих
емкостей к выводам компонентов.
На рис. 8.5 приведен фрагмент ПП, где изображен делитель напря¬
жения на резисторах R6 и R7 с фильтрующей емкостью С59, располо¬
женной в удобном месте по пути следования сигнала.
16
242
Глава 8
При построении устройств цифровой обработки сигналов всегда
приходится решать вопрос с питанием аналоговой и цифровой части
и с расположением общих проводников На рис. 8.4 видно два поли¬
гона — левый с аналоговыми цепями, а правый с цифровыми. Оба
этих полигона соединены перемычкой в верхней части. Такое распо¬
ложение не позволяет протекать импульсным токам общего проводника
цифровых цепей в аналоговых цепях. АЦП объединяет цифровую и ана¬
логовую части, поэтому имеет два типа питания. На рис. 8.5 видны
выводы 25 и 27 АЦП: вывод 25 общий для аналоговой части, а 27 —
для цифровой. С целью уменьшения шумов каждый из них подклю¬
чен к своему полигону.
Рис. 8.6. Варианты исполнения печатной платы аналоговой части устройства
На рис. 8.6 представлены два варианта аналоговой части одинако¬
вых устройств. На рис. 8.6,а видна неудачная трассировка цепи анало¬
гового питания +5А (на рис. 8.4 на эту цепь указывает стрелка). К не¬
скольким микросхемам питание подводится последовательно, в резуль¬
тате уровень шумов по мере удаления от конденсатора С43 возрастал до
50 мВ. Замена последовательной разводки питающей цепи на парал¬
лельную позволила снизить уровень шума до 5 мВ.
Подводя итог, хочется отметить, что при проектировании печатных
плат необходимо соблюдать несколько основных правил:
• по возможности избегать автоматического размещения компонентов
и автотрассировки связей, а выполнять эти операции вручную;
• широко использовать полигоны для общих выводов, при этом необ¬
ходимо создавать отдельные полигоны для аналоговых и цифровых
цепей, а также для цепей, питающих мощную нагрузку;
• фильтрующие емкости располагать в непосредственной близости от
входных цепей, для фильтрации которых они используются;
• при использовании ПЛИС FPGA фирмы Xilinx входные цепи сле¬
дует располагать в левой части (по отношению к матрице логи¬
ческих ячеек), а выходные — с правой. Основное внимание сле¬
дует обращать на минимизацию длины проводников и отсутствие
перекрестных связей.
Заключение
Широкое распространение программируемой элементной базы с
возможностью быстрого прототипирования цифровых устройств в ла¬
бораторных условиях без необходимости постоянных финансовых затрат
открывает широкие возможности для практической апробации новых ал¬
горитмов цифровой обработки сигналов. Гибкая архитектура ПЛИС по¬
зволяет реализовывать эффективные алгоритмы при высокой произво¬
дительности и вполне современных технических характеристиках. Важ¬
но, что уровень описания схем, доступный для цифровых устройств,
позволяет вносить изменения как в базовые алгоритмы обработки, так
и в высокоуровневое алгоритмическое описание.
Произошедшие в области ПЛИС изменения перевели их из разряда
дорогих систем макетирования в доступные устройства, позволяющие в
короткие сроки спроектировать и изготовить небольшую партию изде¬
лий с вполне конкурентоспособными техническими характеристиками в
области цифровой обработки сигналов. Сквозной маршрут проектирова¬
ния, бесплатные версии САПР и большое количество вспомогательного
программного обеспечения делают данную технологию доступной для
самого широкого круга разработчиков. Хочется надеяться, что изло¬
женные в книге сведения помогут освоить разработчикам такую инте¬
ресную элементную базу, как ПЛИС.
Литература
245
Литература
1. Отнес Р., Эноксон Л. Прикладной анализ временных рядов.
Основные методы: Пер. с англ, под ред. 1/1.Г. Журбенко. — М.: Мир,
1982. — 390 с.
2. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Цифровая об¬
работка сигналов: Справочник. — М.: Радио и связь, 1985. — 312 с.
3. Оппенгейм А.В., Шафер Р.В. Цифровая обработка сигналов:
Пер. с англ, под ред. С.Я. Шаца. — М.: Связь, 1979. — 416 с.
4. Runge С. // Z. Math. Physik. 1903. Vol. 48. Р. 443.
5. Danielson G.C., Lanczos С. Some Improvements in Practical Fourier
Analysis and Their Application to X-Ray Scattering From Liquids //J. Frankin
Inst. Vol. 223.
6. Cooley J.W., Tukey J.W. An Algorithm for the Machine Calculation
of Complex Fourier Series // Math. Computation. 1965. Vol. 19.
7. Дьяконов В.П. Вейвлеты. От теории к практике. — М.: Солон-
P. 2002. — 448 с.
8. Добеши И. Десять лекций по вейвлетам: Пер. с англ. под. ред.
А.П. Петухова. — М.: РХД, 2001.
9. Чуи К. Введение в вейвлеты: Пер. с англ. — М.: Мир, 2001.
10. Брейсуэлл Р. Преобразование Хартли: Пер. с англ. — М.: Мир,
1990. — 175 с.
11. Левкович-Маслюк Л. Дайджест вейвлет-анализа // Компью¬
терра. 1998. № 8.
12. Mallat S.G. A theory for muItiresiIution signal decomposition: The
wavelet representation // IEEE Trans. Patt. Anal. Mach. Intell. 1989. Vol. 11,
№ 7. P. 674-693.
13. Meyer Y. Ondelettes et Operareurs. I: Ondelettes, II: Operateurs
de Calderon-Zygmund, III: (with R. Coifman), Operateurs multilinearies. —
Paris: Hermann, 1990.
14. Новиков И.Я., Стечкин С.Б. Основные конструкции всплесков
// Фундаментальная и прикладная математика. 1997. Т. 3, вып. 4.
15. Корн Г., Корн Т. Справочник по математике для научных ра¬
ботников и инженеров. — М.: Наука, 1978. — 831 с.
16. Рабинер Л., Гоулд Б. Теория и применение цифровой обра¬
ботки сигналов. — М.: Мир, 1978. — 848 с.
17. Потехин Д.С., Тарасов И.Е., Тетерин Е.П. Влияние коэффи¬
циентов и пределов интегрирования вейвлет-функции Морле на точность
результатов анализа гармонических сигналов с нестационарными пара¬
метрами // Научное приборостроение. 2002, Т. 12, № 1. С. 90-95.
18. Потехин Д.С., Тарасов И.Е., Тетерин Е.П. Неразрушающий
контроль жидкостей различного назначения на основе акустических из¬
мерений // Контроль Диагностика. 2000. № 7. С. 33-37.
19. Сиберт У.М. Цели, сигналы, системы: В 2 ч. Ч. 2. — М.: Мир,
1988. — 360 с.
20. Джонсон Д., Джонсон Дж., Мур Г. Справочник по активным
фильтрам: Пер. с англ, под ред. 1/1.Н. Теплюка. — М.: Энергоатомиз-
дат, 1983. — 128 с.
21. Пейтон А.Дж., Волш В. Аналоговая электроника на операци¬
онных усилителях. — М.: Бином, 1994. — 352 с.
22. Гутников В.С. Интегральная электроника в измерительных
устройствах. 2-е изд., перераб. и доп. — Л.: Энергоатомиздат. Ленин-
гр. отд-ние, 1988. — 304 с.
23. Клаассен К.Б. Основы измерений. Электронные методы и при¬
боры в измерительной технике. — М.: Постмаркет, 2000. — 352 с.
24. Тарасов И.Е., Тетерин Е.П., Потехин Д.С. Оценка результатов
многократных измерений с использованием функций распределения ве¬
роятности с переменным масштабом // Научное приборостроение. 2002.
Т. 12, № 1. С. 66-72.
25. Тарасов И.Е. Оценка результатов измерений с использованием
функций распределения вероятности с переменным масштабом // Завод¬
ская лаборатория. Диагностика материалов. 2004. Т. 70, № 11. С. 55-61.
26. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные
сети, генетические алгоритмы и нечеткие системы: Пер. с польск. — М.:
Горячая линия — Телеком, 2004. — 452 с.
27 Терехов В.А., Ефимов Д.В., Тюкин И.Ю., Антонов В.Н. Ней¬
росетевые системы управления. — СПб.: Изд-во С.-Петербургского уни¬
верситета, 1999. — 265 с.
Оглавление
247
Оглавление
Введение 3
Глава 1. Методы записи чисел в цифровых системах и
математические операции над ними 8
1.1. Системы счисления 8
1.2. Запись отрицательного числа 10
1.3. Двоичная арифметика П
1.3.1. Сложение И
1.3.2. Вычитание 12
1.3.3. Умножение 15
1.3.4. Вычитание 18
1.3.5. Извлечение квадратного корня 19
1.4. Способы представления вещественных чисел и арифметиче¬
ские операции 21
1.5. Трансцендентные функции 25
1.6. Применение алгоритмов CORDIC для вычисления некото¬
рых функций 28
1.7. Операции над комплексными числами 32
1.8. Преобразование Фурье для гармонических функций 34
1.9. Важнейшие соотношения, связанные с преобразованием
Фурье 36
Глава 2. Обработка числовых потоков данных 38
2.1. Аналого-цифровое преобразование и связанные с ним
ошибки 38
2.2. Стратегии проведения замеров 44
2.2.1. Когерентные выборки 44
2.2.2. Случайные выборки 45
2.2.3. Временное мультиплексирование 46
2.2.4. Частотное мультиплексирование 47
2.3. Цифро-аналоговое преобразование 48
2.4. АЦП непосредственного преобразования 50
2.4.1. Следящий АЦП 51
2.4.2. АЦП последовательного приближения 52
2.4.3. АЦП параллельного преобразования 53
2.4.4. Конвейерные АЦП 53
2.5. Интегрирующие АЦП 54
2.5.1. Однократно интегрирующий АЦП 54
2.5.2. АЦП двойного интегрирования 56
2.5.3. АЦП с время-импульсным преобразованием 58
2.5.4. Сигма-дельта АЦП 59
2.6. Широтно-импульсная модуляция 60
Глава 3. Спектральный анализ 67
3.1. Дискретное преобразование Фурье 67
3.2. Быстрое преобразование Фурье (FFT) 70
3.2.1. БПФ с прореживанием по времени 71
3.2.2. БПФ с прореживанием по частоте 72
3.3. Реализация ДПФ в ПЛИС 73
3.4. Влияние постоянной составляющей на результаты преобра¬
зования Фурье 78
3.5. Преобразование Фурье нестационарных сигналов. Оконные
функции в преобразовании Фурье 83
3.6. Свертка 84
3.7. Вейвлет-преобразование 87
3.8. Влияние коэффициентов и пределов интегрирования вейв¬
лет-функции Морле на точность результатов анализа гар¬
монических сигналов с нестационарными параметрами .... 90
Глава 4. Фильтры 95
4.1. Типы фильтров 96
4.2. Линейные системы 102
4.3. Цифровая фильтрация сигналов 104
4.4. Реализация цифровых фильтров 105
Глава 5. Примеры цифровой обработки сигналов 113
5.1. Цифровое детектирование AM и ФМ сигналов 113
5.2. Аппаратное детектирование сигналов методом вейвлет-ана¬
лиза 116
5.3. Использование вейвлет-преобразования для исследования
электрокардиограммы сердца 119
5.4. Применение вейвлет-анализа для обработки сигнала в уль¬
тразвуковом интерферометре 121
5.5. Определение с помощью вейвлет-преобразования сдвига фаз
между синусоидальными сигналами 122
5.6. Статистический и регрессионный анализ на основе байесов¬
ского подхода 124
5.7. Краткие сведения о нейронных сетях 141
5.8. Краткие сведения о генетических алгоритмах 144
Глава 6. Обзор микросхем программируемой логики
фирмы Xilinx 148
248 Оглавление
6.1. Общие сведения о ПЛИС 148
6.2. Устройства с архитектурой CPLD 149
6.3. Устройства с архитектурой FPGA 157
6.3.1. Архитектура и основные особенности ПЛИС Virtex 164
6.3.2. Архитектура и основные особенности ПЛИС Spartan 174
6.4. Сравнительный анализ архитектуры основных семейств FPGA
фирмы Xilinx 186
Глава 7. САПР Integrated Software Environment 212
7.1. Основные сведения 212
7.2. Основы работы 214
Глава 8. Вопросы проектирования печатных плат
для устройств на базе ПЛИС 236
Литература 244
Вычислительные системы
на базе ПЛИС Xilinx Virtex 11/4/5
Готовые решения —
здесь и сейчас
ООО НПО «Роста»
ул. Живописная, 3/1, г,фи' I 7
Москва, 12 103, Россия
r^rj-фг.н 1 7 495 947 9017
факс +7 495 947 9018
эл гг г (та. mfo@ro5ta.ru
(айт. www rosta.ru
The ProgramniabJeU^giGr£^panys?'
ЗАО “ИНЛАЙН ТРУП”
Дистрибьютор фирмы Xilinx в России,
Беларуси и Украине:
- поставка ПЛИС CPLD и FPGA,
программного обеспечения и
средств отладки,
Авторизованный тренинг центр
фирмы Xilinx:
- курсы по проектированию на языках
описания (VHDL и Verilog),
- основы создания проектов на базе
ПЛИС Xilinx,
- основы проектирования встраиваемых
систем на базе IP-ядер микропроцессоров
PowerPC и MicroBlaze.
I
Бесплап iное прогоаммное обеспечение ISE WebPACK
За компакт диском с дистрибутивом обращайтесь в офис
INLINEGROUP
Москва, Хорошевское шоссе, д.38, корп.1
тел.: (495) 941-03-38, 787-59-40
факс: (495) 941-07-64
email: xninx@inlinegroup.ru
http://www.plis.ru
Книги издательства «Горячая линия - Телеком»
можно заказать через почтовое агентство DESSY: 107113, г.Москва, а/я 10,
а также интернет-магазин: www.dessy.ru 1SBN 978-5-93517-341-7
Сайт издательства:
www.techbook.ru
9
785935
173418