Содержание к диссертации
Введение
1 Пути повышения эффективности автоматизированного проектирования систем цифровой обработки сигнала 13
1.1 Система цифровой обработки сигнала как объект автоматизированного проектирования 13
1.2 Анализ средств автоматизированного проектирования СЦОС и требования к совершенствованию информационного, математического и программного обеспечения 20
1.3 Цель и задачи исследования 32
2 Структуризация информационного, математического и программного обеспечения автоматизированного проектирования СЦОС 35
2.1 Маршрут проектирования СЦОС 35
2.2 Характеристика инвариантных и предметно-ориентированных средств автоматизированного проектирования 41
2.3 Построение библиотечной структуры информационного, математического и программного обеспечения 75
2.4 Использование внешних: вычислительных модулей на процессорах цифровой обработки сигналов и ПЛИС для ускорения моделирования 84
2.5 Принципы использования имитационного моделирования и оптимизации в качестве базовых процедур анализа и синтеза 87
3 Формирование интегрированной среды имитационного моделирования и оптимизации алгоритмов ЦОС в системе автоматизированного проектирования 96
3.1 Требования к программному обеспечению имитационного моделирования в рамках интегрированной среды 96
3 .2 Визуализация и экспресс-анализ результатов имитационного моделирования в рамках интегрированной среды отладки и верификации 103
3.3 Отладка и верификация алгоритмов цифровой обработки сигнала и программ моделирования в рамках интегрированной среды отладки и верификации 126
3.4 Организация распределенных вычислений и планирование загрузки компьютеров в рамках интегрированной
среды имитационного моделирования и оптимизации 136
4 Разработка программного обеспечения для интегрированной среды имитационного моделирования и оптимизации алгоритмов ЦОС 149
4. 1 Синхронизация и планирование событий в имитационной модели 149
4.2 Инструмент многомерной численной оптимизации в составе программного обеспечения интегрированной среды автоматизированного проектирования 157
A3 Оптимизация разрядности представления данных в системах цифровой обработки сигнала 170
А А Операторная запись в арифметических выражениях с шаблонами матриц 182
4.5 Имитационное моделирование каналов распространения радиосигнала 189
4.6 Имитационное моделирование компонентов
управления системой связи и всей системы связи в целом 206
5 Анализ эффективности применения средств автоматизации проектирования, предложенных в диссертации, при промышленных разработках СЦОС 217
5.1 Анализ промышленного маршрута проектирования 217
52 Анализ эффективности предложенных средств автоматизации проектирования при промышленных разработках систем цифровой обработки сигнала 220
Заключение 231
Приложение 1 Копии актов внедрения результатов диссерационнои работы 233
Приложение 2 Копии свидетельств об официальной регистрации программы для ЭВМ 239
Библиографический список
- Система цифровой обработки сигнала как объект автоматизированного проектирования
- Построение библиотечной структуры информационного, математического и программного обеспечения
- Требования к программному обеспечению имитационного моделирования в рамках интегрированной среды
- Синхронизация и планирование событий в имитационной модели
Введение к работе
Актуальность проблемы, В настоящее время технология цифровой обработки сигнала [98, 31] является одной из наиболее востребованных технологий для широкого прикладного применения и при этом одной из наиболее молодых среди всех технологий, имеющих широкое практическое применение. Цифровая обработка сигнала (ЦОС) применяется для решения задач радиолокации, навигации, телекоммуникации, гидролокации, обработки изображения и звука в различной аппаратуре специального и общегражданского назначения, в медицинской технике, в профессиональной и бытовой аудио-видео технике, в фотографии, в биометрии.
Столь широкое распространение технологии цифровой обработки сигнала объясняется рядом присущих ей преимуществ: стабильность параметров и отсутствие их изменения вследствие старения, не требуется регулировка, обеспечивается высокая повторяемость параметров от экземпляра к экземпляру, гарантируется неизменность параметров при изменении температуры и напряжения питания в достаточно широких пределах, предоставляется возможность модификации алгоритмов обработки сигнала в эксплуатируемой аппаратуре путем простой замены программы, предоставляется возможность применения алгоритмов обработки, не реализуемых в аналоговой технике, обеспечиваются более высокие параметры при меньшей стоимости, по сравнению с аналоговой техникой.
Предпосылки для появления технологии цифровой обработки сигнала зародились в тридцатые годы двадцатого века, когда была сформулирована и доказана теорема отсчетов Котельникова [75], которая обосновывала возможность представления непрерывных аналоговых сигналов последовательностью отсчетов мгновенных значений этих сигналов, взятых достаточно часто. Уже в конце 40-х годов двадцатого века, с появлением первых ЭВМ, технология цифровой обработки сигнала была применена для решения практических задач, пока еще не в реальном масштабе времени.
Современные принципы построения систем цифровой обработки сигнала были определены в 70-е - 80-е годы двадцатого века при выполнении научно-исследовательских и опытно-конструкторских работ по разработке военных радиолокационных и гидроакустических систем. В рамках этих работ был предложен принцип конвейерной организации вычислений, найдены быстрые алгоритмы цифровой обработки сигнала, такие как бы строе преобразование Фурье, быстрое преооразованис Уолша и др,, разработаны принципы синтеза и реализации цифровых фильтров.
На этом этапе существенный вклад в развитие технологии цифровой обработки сигнала внесли советские ученые, выполнившие ряд передовых по тому времени разработок, таких как специализированный процессор цифровой обработки сигналов СПФ СМ [152], совместно разработанный институтом электронных управляющих машин и институтом радиоэлектроники АН СССР в 1983 году, и использованный для обработки сигнала и построения радиолокационных изображений поверхности Венеры.
Основным результатом НИР и ОКР 70-х - 80-х годов двадцатого века, определившим дальнейшее развитие технологии цифровой обработки сигнала, стало появление цифровых процессоров обработки сигнала - сигнальных процессоров [87, 149], Сигнальные процессоры реализуются на тех же самых принципах и технологиях, что и обычные универсальные цифровые процессоры, но за счет оптимальной организации набора команд и специализированной конвейерной обработки обеспечивают повышенную производительность при решении вычислительных задач, характерных для цифровой обработки сигнала.
Первыми широко распространенными сигнальными процессорами в середине 80-х годов двадцатого века стали процессор mPD7720 корпорации NEC (отечественный аналог - М1827ВЕЗ) и процессор TMS32010 компаниями Texas Instruments, который стал первым сигнальным процессором, получившим относительно широкое распространение в России (его аналог выпускался под названием 1867ВМ1) [177]. Затем в короткое время появилось множество сигнальных процессоров, разработанных компаниями Analog Devices, AT&T, Motorola, Philips и рядом других компаний.
В девяностые годы двадцатого века появился новый класс приборов для реализации систем цифровой обработки сигнала - интегральные схемы с программируемой структурой (ПЛИС - программируемая логическая интегральная схема) [78: 156], в которых программа определяет не алгоритм работы, а внутреннюю архитектуру - схему соединений между отдельными логическими элементами на кристалле. Технология ПЛИС позволяет реализовать в перепрограммируемой интегральной схеме оптимальную топологию для решения конкретной задачи, при этом может быть достигнута более высокая производительность, чем в сигнальном процессоре с соизмеримой тактовой частотой, за счет более эффективной схемотехниче ской реализации, оптимизированной под конкретную задачу, а также за счет возможности выполнения параллельных вычислений.
Кроме того, возможности современного полупроводникового производства позволяют быстро и относительно недорого разработать и запустить в производство специализированную большую интегральную схему -СБИС, реализующую конкретные алгоритмы обработки сигнала и за счет аппаратной схемотехнической реализации этих алгоритмов обеспечивающую минимальное энергопотребление и габариты при максимальной производительности ,
Возможности современной техники цифровой обработки сигнала чрезвычайно велики. Производительность цифровых процессоров обработки сигнала достигает десятков миллиардов операций в секунду, количество элементов ПЛИС может превышать миллион, объем памяти в системах цифровой обработки сигнала может достигать нескольких гигабайт. С использованием современных аппаратных платформ цифровой обработки сигнала можно реализовать в реальном масштабе времени весьма сложные алгоритмы обработки сигнала.
При этом быстро развивается не только аппаратура, но и методы проектирования систем цифровой обработки сигнала. Так, если в системах проектирования СБИС и ПЛИС первых поколений применялся схемотехнический ввод, предусматривающий ручное определение их топологии, современные системы автоматического проектирования могут автоматически синтезировать топологию ПЛИС и СБИС на основе описания алгоритма их работы на языке высокого уровня. Первые поколения сишальпых процессоров программировались на языке Ассемблера, в то время как для современных сигнальных процессоров существуют оптимизирующие компиляторы с языков С и C++, причем уровень автоматической оптимизации исполняемого кода зачастую превосходит возможности ручной оптимизации, выполняемой программистом. Таким образом, задача проектирования программно-аппаратной платформы для системы цифровой обработки сигнала постепенно становится типовой инженерной задачей, имеющей универсальное решение, а также инструменты и формальные правила для автоматизированного получения этого решения.
В этой связи, ввиду наличия развитых средств автоматизации проектирования программно-аппаратных платформ цифровой обработки сигнала, основная сложность при проектировании системы цифровой обработки сигнала переносится на этап проектирования алгоритмов, осооенно если учитывать постоянный рост сложности алгоритмов обработки, связанный с ростом вычислительных возможностей аппаратных платформ.
При этом решение задач проектирования алгоритмического обеспечения для систем цифровой обработки сигнала все еще остается недостаточно автоматизированным, и получение решения требует сосредоточения усилий большой команды разработчиков, включающей математиков, радиофизиков, радиоинженеров, программистов, специалистов в области математической статистики.
В то же время, многие задачи этапа проектирования алгоритмического обеспечения системы цифровой обработки сигнала, такие как отладка и верификация программ моделирования, выполнение статистического моделирования, анализ результатов, визуализация выборок сигнала и ряд других задач могут быть эффективно автоматизированы за счет применения специального программного обеспечения.
Имеющиеся средства автоматизации проектирования алгоритмического обеспечения систем цифровой обработки сигнала, такие как Matlab, Simulink, Mathcad, SigLib не вполне отвечают требованиям, предъявляемым к системе автоматизированного проектирования алгоритмов цифровой обработки сигнала, прежде всего, по следующим причинам:
• низкая производительность вычислений, ограничивающая объем статистического моделирования;
• ввиду универсальности существующего программного обеспечения автоматизации проектирования алгоритмов цифровой обработки сигнала и его ориентации на решение широкого круга задач, предоставляемое библиотечное обеспечение для моделирования часто оказывается недостаточно полным для решения задач конкретной предметной области;
• в большинстве случаев оказывается невозможным прямое использование фрагментов кода программ моделирования при разработке встроенного программного обеспечения системы цифровой обработки сигнала.
Таким образом, в условиях постоянного усложнения алгоритмического обеспечения систем цифровой обработки сигнала и при отсутствии существующих средств автоматизации проектирования алгоритмов цифровой обработки сигнала, полностью удовлетворяющих разработчиков таких систем, создание новых систем автоматизации проектирования алго формирование процедур анализа системных параметров при разработке системы связи с использованием оптимизированных алгоритмов ЦОС;
анализ эффективности применения средств САПР для промышленных разработок СЦОС.
Методы исследования. Для решения поставленных задач были использованы теоретические основы автоматизации проектирования, методы экспертных оценок, математической статистики, имитационного статистического моделирования, численные методы оптимизации, методы объектно-ориентированного проектирования и программирование на языке C++,
Научная новизна, В работе получены следующие основные результаты, характеризующиеся научной новизной:
маршрут проектирования СЦОС, обеспечивающий структуризация этапов разработки алгоритмов ЦОС и их трансформацию в проектные процедуры анализа и синтеза на основе статистического имитационного моделирования;
структура программно-методического комплекса САПР СЦОС, позволяющая интегрировать компоненты информационного, математического и программного обеспечения в рамках структурированной системы инвариантных и предметно-ориентированных библиотек анализа и синтеза;
процедура динамической синхронизации и планирования событий в дискретной событийно-ориентированной имитационной модели, отличающийся включением в алгоритмическую схему объектов - часов модельного времени;
способ повышения производительности процедур автоматизированного проектирования СЦОС, отличающийся характером использования внешних аппаратных вычислительных модулей на сигнальных процессорах или ПЛИС, подключаемых к программно-техническому САПР;
комплекс алгоритмов интегрированной среды имитационного моделирования и оптимизации, обеспечивающий реализацию инвариантных функций отладки и верификации программ моделирования на основе объекта - отладочная точка, визуализацию тестовых выборок сигнала, полученных из контрольных точек программы моделирования, и их предварительный статистический анализ, организацию распределенных вычислений в локальной компьютерной сети при выполнении имитационного стати стичсского моделирования, автоматическую оптимизацию разрядности представления данных при целочисленных вычислениях в СЦОС;
процедура оптимального проектирования алгоритмов ЦОС, отли чающаяся способом интеграции в среду имитационного моделирования комплекса алгоритмов многомерной численной оптимизации и объектно-ориентированных проектных операций синтеза;
процедура анализа системных параметров при разработке системы связи с использованием оптимизированных алгоритмов ЦОС, отличающаяся приемами повышения скорости автоматизированного моделирования за счет замены в интегрированной среде имитационной модели низкоуровневых алгоритмов обработки сигнала аналитическими моделями.
Практическая ценность и результаты внедрения. Практическая ценность полученных результатов состоит в следующем:
разработан набор специализированных библиотек на языке C++, применение которых при разработке программ имитационного статистического моделирования позволяет существенно сократить сроки и трудоемкость разработки программ, их отладки и верификации, снизить риск наличия необнаруженных ошибок в программах, в частности: библиотека динамической синхронизации и планирования событий в программах дискретного событийно-ориентированного имитационного моделирования, библиотека матричных вычислений с поддержкой операторной записи в арифметических выражениях с матрицами, библиотека прямой численной оптимизации с универсальным программным интерфейсом, библиотека имитационного моделирования многолучевых и дисперсионных каналов распространения, универсальная графическая библиотека для отображения двумерных графиков;
разработан программный инструмент в составе клиента и сервера с графическим интерфейсом пользователя для отладки и верификации программ моделирования на основе объекта - отладочная точка;
разработан программный инструмент в составе клиента и сервера с графическим интерфейсом пользователя для визуализации тестовых выбо рок сигнала, полученных из контрольных точек программы моделирования и их предварительного статистического анализа;
разработан программный инструмент в составе клиента и сервера с графическим интерфейсом пользователя для организации распределенных вычислений в локальной компьютерной сети при выполнении имитационного статистического моделирования;
разработан программный инструмент в составе клиента и сервера с графическим интерфейсом пользователя для автоматической оптимизации разрядности представления данных при целочисленных вычислениях в системах цифровой обработки сигнала.
Результаты диссертации использованы при выполнении различных НИР и ОКР в ОАО "Концерн "Созвездие", ЗАО "Заря В", ЗАО "Заря К", ЗАО "Кодофон", а также в учебном процессе ВГТУ по специальности 230104 - "Системы автоматизации проектирования", о чем имеются соответствующие акты.
Апробация работы. Основные положения диссертационной работы докладывались и обсуждались на следующих научно-технических конференциях: Всероссийская научно-техническая конференция "Направления развития систем и средств радиосвязи" (Воронеж, 1995), Всероссийская научно-техническая конференция "Радио и волоконно-оптическая связь, локация и навигация" (Воронеж, 1997), Международная научно-техническая конференция "Радиолокация, навигация, связь" (Воронеж, 1999), Международная конференция "Цифровая обработка сигналов и ее применение 1 (Москва, 1999), Международная конференция "Беспроводные системы телекоммуникаций" (Воронеж, 2000), Международная конференция "Цифровая обработка сигналов и ее применение" (Москва, 2000), Международная научно-техническая конференция "Радиолокация, навигация, связь" (Воронеж, 2003), Всероссийская научно-техническая конференция "Информационные технологии" (Воронеж, 2005), Международная конференция "European Conference on Wireless Technology" (Париж, 2005), Международная конференция "IEEE International Symposium on Personal, Indoor and Mobile Communications" (Берлин, 2005), Международная конференция "IEEE Vehicular Technology Conference" (Стокгольм, 2005), Международная научно-техническая конференция "Радиолокация, навигация, связь" (Воронеж, 2006).
Публикации. Основное содержание диссертации изложено в 60 печатных работах, среди которых одна монография, 15 статей в научных журналах, рекомендованных ВАК РФ и 12 свидетельств об официальной регистрации программы, выданных Федеральной службой по интеллектуальной собственности, патентам и товарным знакам. В работах [1, 8, 34-37 46,59,60,66-68,79,99,114, П5, П8-120, 132-134, 151,154,159, 186-188] рассматриваются различные аспекты проектирования и имитационного моделирования алгоритмов ЦОС, в работах [22, 38, 62, ПО, 160, 161] анализируются принципы организации и тенденции развития цифровых телекоммуникационных систем, основные функции и цели ЦОС при их реализации, в работах [123-131] описываются принципы построения компонентов имитационных моделей, методики моделирования и общие принципы построения интегрированной среды моделирования и оптимизации алгоритмов ЦОС, в работах [92, 204-206] рассматриваются методы моделирования и оптимизации телекоммуникационных систем и методы анализа системных параметров при разработке системы связи с использованием оптимизированных алгоритмов ЦОС, в свидетельствах об официальной регистрации программы [71, 105, 135-144] приведена программная реализация основных программных инструментов и библиотек из состава интегрированной среды имитационного моделирования и оптимизации алгоритмов ЦОС,
Структура и объем работы. Диссертация состоит из введения, пяти глав, заключения, библиографического списка из 234 наименований и приложения из актов внедрения результатов работы. Основная часть работы изложена на 228 страницах, содержит 1 таблицу и 71 рисунок.
на первый план задачи сокращения времени и снижения стоимости проектирования новых систем цифровой обработки сигнала.
Поставленные задачи по сокращению времени и снижению стоимости проектирования СЦОС могут быть эффективно решены за счет автоматизации проектирования систем цифровой обработки сигнала [96, 72, 97, 101].
При этом следует учитывать, что ввиду нечеткости, недостаточной формализованности, а зачастую и противоречивости в исходной постановке задачи на проектирование новой системы цифровой обработки сигнала, реализовать сквозное автоматизированное проектирование СЦОС от определения технических требований до подготовки технической документации на производство вряд ли будет возможно в ближайшем будущем, и основным действующим лицом процесса проектирования по-прежнему останется квалифицированный инженер-разработчик. Поэтому задачу по разработке системы автоматизированного проектирования СЦОС следует ставить как задачу разработки комплекса программных средств, ориентированных на интерактивную работу с инженером на протяжении всего этапа проектирования и позволяющих сократить затраты времени на рутинные и повторяющиеся операции.
Детали процесса проектирования существенно зависят от функционального назначения, сложности и способа реализации (сигнальный процессор, ПЛИС, СБИС) конкретной проектируемой СЦОС, Тем не менее, можно выделить отдельные этапы, которые всегда присутствуют в процессе проектирования практически любой СЦОС, это:
• разработка алгоритмов цифровой обработки сигнала, включая синтез, анализ и оптимизацию алгоритмов;
• переход к целочисленным вычислениям при реализации алгоритмов и учет конечной разрядности представления данных;
• разработка специального программного обеспечения для сигнальных процессоров и ПЛИС, реализующего алгоритмы цифровой обработки сигнала в СЦОС;
• лабораторное макетирование и отладка системы цифровой обработки сигнала или ее компонентов с использованием реальных сигнальных процессоров и ПЛИС.
Из всех перечисленных этапов проектирования наиболее дорогим и весьма трудоемким является этап лабораторного макетирования СЦОС, целью которого является проверка возможности реализации и корректности работы алгоритмов СЦОС с учетом реальных ограничений но скорости вычислений, точности представления данных, объему памяти и задержкам переключений электронных компонентов.
Лабораторное макетирование традиционно считается основным средством оптимизации и верификации при разработке электронных устройств и оно было безусловно необходимым этапом при отработке аналоговых электронных систем. Но с точки зрения проектирования цифровых систем обработки сигнала, лабораторное макетирование уже не является совершенно необходимым.
Действительно, процесс цифровой обработки сигнала является детерминированным и полностью- определяется принятыми в СЦОС алгоритмами. Проверка же реализуемости алгоритмов в условиях ограничений по скорости вычислений, точности представления данных, объему памяти и задержкам может быть выполнена посредством моделирования при наличии соответствующих методик и программного обеспечения.
Таким образом, организация адекватного моделирования работы алгоритмов цифровой обработки сигнала в условиях ограниченных ресурсов и вычислительных возможностей должна быть одной из основных задач при разработке САПР СЦОС, Решение этой задачи позволит существенно снизить стоимость проектирования СЦОС и сократить сроки разработки за счет сокращения объемов лабораторного макетирования, вплоть до полного отказа от него в отдельных случаях.
Рассмотрим теперь задачу разработки алгоритмов цифровой обработки сигнала.
Современные сигнальные процессоры, ПЛИС и СБИС способны обеспечить очень высокое быстродействие, до нескольких миллиардов операций в секунду, поддерживают память объемом до единиц гигабайт, обеспечивают большие дополнительные возможности по распараллеливанию и оптимизации вычислений. Эти возможности позволяют успешно выполнять в реальном времени весьма сложные алгоритмы, которые еще десять лет назад считались бы совершенно нереализуемыми. Ввиду высокой сложности алгоритмов, применяемых в современных системах цифровой обработки сигналов, именно этап разработки алгоритмов часто оказывается наиболее сложным, наукоемким и длительным этапом проектирования СЦОС. При этом ошибочные и неоптимальные решения, принятые на этапе разработки алгоритмов, в большинстве случаев не могут быть исправлены на последующих этапах проектирования СЦОС.
Для снижения риска принятия неоптимальных решений по структуре и параметрам алгоритмов, необходимо увеличивать обьем моделирования и проводить более тщательную верификацию программ, что приводит к еще большему увеличению продолжительности данного этапа проектирования, заметно увеличивая его вклад в общую стоимость и продолжительность проектирования СЦОС.
Исходя из выше сказанного, можно утверждать, что автоматизация проектирования на этапе разработки алгоритмов позволит получить существенный выигрыш во времени проектирования всей СЦОС.
Разработка алгоритмов цифровой обработки сигнала представляет собой итеративный процесс, состоящий из синтеза структуры алгоритма, оценивания характеристик алгоритма, анализа влияния внутренних параметров алгоритма на его характеристики и оптимизации этих параметров с целью дальнейшего улучшения характеристик. После изменения параметров алгоритма, необходимо снова выполнить оценивание и анализ его характеристик и так далее, пока желаемые характеристики не будут достигнуты. Если же в ходе оптимизации параметров алгоритма не удается получить желаемых характеристик, или если становится очевидной неоптимальность выбранной структуры алгоритма цифровой обработки сигнала, то в структуру алгоритма вносятся необходимые изменения и процесс анализа-оптимизации начинается заново.
Наиболее длительной обычно является процедура оценивания характеристик алгоритма, выполняемая на основе имитационного статистического моделирования. Для сокращения затрат времени на моделирование, помимо грамотного планирования эксперимента, необходимо разрабатывать программы моделирования с использованием эффективных компилирующих языков программирования, таких как Fortran, С или C++, и по возможности использовать технологию распределенных вычислений с одновременным применением нескольких ЭВМ для выполнения статистического моделирования.
Кроме того, ввиду высокой сложности моделируемых алгоритмов цифровой обработки сигнала и высоких требований к адекватности моделирования, которые еще более возрастают, если в ходе проектирования СЦОС отказываются от лабораторного макетирования и окончательные решения принимают по результатам моделирования алгоритмов, программы моделирования становятся весьма сложными и задача разработки и верификации этих программ становится длительной и трудоемкой.
Для сокращения сроков разработки программ моделирования, сокращения необходимого объема верификации и снижения риска наличия необнаруженных ошибок в окончательных версиях программ, при разработке программ моделирования цифровой обработки сигнала целесообразно использовать специализированные библиотеки стандартных процедур цифровой обработки, а при верификации программ и по ходу выполнения статистического моделирования - использовать вспомогательные программные средства (инструменты) для захвата, визуализации и анализа тестовых выборок сигнала на разных этапах его обработки.
Следовательно, библиотеки стандартных процедур цифровой обработки и библиотеки инструментов захвата, визуализации и анализа тестовых выборок сигнала должны входить в состав программного обеспечения САПР системы цифровой обработки сигнала.
После завершения разработки набора алгоритмов для системы цифровой обработки сигнала, необходимо выполнить переход к целочисленным вычислениям с ограниченной разрядностью представления данных.
Ограничения на разрядность представления данных могут приводить к переполнению или потере точности представления сигнала в ходе вычислений, реализующих алгоритмы цифровой обработки сигнала. Причем эти явления носят вероятностный характер, поскольку определяется НС только алгоритмами цифровой обработки, но и входными воздействиями на СЦОС, которые в обшем случае следует считать случайными.
На первый взгляд, можно было бы потребовать при реализации СЦОС определить такую разрядность представления данных, которая с учетом предельных значений входных воздействий полностью исключала бы возможность ограничения сигнала или потерю точности его представления в процессе вычислений, но из-за протяженной плотности распределения вероятностей мгновенных значений реальных сигналов, это неизбежно приведет к неоправданному увеличению разрядности представления данных, и, как следствие, к неоправданному росту стоимости и сложности СЦОС.
Более целесообразным представляется ставить задачу перехода к целочисленным вычислениям с ограниченной разрядностью представления данных как оптимизационную задачу о минимизации искажений сигнала по отношению к случаю обработки сигнала теми же самыми алгоритмами цифровой обработки, но без переполнений и потери точности представления данных, при наложении граничных условий по максимальной разрядности представления данных в случае обработки на сигнальном процессоре, или максимальному числу элементов обработки при использовании ПЛИС.
Еще один резерв для сокращения сроков и стоимости проектирования СЦОС появляется на этапе разработки специального программного обеспечения для процессоров цифровой обработки сигналов.
Большая часть программного обеспечения для современных сигнальных процессоров разрабатываются на языках программирования высокого уровня, обычно C/C++. Следовательно, если программы моделирования алгоритмов цифровой обработки будут сразу разрабатываться на этих языках, и в них будут предусмотрены свойственные целевому сигнальному процессору ограничения на разрядность представления данных и набор математических операций, то часть исходного кода из программ моделирования может быть прямо перенесено в окончательную программу для сигнального процессора. За счет этого сократится время и трудоемкость разработки программного обеспечения для сигнального процессора, упростится верификация программ и снизится риск ошибок.
Таким образом, для сокращения сроков и стоимости проектирования систем цифровой обработки сигнала, возможно автоматизировать многие операции на различных стадиях проектирования. При этом на каждом этапе проектирования требуется использование различных приемов и методов автоматизации проектирования, которые решают различные частные задачи, свойственные конкретным стадиям разработки.
В этом случае могли бы быть реализованы независимые системы автоматизированного проектирования для поддержки различных этапов проектирования систем цифровой обработки сигналов, что упростило бы разработку этих САПР. Однако подход, основанный на независимой автоматизации проектирования различных стадий разработки, не может гарантировать достижение максимального эффекта от автоматизации проектирования СЦОС в целом ни по снижению сроков разработки, ни по качеству конечного продукта.
Например, характеристики разработанных алгоритмов цифровой обработки могут оказаться недостижимыми при имеющихся ограничениях на разрядность представления данных. Использование таких алгоритмов в СЦОС приведет только к неоправданному росту ее стоимости, но не к улучшению ее качества. Кроме того, за счет неоправданного усложнения этапа разработки алгоритмов цифровой обработки сигнала, возрастает продолжительность и стоимость проектирования СЦОС.
Таким образом, для достижения максимального эффекта от автоматизации проектирования СЦОС, требуется разработка интегрированной среды автоматизированного проектирования, перекрывающей все этапы проектирования и удовлетворяющей следующим требованиям;
• наличие единого формата представления данных на всех этапах проектирования с возможностью простой передачи данных между этапами проектирования для отладки и верификации;
• возможность возврата к предыдущим этапам проектирования для уточнения и коррекции проектирования;
• возможность использование языков CIC++ для разработки программ моделирования или хотя бы отдельных программных модулей;
• высокое быстродействие и эффективное использование вычислительных возможностей компьютера;
• наличие достаточного набора библиотечных подпрограмм и программных модулей для реализации цифровой обработки сигнала;
• наличие набора библиотечных подпрограмм и программных модулей для адекватного моделирования влияния ограниченной разрядности представления данных и ограниченной точности вычислений;
• наличие набора библиотечных подпрограмм и программных модулей для организации статистического моделирования, включая имитаторы каналов распространения, генераторы шума, генераторы информационных потоков;
• наличие вспомогательных программных средств для захвата, визуализации и анализа выборок сигнала;
• наличие вспомогательных программных средств для управления моделированием, задания сценариев моделирования и организации параллельных вычислений с использованием нескольких ЭВМ,
Рассмотрим наиболее распространенные из существующих средств автоматического проектирования систем цифровой обработки сигнала и сопоставим их возможности со сформулированными требованиями.
1.2 Анализ средств автоматизированного проектирования СЦОС и требования к совершенствованию информационного, математического и программного обеспечения
Наиболее распространенной в мировом сообществе разработчиков СЦОС интегрированной средой проектирования является система Matlab [53? 54, 80,108]. Система Matlab разрабатывается и постоянно совершенствуется компанией MathWorks, которая была основана в 1984 году в США. По оценкам самой компании MathWorks, в настоящее время системой Matlab пользуется более миллиона разработчиков по всему миру. Последней доступной версией Matlab является седьмая версия - Matlab 7.0.
Система Matlab представляет собой тяжеловесный универсальный пакет для решения широкого круга математических, оптимизационных и вычислительных задач. Система Matlab состоит из ядра системы основным элементом которого является интерпретатор собственного языка программирования высокого уровня Matlab, и множества подключаемых библиотек, набор которых может быть оптимизирован под предметную область и конкретный набор решаемых задач.
Применительно к разработке СЦОС, в системе Matlab обычно используются следующие библиотеки:
• Signal Processing Toolbox - библиотека цифровой обработки, которая включает функции для синтеза цифровых фильтров, выполнения преобразований Фурье, Гильберта и др., функции линейной обработки сигнала (фильтры), средства анализа визуализации выборок сигнала;
• Communications Toolbox - библиотека элементов цифровой обработки сигнала для моделирования физического уровня телекоммуникационных систем, которая включает функции кодирования, модуляции, имитации каналов распространения, включает средства визуализации каналов распространения, карт модуляции, и другие средства для моделирования физического уровня систем связи;
• Fixed-Point Toolbox - библиотека подпрограмм для моделирования алгоритмов цифровой обработки сигнала в условиях целочисленных вычислений с ограниченной разрядностью представления данных;
• Link for Code Composer Studio - библиотека для сопряжения системы Matlab со стандартными средствами разработки и отладки программного обеспечения сигнальных процессоров фирмы Texas Instruments;
Link for ModelSim - библиотека для сопряжения системы Matlab со стандартными средствами разработки и отладки программного обеспечения для ПЛИС.
Помимо системы Matlab, компания MathWorks предоставляет для автоматизации проектирования СЦОС систему Simulink [43, 181, 55, 56], интегрируемую с системой Matlab.
Simulink предоставляет графический интерфейс визуального программирования для разработки программ моделирования в системе Matlab, Библиотеки Simulink содержат большое количество блоков цифровой обработки сигнала, таких как фильтры, кодеры, декодеры, модуляторы, демодуляторы, генераторы стандартных сигналов и др, В виде самостоятельных блоков системы Simulink представлены также средства визуализации и анализа выборок сигнала, например, блок преобразования Фурье или виртуальный осциллограф. Кроме того, система Simulink позволяет пользователю определить новые блоки, описав их ни языке Matlab.
Сущность программирования в системе Simulink состоит в том, чтобы перенести из панели инструментов в рабочую область модели необходимые блоки и установить необходимые связи между ними. Все операции могут быть выполнены с помощью мыши, так что от оператора не требуется каких либо навыков в области программирования.
Здесь важно подчеркнуть, что система Simulink не является самодостаточной средой имитационного моделирования, это дополнительная надстройка над системой Matlab, Программное обеспечение Simulink переводит описание имитационной модели с языка блок-схемы, определяющего состав модулей обработки сигнала и связи между ними, на язык программирования Matlab для последующего исполнения в среде Matlab.
Разрабатывая систему Simulink, корпорация MathWorks преследовала цель облегчить разработку сложных программ моделирования и позволить самостоятельно выполнять моделирование специалистам предметной области, не достаточно квалифицированным в области программирования. Однако, система Simulink не получила очень широкого распространения среди специалистов по цифровой обработке сигнала в силу следующих причин:
• программы моделирования, полученные при автоматическом переводе блок-схемы Simulink в программный код на языке Matlab в большинстве случаев получаются более объемными и работают медленнее, чем программы сразу же разрабатываемые на языке Matlab;
• сложная система цифровой обработки сигнала, представленная графически в виде блок-схемы Simulink с большим количеством блоков и разветвленными связями между ними зачастую менее удобна для восприятия и анализа специалистом, чем при ее представлении в виде программного кода;
• после отладки и оптимизации алгоритмов цифровой обработки сигнала в среде Simulink требуется дополнительная работа для их описания на языке программирования целевого сигнального процессора или ПЛИС, при этом не могут быть использованы фрагменты программного кода имитационной модели;
По упомянутым причинам, система Simulink редко используется при проектировании сложных СЦОС и имеет основное распространение в качестве учебной лабораторной среды в ВУЗах, где графическая среда визуального программирования имеет явные преимущества при анализе и изучении простых СЦОС, так как позволяет студентам абстрагироваться от вопросов программирования и сосредоточиться па изучении и понимании процессов, происходящих в СЦОС.
Система Matlab, напротив, активно используется в среде разработчиков систем цифровой обработки сигнала. Это объясняется следующими причинами:
• развитые средства двумерной и трехмерной графики предоставляют широкие возможности по визуализации тестовых выборок сигналов;
• широкий набор библиотечных элементов для моделирования цифровой обработки сигнала, включая наиболее сложные в программной реализации элементы для моделирования модуляции-демодуляции и кодирования-декодирования на физическом уровне телекоммуникационных систем;
• возможность вызывать из программ на языке Matlab внешних подпрограмм, разработанных на таких эффективных для реализации вычислительных программ языках, как Fortran, С или C++ [И, 26, 70,158];
• встроенные средства и библиотеки для реализации матричных операций, включая декомпозицию матриц, определение собственных чисел и обращение матриц, в том числе обращение плохо обусловленных матриц и псевдоинверсию;
• встроенные средства для организации графических интерфейсов пользователя для задания параметров и управления процессом вычислений.
Однако система Matlab основана на интерпретирующем языке программирования, что обуславливает ее главный недостаток - низкую скорость вычислений. Ввиду этого система Matlab, несмотря на все перечисленные преимущества, практически непригодна для целей статистического моделирования сложных СЦОС, особенно при высоких требованиях к адекватности моделирования канала распространения сигнала.
Система Matlab позволяет включать в свои программы подпрограммы на языках Fortran, С или C++- для ускорения вычислений. Но разработка на этих языках программирования всей системы СЦОС или хотя бы большей ее части, включающей наиболее требовательные к вычислительным ресурсам блоки, нецелесообразна в системе Matlab, так как теряется основное ее преимущество - возможность использования предопределенных библиотечных процедур. В этом случае более целесообразно сразу разрабатывать всю имитационную модель системы цифровой обработки на компилирующем языке программирования. Реализация же в виде высокопроизводительных подпрограмм только отдельных блоков СЦОС далеко не всегда может существенно влиять на общую скорость моделирования. Кроме того, необходимость поддерживать в подпрограммах написанных на языках Fortran, С или C++ интерфейс Matlab не позволяет перенести эти подпрограммы на целевой процессор цифровой обработки сигнала без дополнительной доработки.
Ввиду указанных недостатков, Matlab чаще всего используется для проверки концепции отдельных алгоритмов, автономного моделирования и отладки компонентов проектируемой СЦОС, визуализации результатов моделирования, анализа выборок сигнала, полученных другими программами или от аппаратуры цифровой обработки. Но при необходимости выполнить большой объем статистического моделирования сложной СЦОС, в большинстве случаев более целесообразной оказывается разработка специальных программ статистического моделирования на Fortran или C++ Другой широко распространенной интегрированной средой для решения математических задач и численных вычислений является система Mathcad [44, 19, 44, 85], продвигаемая компанией Mathsoft уже более 20 лет. По оценкам компании Mathsoft, в настоящее время системой Mathcad пользуется более 1.8 миллиона человек по всему миру. Последней доступной версией Mathcad является двенадцатая версия - Mathcad 12 Л.
Несмотря на то, что система Mathcad по числу зарегистрированных пользователей почти вдвое превосходит систему Matlab, она является менее предметно ориентированной и в области проектирования СЦОС имеет явно меньшее распространение.
Основной отличительной чертой системы Mathcad является отсутствие в ней какого либо языка программирования. Система Mathcad обеспечивает ввод с использованием традиционной математической символьной нотации, что является одним из важнейших преимуществ этой системы.
В состав Mathcad входит пакет Signal Processing Extension Pack -расширение для обработки сигнала, который добавляет к базовой функциональности Mathcad более семидесяти новых функций для моделирования цифровой обработки сигнала, таких как функции линейной фильтрации, спектрального анализа, средства для визуализации и анализа выборок сигнала.
Система Mathcad предоставляет мощные графические средства для построения двумерных и трехмерных графиков в различных системах координат, предоставляет графический интерфейс для поворота и масштабирования трехмерных изображений. Это позволяет использовать Mathcad как мощное средство визуализации для анализа выборок сигнала, полученных из других программах моделирования или записанных непосредственно с отлаживаемой аппаратуры.
В систему Mathcad встроены мощные средства численных вычислений и оптимизации, такие как средства численного интегрирования, средства для решения систем нелинейных уравнений, средства поиска экстремумов многомерных функций. Наличие таких возможностей позволяет эффективно использовать Mathcad на этапе структурного синтеза и предварительного выбора параметров алгоритмов цифровой обработки сигнала на начальных этапах проектирования СЦОС, Однако по ряду причин система Mathcad не может претендовать на роль единой интегрированной среды автоматизированного проектирования систем цифровой обработки сигнала, в частности:
• недостаточный набор библиотечных подпрограмм для моделирования систем кодирования, модуляции, каналов распространения и других аспектов функционирования физического уровня телекоммуникационных систем;
• низкая скорость вычислений, не позволяющая эффективно проводить статистическое моделирование;
• неудобство использования традиционной математической нотации для описания сложных алгоритмов цифровой обработки сигнала;
• отсутствие эффективных встроенных средств для учета влияния на параметры системы ЦОС ограниченной точности целочисленных вычислений и представления данных с ограниченной разрядностью;
• сложность переноса алгоритмов цифровой обработки сигнала из модели в системе Mathcad в программное обеспечение целевого сигнального процессора или ПЛИС,
Система Mathcad иллюстрирует возможность привлечения для автоматизации проектирования систем цифровой обработки сигнала универсальных программных продуктов, не имеющих четко очерченной сферы применения. Но кроме универсальных систем проектирования, существуют сугубо специальные программные продукты, предназначенные исключительно для целей проектирования систем обработки сигнала. Одной из наиболее известных систем автоматизированного проектирования этого класса является Agilent Advanced Design System (ADS) [90], разработанная корпорацией Agilent Technologies, которая отделилась от компании Hewlett-Packard в 1999 году.
Программный комплекс Agilent Advanced Design System (ADS) реализует графический интерфейс с пользователем, включая графический редактор схем, средства отладки и верификации модели и вспомогательные программное обеспечение для захвата, анализа и визуализации тестовых выборок сигнала.
Для выполнения моделирования, к системе ADS необходимо подключить предметно ориентированные библиотеки. Причем, в отличие от рассмотренных ранее систем Matlab и Mathcad, библиотеки системы ADS являются узко специализированными, ориентированными на поддержку конкретных систем. В частности, представлены библиотеки для GSM, W-CDMA, CDMA2000, 1XEV-DO, 802.11а, EDGE и других известных телекоммуникационных систем. При этом библиотеки ADS позволяют моде лировать не только цифровую обработку, но и аналоговый радиочастотный тракт названных систем.
Система ADS является весьма мощным средством разработки и анализа телекоммуникационных систем. Она позволяет моделировать цифровую и аналоговую обработку сигнала, верифицировать программно-аппаратную реализацию физического уровня телекоммуникационной системы на соответствие требованиям стандарта по внеполосным излучениям, срсднсквадратическому отклонению выходного сигнала от эталонного, ряду других параметров. Позволяет формировать тесовые выборки сигнала для проверки аппаратуры и анализировать выборки, полученные от аппаратной платформы. Обеспечивает интерфейс взаимодействия с физическими измерительными приборами.
Однако система ADS в большей степени ориентированна на финальные стадии проектирования, включая верификацию разработанной аппаратной платформы, и мало подходит для выполнения начальных этапов проектирования, таких как статистическое моделирование и оптимизация параметров алгоритмов цифровой обработки. Благодаря встроенной поддержке моделирования аналоговых радиотехнических систем, система ADS более распространена в среде разработчиков радиочастотных трактов, чем среди разработчиков СЦОС. ADS используется также на этапах интеграции аналоговой и цифровой части системы обработки сигнала и для верификации аппаратных решений в области ЦОС. Применение же ADS для сквозного проектирования СЦОС, особенно для разработки алгоритмов цифровой обработки сигнала, является ограниченным и в большинстве случаев недостаточно эффективным.
Другим примером специализированной системы автоматизированного проектирования, которая строго ориентирована на работу с процессорами цифровой обработки сигнала, является система Code Composer Studio [95], разработанная компанией Texas Instruments,
Система Code Composer Studio представляет собой интегрированную среду разработки, редактирования и отладки программ цифровой обработки сигнала па языках программирования C/C++ для цифровых сигнальных процессоров фирмы Texas Instruments. Система Code Composer Studio позволяет выполнять компиляцию программ под указанный целевой процессор, загружать полученный исполняемый код в сигнальный процессор, вы полнять отладку программы непосредственно на процессоре цифровой обработки сигнала.
Кроме того, система Code Composer Studio позволяет эмулировать работу конкретного процессора цифровой обработки сигнала па ЭВМ, имитируя для программ цифровой обработки не только ограничение точности вычислений и точности представления данных, при ограниченной разрядности, но и временные соотношения скорости выполнения процедур и работу в системе реального времени. Система Code Composer Studio позволяет захватывать тестовые выборки сигнала из процессора в реальном времени непосредственно в ходе выполнения программы, визуализировать и анализировать полученную выборку на компьютере.
Система Code Composer Studio очень удобна и эффективна для переноса программ цифровой обработки сигнала на сигнальные процессоры Texas Instruments, для отладки и оптимизации этих программ. Однако, она не предназначена для целей разработки алгоритмов цифровой обработки сигнала, не позволяет эффективно выполнять статистическое моделирование и оптимизацию алгоритмов.
Указанный недостаток в некоторой степени компенсируется возможностью интеграции Code Composer Studio с системой Matlab. Это существенно расширяет возможности по моделированию, анализу и оптимизации алгоритмов цифровой обработки, но при этом сохраняются все недостатки, свойственные для Matlab, прежде всего, низкая производительность, ограничивающая возможности статистического моделирования.
Для систем цифровой обработки сигналов, реализуемых на основе ПЛИС, также существуют специализированные системы автоматизированного проектирования. Хорошим примером такой системы является ModelSim [73, 17] - интегрированная среда разработки программного обеспечения для ПЛИС, созданная корпорацией Mentor Graphics,
Сущность программного обеспечения для ПЛИС коренным образом отличается от сущности программного обеспечения для процессоров любого типа и назначения. Если программа для процессора представляет собой набор инструкций для последовательного выполнения, то программа для ПЛИС представляет собой описание соединений, устанавливаемых между логическими элементами ПЛИС. Поэтому работающую ПЛИС следует представлять не как устройство, выполняющее инструкции программы, а как некое не программное схемотехническое устройство (устройство с жесткой логикой работы). Программа для ПЛИС просто определяет схему этого устройства.
ПЛИС во время исполнения алгоритма цифровой обработки сигнала представляет собой множество устройств (умножители, сумматоры, регистры сдвига, схемы сравнения и т.п.), работающие одновременно и постоянно обменивающиеся информацией. Реальная ПЛИС высокой степени интеграции может содержать сотни тысяч таких устройств, для согласованной работы которых требуется жесткая временная синхронизация.
Обеспечение требуемой синхронизации достигается за счет строго определенной, взаимно согласованной задержки сигнала в каждом из элементов, реализуемых ПЛИС. Обеспечение синхронизации является наиболее сложной задачей при разработке программного обеспечения ПЛИС, при этом ошибки синхронизации крайне сложно обнаружить даже в ходе лабораторного макетирования.
Система ModelSim позволяет выполнять на ЭВМ моделирование работы ПЛИС с учетом временных соотношений, свойственных для конкретного типа ПЛИС. Описание алгоритма для моделирования может быть представлено на языке Verilog, VHDL или SystemC [18,106,200]. При этом разные фрагменты моделируемого алгоритма могут быть описаны с использованием разных языков, более удобных для программирования данного фрагмента.
Система ModelSim предоставляет удобные средства анализа, визуализации и верификации временных соотношений, инструменты отладки для выявления ошибок синхронизации. ModelSim является необходимым средством разработки программного обеспечения для ПЛИС. На сегодняшний день нет более удобных и эффективных решений для проверки правильности временных соотношений при работе ПЛИС.
Кроме того, ModelSim может интегрироваться с системой Matlab с помощью библиотеки Matlab a Link for ModelSim, что открывает новые возможности для генерации и анализа тестовых выборок сигнала.
Тем не менее, следует помнить, что система ModelSim решает только частную задачу на одном из последних этапов проектирования СЦОС -проверку временных соотношений в ПЛИС, поэтому она не может претендовать на роль универсшгьной системы САПР для СЦОС и не позволяет при проектировании СЦОС обходиться без других средств разработки, решающих задачи предшествующих этапов проектирования.
Хорошей альтернативой разработке автономных самодостаточных средств автоматизированного проектирования СЦОС является разработка библиотек для подключения к распространенным интегрированным средам разработки программного обеспечения на языках C/C++,
Примером такого подхода является библиотека цифровой обработки сигнала SigLib [224], распространяемая компанией Numerix. SigLib может использоваться совместно с любыми компиляторами и интегральными системами разработки программ, поддерживающими язык программирования ANSI С- Существуют версии библиотеки для различных операционных систем и аппаратных платформ.
Библиотека SigLib включает более четырехсот функций, организованных в несколько тематических блоков, в частности;
• функции обработки сигнала в частотной области, включая прямое и обратное преобразование Фурье доя действительных и комплексных чисел, преобразование Гильберта в частотной области, функции вычисления энергетического спектра, функции фильтрации в частотной области на основе быстрого преобразования Фурье;
• функции цифровой фильтрации во временной области, включая фильтры с конечной импульсной характеристикой (трансверсальные), рекурсивные фильтры, гребенчатые фильтры и фильтры для подавления постоянной составляющей сигнала;
• функции вычисления коэффициентов фильтров, включая преобразование Гильберта во временной области, Гауссовский фильтр, фильтр вида приподнятый косинус;
• функции вычисления сверток и корреляций;
• функции для обработки изображений, включая вычисление двумерного преобразования Фурье, вычисление гистограммы яркости изображения, медианную фильтрацию, вычисление прямого и обратного двумерного косинусного преобразования;
• функции генерации сигналов, таких как синусоидальный, пилообразный, прямоугольный сигналы с заданными параметрами;
• функции кодирования и модуляции для моделирования физического уровня телекоммуникационных систем, включая поддержку модуляции FSK, BPSK, QPSK5 16-QAM, сверточного кодирования и декодирования Витерби;
• функции поиска минимального и максимального элемента в массиве, округления и ограничения значения в заданном диапазоне (может быть полезна для моделирования алгоритмов обработки сигнала в условиях ограниченной разрядности представления данных);
• функции статистического анализа выборки сигнала, включая вычисление среднего значения и дисперсии, вычисление медианного значения, вычисление гистограммы распределения значений массива, вычисление коэффициентов линейной регрессии;
• функции вычислений с комплексными числами, включая переход между полярными и прямоугольными координатами, вычисление аргумента комплексного числа, модуля и нормы;
• функции матричных операций, включая обращение и разложение матриц.
Принимая во внимание особенности реализации современных систем цифровой обработки сигнала, основу которых составляет программное обеспечение для стандартизированной аппаратной платформы, необходимость выполнения большого объема статистического моделирования на этапе разработки алгоритмов, большее удобство описания алгоритмов цифровой обработки сигнала в виде программ, ан в виде блок-схем, высокую вычислительную эффективность программ на языке С, следует заключить, что применение библиотеки SigLib может существенно повысить эффективность проектирования СЦОС.
Однако, ограниченный набор возможностей, предоставляемых SigLib, не позволяет отнести ее к полноценным системам автоматизированного проектирования, В частности, отсутствуют достаточно развитые средства визуализации выборок сигнала и отладки алгоритмов цифровой обработки, нет средств управления процессом моделирования, недостаточно развиты средства моделирования в условиях ограниченной точности вычислений и ограниченной разрядности представления данных.
Кроме того, разработка программ на языке С на основе процедурно-ориентированной технологии программирования не может считаться вполне современной. Такой подход быстро теряет наглядность, удобство применения и эффективность программирования при усложнении моделируемой системы. Более перспективным для разработки библиотеки цифровой обработки сигнала представляется применение объектно-ориентированной технологии программирования [23, 88, 104] и языка про граммирования C++, тем более, что современные компиляторы C++ не уступают по качеству исполняемого кода компиляторам С.
Таким образом, по результатам анализа существующих систем автоматизированного проектирования СЦОС? можно сделать следующие выводы:
• современные системы автоматизированного проектирования вполне успешно решают задачу взаимодействия с реальными сигнальными процессорами и ПЛИС в ходе лабораторного макетирования и отладки СЦОС, а также задачу подготовки и отладки специального программного обеспечения для СЦОС с точным учетом особенностей конкретных процессоров и ПЛИС (системы ADS, Code Composer Studio, ModelSim);
• наиболее широкий круг задач автоматизации проектирования систем цифровой обработки сигнала - от разработки концепции алгоритмов цифровой обработки до учета влияния ограниченной разрядности пред-ставлення данных, охватывает система Matlab, однако низкая скорость вычислений не позволяет выполнять в системе Matlab большие объемы статистического моделирования (а это основной метод анализа и оптимизации алгоритмов цифровой обработки сигнала), кроме того, существуют определенные сложности при переносе программ с языка Matlab на языки программирования цифровых сигнальных процессоров и ПЛИС;
• системы визуального моделирования мало эффективны и недостаточно удобны для описания, оптимизации и статистического моделирования сложных алгоритмов цифровой обработки, по-видимому, данный подход следует считать устаревшим для описания алгоритмов цифровой обработки сигнала (системы Simulink, ADS);
• системы автоматизированного проектирования, созданные на основе библиотеки цифровой обработки сигнала, интегрируемой в среду разработки программ на C/C++, по-видимому, представляют наиболее перспективное на сегодня направление автоматизации проектирования СЦОС (библиотека цифровой обработки сигнала SigLib компании Numerix), однако набор библиотечных элементов для моделирования телекоммуникационных систем и набор инструментов для визуализации, анализа выборок сигнала и управления процессом моделирования требуют расширения, а концепция построения САПР на базе библиотеки цифровой обработки сигнала - детальной проработки.
Система цифровой обработки сигнала как объект автоматизированного проектирования
Поставленные задачи по сокращению времени и снижению стоимости проектирования СЦОС могут быть эффективно решены за счет автоматизации проектирования систем цифровой обработки сигнала [96, 72, 97, 101]. При этом следует учитывать, что ввиду нечеткости, недостаточной формализованности, а зачастую и противоречивости в исходной постановке задачи на проектирование новой системы цифровой обработки сигнала, реализовать сквозное автоматизированное проектирование СЦОС от определения технических требований до подготовки технической документации на производство вряд ли будет возможно в ближайшем будущем, и основным действующим лицом процесса проектирования по-прежнему останется квалифицированный инженер-разработчик. Поэтому задачу по разработке системы автоматизированного проектирования СЦОС следует ставить как задачу разработки комплекса программных средств, ориентированных на интерактивную работу с инженером на протяжении всего этапа проектирования и позволяющих сократить затраты времени на рутинные и повторяющиеся операции. Детали процесса проектирования существенно зависят от функционального назначения, сложности и способа реализации (сигнальный процессор, ПЛИС, СБИС) конкретной проектируемой СЦОС, Тем не менее, можно выделить отдельные этапы, которые всегда присутствуют в процессе проектирования практически любой СЦОС, это: разработка алгоритмов цифровой обработки сигнала, включая синтез, анализ и оптимизацию алгоритмов; переход к целочисленным вычислениям при реализации алгоритмов и учет конечной разрядности представления данных; разработка специального программного обеспечения для сигнальных процессоров и ПЛИС, реализующего алгоритмы цифровой обработки сигнала в СЦОС; лабораторное макетирование и отладка системы цифровой обработки сигнала или ее компонентов с использованием реальных сигнальных процессоров и ПЛИС. Из всех перечисленных этапов проектирования наиболее дорогим и весьма трудоемким является этап лабораторного макетирования СЦОС, целью которого является проверка возможности реализации и корректности работы алгоритмов СЦОС с учетом реальных ограничений но скорости вычислений, точности представления данных, объему памяти и задержкам переключений электронных компонентов. Лабораторное макетирование традиционно считается основным средством оптимизации и верификации при разработке электронных устройств и оно было безусловно необходимым этапом при отработке аналоговых электронных систем. Но с точки зрения проектирования цифровых систем обработки сигнала, лабораторное макетирование уже не является совершенно необходимым. Действительно, процесс цифровой обработки сигнала является детерминированным и полностью- определяется принятыми в СЦОС алгоритмами. Проверка же реализуемости алгоритмов в условиях ограничений по скорости вычислений, точности представления данных, объему памяти и задержкам может быть выполнена посредством моделирования при наличии соответствующих методик и программного обеспечения. Таким образом, организация адекватного моделирования работы алгоритмов цифровой обработки сигнала в условиях ограниченных ресурсов и вычислительных возможностей должна быть одной из основных задач при разработке САПР СЦОС, Решение этой задачи позволит существенно снизить стоимость проектирования СЦОС и сократить сроки разработки за счет сокращения объемов лабораторного макетирования, вплоть до полного отказа от него в отдельных случаях. Рассмотрим теперь задачу разработки алгоритмов цифровой обработки сигнала. Современные сигнальные процессоры, ПЛИС и СБИС способны обеспечить очень высокое быстродействие, до нескольких миллиардов операций в секунду, поддерживают память объемом до единиц гигабайт, обеспечивают большие дополнительные возможности по распараллеливанию и оптимизации вычислений. Эти возможности позволяют успешно выполнять в реальном времени весьма сложные алгоритмы, которые еще десять лет назад считались бы совершенно нереализуемыми. Ввиду высокой сложности алгоритмов, применяемых в современных системах цифровой обработки сигналов, именно этап разработки алгоритмов часто оказывается наиболее сложным, наукоемким и длительным этапом проектирования СЦОС. При этом ошибочные и неоптимальные решения, принятые на этапе разработки алгоритмов, в большинстве случаев не могут быть исправлены на последующих этапах проектирования СЦОС.
Для снижения риска принятия неоптимальных решений по структуре и параметрам алгоритмов, необходимо увеличивать обьем моделирования и проводить более тщательную верификацию программ, что приводит к еще большему увеличению продолжительности данного этапа проектирования, заметно увеличивая его вклад в общую стоимость и продолжительность проектирования СЦОС.
Исходя из выше сказанного, можно утверждать, что автоматизация проектирования на этапе разработки алгоритмов позволит получить существенный выигрыш во времени проектирования всей СЦОС.
Разработка алгоритмов цифровой обработки сигнала представляет собой итеративный процесс, состоящий из синтеза структуры алгоритма, оценивания характеристик алгоритма, анализа влияния внутренних параметров алгоритма на его характеристики и оптимизации этих параметров с целью дальнейшего улучшения характеристик. После изменения параметров алгоритма, необходимо снова выполнить оценивание и анализ его характеристик и так далее, пока желаемые характеристики не будут достигнуты. Если же в ходе оптимизации параметров алгоритма не удается получить желаемых характеристик, или если становится очевидной неоптимальность выбранной структуры алгоритма цифровой обработки сигнала, то в структуру алгоритма вносятся необходимые изменения и процесс анализа-оптимизации начинается заново.
Наиболее длительной обычно является процедура оценивания характеристик алгоритма, выполняемая на основе имитационного статистического моделирования. Для сокращения затрат времени на моделирование, помимо грамотного планирования эксперимента, необходимо разрабатывать программы моделирования с использованием эффективных компилирующих языков программирования, таких как Fortran, С или C++, и по возможности использовать технологию распределенных вычислений с одновременным применением нескольких ЭВМ для выполнения статистического моделирования.
Построение библиотечной структуры информационного, математического и программного обеспечения
Архитектура и стратегия построения любой библиотеки программных инструментов существенно зависит от принятой концепции програм мировання и возможностей средств программирования. Поэтому библиотечная структура информационного, математического и программного обеспечения для автоматизированного проектирования систем цифровой обработки сигнала не может быть определена в отрыве от выбора языка и стиля программирования,
В настоящее время наиболее целесообразно вести разработку программного обеспечения на компилирующем языке высокого уровня. Это объясняется высокой степенью развитая средств автоматической оптимизации программного кода в таких языках, поддержкой этих средств со стороны производителей процессоров [5, 41, 63], сложностью стратегий управления ресурсами компьютера, реализуемыми современными операционными системами [121, 27]. Как отмечается в [158], попытка в таких условиях соревноваться в эффективности кода с оптимизированным компилятором за счет использования низкоуровневых языков программирования, типа языка ассемблера, заведомо обречена на провал,
В настоящее время не вызывает сомнения необходимость структуризации программного обеспечения и разделения исходного кода программы на функциональные модули. Известно два подхода к разработке модульного программного обеспечения: функциональная декомпозиция и объектно-ориентированное программирование, причем преимущества объектно-ориентированного программирования в большей степени проявляются с ростом сложности имитационной модели [168], обеспечивая сокращение объема исходного кода, упрощение отладки и верификации математического и программного обеспечения, резкое снижение риска наличия необнаруженных ошибок в окончательных версиях программ- Поэтому технологию объектно-ориентированного программирования целесообразно принять за основу для разработки библиотечной структуры и программного обеспечения для автоматизации проектирования систем ЦОС.
Наиболее полную поддержку объектно-ориентированного программирования поддерживают языки программирования Pascal [107], C++ [158] и С# [167]. Каждый из них может с равным успехом использоваться для разработки библиотек автоматизированного проектирования систем цифровой обработки сигнала. Тем не менее, использования языка программирования C++ представляется более предпочтительным, так как язык C++ и его подмножество, язык С, используется для разработки встроенного программного обеспечения аппаратуры цифровой обработки сигнала, Следо вателшо. доже сели программное обеспечение имитационной мололи не будет прямо перенесено на аппаратную платформу цифровой обработки сигнала, полученная решизаиш модели будет наиболее близка к решит ции реаяшой аппаратуры цифровой обработки сигнала что будеї нолоно для достижения максимальной адекватности моде;шроіш-сшо
Иерархия библиотечной структуры программного обеспечения авю-машзйровайного ироешцчштш систем ЦОС, соответствующая коншп-ции моделирования, показанной на рис. 2, приведена на рис. 9.
Как видно на рт. % в бдалдатетной структуре представлено три уровня иерархия, пршчш или разработки библиотек; нижележащего иерархического уровня тттшуюгея библиотеки вышележащих уровней. Библиотеки реек: уровней иерархии предоставляют классы и функции идя использования в программном обеетчшт имитацнокнык моделей.
При разработки библиотечной структуры с шшшаяьньш вниманием следует подойти к вопросу определения процедурного состава библиотек, так ктс отсутствие в пред-южешшм шкттгтщюы обеспечении необходимых для имитационного моделирования процедур резко снижает эффективность разработки программ моделирование заставляя нршр&ммн-ета искать дополнительные библиотеки или самосгоягслыщ реализошмть недостающие компоненты, ттптж время разработки и увеличивая риск ошибок в программах моделирования В тоже премя, иер«ру;жа библиотечного обеспечении неиспользуемыми компонентами также нецелесообразна., так как это усложняет отладку и верификацию библиотечного про граммного обеспечения, затрудняет изучение библиотек и их использование при разработке программ моделирования.
Перечислим функции и классы, которые по мнению автора должны быть включены в библиотечное обеспечение, используемое для автоматизации проектирования систем цифровой обработки сигнала. Приведенный перечень согласован с задачами имитационного моделирования и требованиями к библиотекам, сформулированными в предыдущем разделе.
Класс frame - реализует экранное окно для графического представления результатов моделирования, таких как выборки сигналов, спектры, гистограммы и т.п., обеспечивает возможности масштабирования изображений и прокрутки графиков, поддерживает линейный и логарифмический масштаб по обеим осям, обеспечивает сохранение и экспорт изображений в другие программы, например в документы Microsoft Word
Класс line - отображает линию графика с заданными параметрами, такими как цвет, толщина линии, маркеры точек графика.
Функция plot - основная функция библиотеки, по переданной выборке строит график в указанном окне с использованием указанной линии.
Класс config_reader - выполняет установку значений переменных программы в соответствии с данными из файла конфигурации, или уста навливает значение по умолчанию, если в файле конфигурации нет указа ний относительно данного параметра. Основное назначение этого класса конфигурирование сложных объектов, таких как модели каналов распро странения или декодеры помехоустойчивых кодов. Класс integrate - выполняет численное интегрирование с автома тическим динамическим разбиением интервала интегрирования методом Рунге, вычисляет среднюю и максимальную ошибку интегрирования. Функция integrate - реализует интерфейс к классу integrate, основанный на вызове функции.
Функция monte_carloJn(egrate для вычисления интегралов методом статистических испытаний (методом Монте-Карло), который обеспе чивает высокую скорость вычислений при достаточной для имитационного моделирования точности даже для многомерных интегралов [57].
Класс resampler - изменяет частоту дискретизации потока отсчетов сигнала на основе интерполяции Лагранжа, интерполяции сплайнами или интерполяции на основе экспандера и дециматора частоты дискретизации (в последнем случае коэффициент пересчета частоты дискретизации должен выражаться отношением п/ , где п t т - целые числа).
Функция resample - изменяет число отсчетов выборки сигнала с использованием интерполяции Лагранжа, интерполяции сплайнами или интерполяции на основе экспандера и дециматора частоты дискретизации (в последнем случае число отсчетов выборки может быть изменено в у раз? где п, т - целые числа).
Требования к программному обеспечению имитационного моделирования в рамках интегрированной среды
Библиотечное и математическое обеспечение, рассмотренное в предыдущем разделе, является необходимым, но не достаточным компонентом системы автоматизированного проектирования. Для наиболее эффективного решения задач по проектированию алгоритмического обеспечения систем цифровой обработки сигнала необходимо предоставить разработчику единую интегрированную среду автоматизированного проектирования, объединяющую средства разработки к отладки программного обеспечения, средства верификации алгоритмов, средства визуализации результатов моделирования, библиотеки имитационного моделирования, средства планирования загрузки компьютеров и оптимизации вычислений.
Поскольку основным методом анализа и синтеза алгоритмического обеспечения систем цифровой обработки сигнала является имитационное моделирование, инструменты разработки, компиляции и отладки программ оказываются одними из важнейших компонентов формируемой интегрированной среды автоматизированного проектирования,
Предлагается выбрать в качестве инструмента разработки программ один из существующих инструментов разработки с поддержкой языка C++ и строить интегрированную среду имитационного моделирования и оптимизации алгоритмов цифровой обработки сигнала с его использованием. Целесообразность такого подхода обосновывается высоким уровнем развития существующих средств разработки программного обеспечения, достигнутым в ходе многолетнего тесного сотрудничества ведущих разработ чиков операционных систем, компиляторов и процессоров. Современные средства разработки программного обеспечения предоставляют интегрированную среду редактирования и отладки программ с поддержкой отладки по исходному коду программы прямо в окне текстового редактора, предоставляют средства анализа производительности программ и анализа распределения процессорного времени между процедурами (Microsoft Visual Studio .NET 2003 [9, 50, 183]), выполняют синтаксический анализ и форматирование исходного кода программы в реальном времени, непосредственно при вводе текста программы, с выделением ключевых конструкций языка программирования и интеллектуальной контекстной справкой (интегрируемый в Microsoft Visual Studio .NET 2003 компонент Visual Assist X компании Whole Tomato Software [207]), выполняют компиляцию программ с высокой степенью оптимизации исполняемого кода под систему команд и архитектуру целевого процессора (интегрируемый в среду Microsoft Visual Studio .NET 2003 компилятор Intel C++ Compiler [220]).
При наличии перечисленных инструментов разработки программ, создание собственных программных продуктов аналогичного назначения оказывается нецелесообразным и заведомо неэффективным. Поэтому необходимо сосредоточить усилия на разработке других компонентов интегрированной среды имитационного моделирования и оптимизации алгоритмов цифровой обработки сигнала, В частности, целесообразно разработать следующие компоненты: библиотечное обеспечение среды автоматизированного проектирования алгоритмов цифровой обработки сигнала, интегрируемое в выбранную среду разработки программ; . средства визуализации и экспресс-анализа тестовых выборок сигнала в ходе моделирования; средства отладки и верификации алгоритмов цифровой обработки сигнала и программ моделирования; средства организации распределенных вычислений и планирования загрузки компьютеров для статистического эксперимента.
Сформулируем требования, предъявляемые к программному обеспечению интегрированной среды имитационного моделирования и оптимизации алгоритмов цифровой обработки сигнала.
Требования к программному обеспечению среды разработки и отладки программ
Данное программное обеспечение должно обеспечивать решение следующих задач; ввод и редактирование исходных кодов программ; компиляция программ из исходных кодов н связывание полученных объектных модулей с объектными модулями библиотечного обеспечения среды моделирования; запуск программ на исполнение непосредственно из редактора исходного кода; отладка программ с пошаговым выполнением, синхронизированная с исходным кодом программы, с запуском отладчика непосредственно из редактора исходного кода; трассировка программ и определение относительного времени выполнения каждой из процедур программы с запуском трассировки непосредственно из редактора исходного кода; контроль версий программного обеспечения с возможностью быстрого отката к предыдущим версиям; возможность включения внешних библиотек, в том числе библиотек собственной разработки, в интегрированную среду разработки программного обеспечения.
Данные требования могут быть полностью удовлетворены за счет использования следующего набора существующего программного обеспечения для операционной системы Windows, интегрируемого в среду разработки программ Microsoft Visual Studio .NET 2003: интегрированная среда разработки программного обеспечения Microsoft Visual Studio .NET 2003, включающая текстовый редактор, отладчик, средства анализа производительности программ; программа динамического синтаксического анализа и автоматического форматирования исходного кода программ в реальном времени, непосредственно при вводе текста, Visual Assist X; инструмент контроля версий программного обеспечения Microsoft Visual SourceSafe [220];
Синхронизация и планирование событий в имитационной модели
В силу дискретного характера систем цифровой обработки сигнала, их моделирование обычно выполняется на основе динамической, стохастической, дискретно-событийной имитационной модели [69].
Для решения задач планирования событий и временной синхронизации в имитационной модели СЦОС, предлагается использовать специальный программный объект- часы моделирования [124, 138].
Часы моделирования в библиотеке инструментов моделирования представлены классом simulationj:lockt Основой реализации данного класса является 64-х битный целочисленный счетчик дискретного модельного времени т_таіп_сїоск, являющийся защищенной переменной класса.
Счетчик модельного времени увеличивается на единицу при каждом проходе главного цикла моделирования. Использование 64-х битного счетчика исключает его переполнение и связанный с этим сбой синхронизации при любом разумном времени моделирования.
Для отслеживания границ периодических интервалов времени, в часах моделирования используется остаток от деления счетчика дискретного модельного времени на величину соответствующего временного интервала для чего в классе simulation_с1оск определена соответствующая функция: bool siraulation_clock:: is_time_coincide[unsigned period, unsigned time); Функция возвращает true, если остаток от деления счетчика модельного времени m_main_clock на period равен time. Например, для обнаружения начала периодического временного интервала в 10 единиц модельного времени можно использовать в программе моделирования следующую инструкцию: iJ{clock.is_time_co№cide(lO, 0)) {...}, где переменная clock представляет собой экземпляр класса simulation_clocL
Программа моделирования строится на основе событийной модели, где событием является начало или окончание соответствующего временного интервала. При возникновении очередного события, объект программы имитационного моделирования выполняет заранее определенные для этого события действия, например, в начале временного интервала передатчик может подготовить блок данных для передачи на этом интервале, в конце временного интервала приемник может вынести решение о данных, принятых за прошедший интервал времени.
Для учета задержек сигнала в отдельных компонентах имитационной модели, таких как фильтры, декодеры или имитаторы каналов распространения, начальное значение счетчика mjnain_clock часов моделирования каждого объекта может соответствующим образом корректироваться.
Так как с различными объектами моделирования и событиями в общем случае должны быть сопоставлены различные интервалы времени, число вызовов функции is_time_coincide( ) с различными параметрами в программе моделирования может быть достаточно большим. Для упрощения программирования имитационной модели и для снижения риска ошибок из-за передачи неверных параметров в функцию is_time_coincide( ) целесообразно определить собственный класс часов моделирования для каждого объекта имитационной модели, требующего синхронизации. При этом удобно использование механизма наследования, как метода объектно-ориентированного программирования [23],
Пусть, например., требуется включить в имитационную модель системы связи передатчик сигнала, формирующий кадры данных фиксированной длительности. Каждый кадр включает целое число символов данных, причем каждый символ имеет некоторую протяженность, так что на длительности символа укладывается целое число отсчетов сигнала.
Тогда для синхронизации данного передатчика с имитационной моделью и планирования действий (событий) по подготовке данных кадра и переходу к очередному символу может быть определен следующий класс: class tx_clock : public simulation_clock { public: bool is_frame_begin() { return is_time_coincide(frame_duration, 0); } bool is_symbol_begin{) { return is_time_coincide(symbol_duration, 0); } };
Данный класс позволяет использовать в программе моделирования предметно-ориентированные функции is_frame_begin() и is_symbol_heginQ вместо универсальной функции isJime_coincide{ ), что делает программирование более наглядным и существенно сокращает вероятность присутствия необнаруженных ошибок в имитационной модели.
Описанная методика синхронизации и планирования событий дискретной событийно-ориентированной имитационной модели на основе объекта часы моделирования позволяет достаточно просто установить статическую синхронизацию, однако в системах цифровой обработки сигнала часто требуется динамическое изменение расписания событий. Например, при моделировании приема в многолучевом канале с изменяющейся с течением времени задержкой сигнала приемник должен непрерывно корректировать время начала и окончания символов данных и других интервалов времени, определяемых по локальным часам моделирования приемника.
На первый взгляд, кажется, что такую коррекцию можно легко выполнить за счет изменения на заданную величину счетчика дискретного модельного времени в объекте часы моделирования, но при использовании событийно-ориентированной модели такое решение может привести к ошибкам, связанным с пропуском или повторным возникновением событий. В самом деле, если увеличить значение счетчика модельного времени объекта часы моделирования больше, чем на единицу, то некоторые события могут оказаться пропущенными, если же уменьшить значение счетчика, то ранее прошедшие события возникнут повторно, В результате, объекты имитационной модели могут перейти в некорректные состояния.