BC/NW 2014 №1 (24) :8.2
ИСПОЛЬЗОВАНИЕ СИСТЕМЫ MATLAB+SIMULINK в проектировании ЦИФРОВыХ систем на ПЛИС
Байков Д.А.
В статье рассмотрены особенности системы MATLAB+Simulink для автоматизации проектирования систем цифровой обработки сигналов (ЦОС) на программируемых логических интегральных схемах (ПЛИС). Анализируются основные направления использования данной системы в научной и учебной работе. Приводится пример одного из устройств ЦОС на ПЛИС, спроектированного автором с помощью системы MATLAB+Simulink.
ВВЕДЕНИЕ
Среди систем компьютерной математики (СКМ) и пакетов их расширения, ориентированных на численные расчеты, особо выделяется матричная математическая система MATLAB (сокр. от MATrix LABoratory) – самой эффективной среди систем для численных вычислений на сегодняшний день [1]. Данный доклад посвящен рассмотрению основных аспектов применения системы MATLAB+Simulink в инженерном проектировании и в частности систем ЦОС на ПЛИС.
1. ИЗ ИСТОРИИ MATLAB
История развития системы MATLAB насчитывает уже более 30 лет. Первая версия этой системы была создана К. Моулером (университет Нью-Мехико) в 1977 г. Она позволяла работать с пакетами прикладных программ линейной алгебры LINPACK и EISPACK, что и было ее основным назначением.
Некоммерческие версии MATLAB’a появлялись до 1984 г., когда К. Моулер, С. Бангерт и Дж. Литтл образовали компанию MathWorks. С этого момента стали выходить коммерческие версии системы. К настоящему моменту последней является версия MATLAB 8.2 R2013b, вышедшая в начале сентября этого года [1]. Корпорация The MathWorks, Inc. поддерживает тесные связи с университетским миром и предлагает для них значительные скидки. Стоимость студенческой версии, включающей в себя базовый набор расширений и библиотек, составляет порядка 100$ [1].
2. ОСОБЕННОСТИ И ВОЗМОЖНОСТИ СИСТЕМЫ MATLAB+SIMULINK
Система MATLAB состоит из пяти основных частей:
1) язык MATLAB (язык матриц и массивов);
2) среда MATLAB;
3) управляемая графика (команды высокого уровня для визуализации двух- и трехмерных данных и др.);
4) встроенные библиотеки и многочисленные пакеты расширений (в т.ч. Simulink);
5) программный интерфейс (библиотека, которая позволяет писать программы на языках С и Фортран, которые взаимодействуют с MATLAB).
MATLAB поддерживает математические вычисления, визуализацию научной графики и программирование с использованием легко осваиваемого операционного окружения, когда задачи и их решения могут быть представлены в нотации, близкой к математической. Наиболее известные области применения системы MATLAB:
- математика и вычисления;
- разработка алгоритмов;
- вычислительный эксперимент, имитационное моделирование, макетирование;
- анализ данных, исследование и визуализация результатов;
- научная и инженерная графика;
- разработка приложений, включая графический интерфейс пользователя.
Система MATLAB лидирует на рынке среди подобных систем и используется на предприятиях военно-промышленного комплекса, в энергетике, в аэрокосмической отрасли и в автомобилестроении. MATLAB это язык программирования высокого уровня для технических вычислений, расширяемый большим числом пакетов прикладных программ–расширений [3]. Самым известным из них стало расширение Simulink, обеспечивающее блочное имитационное моделирование различных систем и устройств с применением современной технологии визуально-ориентированного программирования.
В системе MATLAB+Simulink важная роль отводится специализированным группам программ (расширениям), так называемым Toolboxes и Blocksets, общее число которых уже приближается к двумстам.
Toolboxes – это набор функций MATLAB (М-файлов), которые позволяют решать отдельные классы задач типа обработки сигналов, систем управления, нейронных сетей, нечеткой логики, вейвлетов и др.
Blocksets – это расширения Simulink, которые предоставляют пользователю библиотеки блоков для специализированных приложений, таких как системы связи, обработка сигналов, энергетические и авиационные системы и др.
3. ПАКЕТ РАСШИРЕНИЯ MATLAB – SIMULINK
Как уже отмечалось, пакет расширения Simulink системы MATLAB является ядром интерактивного программного комплекса, предназначенного для математического моделирования линейных и нелинейных динамических систем и устройств, представленных функциональной блок-схемой, именуемой Sмоделью, или просто моделью.
Simulink можно запустить, нажав соответствующую пиктограмму в линейке меню или набрав команду simulink в командной строке главного окна MATLAB. При этом открывается окно браузера библиотек (рис. 1).
Для построения функциональных блок-схем моделируемых устройств Simulink имеет обширную библиотеку блочных компонентов и удобный редактор блоксхем.
При создании новой модели пользователь может выбрать пункт меню File/New/Model или обратиться к имеющимся примерам, вызвав команду help simdemos или открыв папку MATLAB\toolbox\simulink\simdemos. Использование примеров особенно полезно на начальных этапах работы с Simulink.
Рис. 1. Окно браузера библиотек Simulink
Как программное средство Simulink – типичный представитель визуально-ориентированных языков программирования. Программа моделируемой схемы автоматически генерируется в процессе ввода выбранных блоков компонентов, их соединения и задания параметров блоков [2,3].
Построенная модель сохраняется в файле с расширением .mdl или .slx. Фактически спроектированная в Simulink модель (S модель) является программой которую можно просмотреть с помощью текстового редактора или редактора файлов системы MATLAB. Отметим, что даже для довольно простых моделей файлы могут содержать тысячи строк программного кода. Такая возможность может быть полезной в первую очередь для опытных пользователей с целью модернизации S модели.
Когда модель построена, перед выполнением моделирования необходимо предварительно задать ее параметры. Задание параметров расчета выполняется в панели управления меню Simulation/Model Configuration Parameters или комбинацией клавиш Ctrl+E (рис. 2).
Установка параметров расчета модели выполняется с помощью элементов управления, размещенных на вкладке Solver. Эти элементы разделены на три группы (для версий MATLAB, начиная с R2012b):
1) Simulation time (интервал моделирования или, иными словами, время расчета);
2) Solver options (параметры расчета);
3) Tasking and Sample time options (параметры постановки задач и временных отсчетов).
Поясним самые важные параметры этих групп.
Время расчета задается указанием начального (Start time) и конечного (Stop time) значений времени расчета.
При выборе параметров расчета необходимо указать способ моделирования (Type) и метод расчета нового состояния системы. Для параметра Type доступны два варианта:
- фиксированный шаг (Fixed-step) – интервальное моделирование;
- переменный (Variable-step) шаг – событийное моделирование.
Рис. 2. Панель управления параметрами расчета.
Список методов расчета нового состояния системы содержит несколько вариантов. Первый вариант (discrete) используется для расчета дискретных систем. Остальные методы используются для расчета непрерывных систем. Эти методы различны для переменного (Variable-step) и для фиксированного (Fixed-step) шага времени, но, по сути, представляют собой процедуры решения систем дифференциальных уравнений. При выборе Fixed-step необходимо также задать режим расчета (Mode). Для параметра Mode доступны три варианта:
- MultiTasking (многозадачный) – необходимо использовать, если в модели присутствуют параллельно работающие подсистемы, и результат работы модели зависит от временных параметров этих подсистем;
- SingleTasking (однозадачный) - используется для тех моделей, в которых недостаточно строгая синхронизация работы отдельных составляющих не влияет на конечный результат моделирования;
- Auto (автоматический выбор режима) - позволяет Simulink автоматически устанавливать режим расчета модели.
Подробное описание каждого из методов расчета состояний системы приведено во встроенной справочной системе MATLAB [1].
4. ИНТЕГРАЦИЯ XILINX SYSTEM GENERATOR FOR DSP В SIMULINK
Как уже было отмечено, для системы MATLAB+Simulink существует множество расширений (Toolboxes и Blocksets) для разных отраслей промышленности и их количество неуклонно растет. Одним из таких расширений стал пакет System Generator for DSP фирмы Xilinx, одного из лидеров на рынке ПЛИС и систем автоматизированного проектирования (САПР) систем на их основе.
Xilinx System Generator for DSP стал весьма популярным инструментом для разработки и отладки систем цифровой обработки сигналов (ЦОС) [4].
Этот инструмент обеспечивает высокоуровневое представление проекта, абстрагированное от конкретной аппаратной платформы, которое автоматически компилируется в FPGA «одним нажатием кнопки». Это значительно упрощает проектирование систем обработки информации по сравнению с их проектированием на уровне регистровых передач, осуществляемом на языках описания аппаратуры HDL (VHDL и Verilog). [4].
Рассмотрим особенности использования пакета System Generator for DSP в Simulink. Прежде всего, нужно убедиться в том, что на компьютере установлена система MATLAB-Simulink. Далее необходимо установить САПР ISE фирмы Xilinx версии DSP Edition или System Edition (самая полная версия). При этом нужно проверить совместимость этих двух систем [3]. Затем требуется приобрести коммерческую или активировать пробную 30-дневную лицензию САПР ISE. В процессе установки или после нее запускаем (желательно от имени администратора) из главного меню Xilinx Desing Tools\ISE Design Suite 14.7\System Generator\System Generator для «связывания» MATLAB+Simulink и ISE (на рис. 3 R2012b и 14.7 соответственно). В открывшемся окне сначала выбираем Find MATLAB и указываем путь к установочному каталогу, а затем Apply. Здесь особенно отметим, что в установочном пути ISE не должно быть кириллических символов в именах каталогов, иначе попытка интеграции System Generator и Simulink вызовет ошибку.
Рис. 3. Интеграция System Generator в Simulink
После того как «связывание» прошло успешно (см. рис 3), в окне браузера библиотек Simulink появятся библиотеки Xilinx Blockset, Xilinx Reference Blockset и Xilinx XtremeDSP Kit, об использовании которых речь пойдет в следующем разделе.
5. ПРОЕКТИРОВАНИЕ СИСТЕМ ЦИФРОВОЙ ОБРАБОТКИ ИНФОРМАЦИИ НА ПЛИС С ИСПОЛЬЗОВАНИЕМ SYSTEM GENERATOR
Установив и интегрировав пакет System Generator for DSP в Simulink, разработчик получает доступ к набору аппаратных компонентов ПЛИС типа FPGA фирмы Xilinx и вместе с тем может использовать стандартные блоки Simulink, такие как источники и приемники сигналов, логические и математические операции, блоки подсистем и многое другое [4]. В свою очередь, библиотеки System Generator содержат блоки, представляющие элементы связи, логику управления, обработку сигналов, работу с памятью и встраиваемыми микропроцессорными устройствами и многое другое. Приведем пример, который лишь в малой степени отражает все имеющиеся возможности этих библиотек. Кратко поясним модель, изображенную на рис. 4.
От двухканального источника синусоидальных сигналов Sin Wave поступает сигнал синуса и косинуса с разными частотами на демультикплексор, который разделяет эти сигналы и передает на блоки сопряжения Gateway In. Далее эти сигналы суммируются и поступают на блок вычисления модуля. Для наблюдения некоторые сигналы подаются через блоки сопряжения Gateway Out на осциллограф Time Scope. Временная диаграмма моделирования с блока Time Scope приведена на рис. 5.
Рис. 4. Модель в Simulink с использованием System Generator for DSP
.
Рис. 5. Диаграмма моделирования модели
После того как модель отлажена, можно получить проект, а также HDL-код этой модели для последующей реализации на ПЛИС в САПР ISE. Для этого необходимо запустить компонент System Generator (в литературе фирмы Xilinx он носит название «token» – маркер [4]), присутствие которого обязательно во всех моделях с применением вышеупомянутых библиотек (рис. 6). В окне настроек данного компонента можно выбрать тип ПЛИС, тип файла результата проектирования и путь к нему, а также другие параметры.
После указания всех настроек и выбора действия Generate через некоторое время (порядка нескольких минут в зависимости от производительности компьютера и сложности модели) мы получим сгенерированное HDL описание проекта, которое можно использовать в САПР ISE для реализации спроектированной системы на ПЛИС.
Отметим, что перед получением файла прошивки ПЛИС и проведением тестирования на отладочной плате, рекомендуется провести моделирование в системе ISim (встроенный компонент в САПР ISE) или же ModelSim фирмы Mentor Graphics.
Рис. 6. Настройки генерации проекта
ЗАКЛЮЧЕНИЕ
В настоящее время все большее распространение получает модельно-ориентированное проектирование как одно из направлений инженерного проектирования. Применение ПО MATLAB и интуитивно понятной среды Simulink, основанной на графических блок-схемах в сочетании с такими пакетами как System Generator, приводит к экономии средств и времени разработки, уменьшению количества прототипов и повышению качества конечного продукта.
В заключение данного доклада приведем пример проектирования фильтра с конечной импульсной характеристикой (КИХ) с использованием системы MATLAB+Simulink и сравнение с проектированием КИХ-фильтра на уровне регистровых передач с применением языка VHDL. Перед автором данного доклада в рамках бакалаврской работы была поставлена задача спроектировать последовательный фильтр на основании фильтра-прототипа из источника [5]. В результате был получен КИХ-фильтр с использованием блочной памяти BRAM в качестве ПЗУ и ОЗУ для коэффициентов фильтра и сдвигового регистра соответственно. Для сравнения был спроектирован фильтр с теми же параметрами с помощью компонента fdatool. После его запуска в открывшемся окне вводятся параметры фильтра, осуществляется генерация модуля и анализируются его характеристики. В случае если полученный фильтр полностью соответствует требованиям, есть возможность получить его модель в среде Simulink для дальнейшего применения в более сложных проектах. Из достоинств последовательного КИХ-фильтра отметим значительную экономию ресурсов ПЛИС по сравнению с его Simulink моделью (при 64м порядке фильтра выигрыш примерно в 2 раза по задействованным ячейкам LUT и триггерам).
Следует сказать, что и с помощью пакета System Generator for DSP также есть возможность создания различных фильтров с помощью одноименного компонента FDATool (Filter Design & Analysis Tool) непосредственно в Simulink модели, что еще больше снижает временные затраты при проектировании.
Отметим, что при всех достоинствах использования пакета System Generator for DSP в среде Simulink (а именно простота, и относительно небольшие временные затраты для получения приемлемых результатов) при проектировании цифровых систем часто бывают проекты, требующие выполнения определенных критериев. В частности к таким проектам и относится проект КИХ-фильтра с использованием блочной памяти, упомянутый выше. В таких специализированных случаях пакет System Generator for DSP не способен спроектировать устройство с использованием требуемых ресурсов и провести должным образом оптимизацию проекта.
На рис. 7 и 8 представлены графики сравнения (для порядков N=8,16,64,128) используемых ресурсов ПЛИС и тактовой частоты работы проектов КИХ-фильтра: полученного в среде Simulink (компонент fdatool – префикс «_М») и спроектированного автором данного доклада с использованием блочной памяти BRAM (префикс «_В»).
Рис. 7. График сравнения используемых ресурсов
Рис. 8. График сравнения частот
Из графиков видно, что при практически одинаковых показателях частоты работы двух проектов КИХ-фильтра, разница в показателях используемых ресурсах ПЛИС, начиная с порядка фильтра N, большего 16, становится ощутимой.
К примеру, при 64м фильтра, фильтр на блочной памяти использует в 2.6 раза меньше логических ячеек LUT и триггеров FF, а при порядке N = 128 уже в 4.6 раза. При этом дополнительно задействуется всего несколько блоков BRAM (в современных ПЛИС 7й серии Xilinx число таких блоков уже приближается к двум тысячам, а их суммарная емкость превышает 50 кбит). Использование блочной памяти существенно экономит логические ресурсы ПЛИС и выглядит крайне привлекательным при проектировании фильтров высоких порядков для использования в системах ЦОС.
СПИСОК ЛИТЕРАТУРЫ
1. Официальный веб-сайт компании MathWorks. Документация по системе MATLAB+Simulink. [http://www.mathworks.com]
2. Дьяконов В.П. MATLAB 6.5 SP1/7 + Simulink 5/6. Основы применения. – М.: СОЛОН-Пресс, 2005.
3. Черных И.В. Simulink для создания инженерных приложений. – М.: Диалог-МИФИ, 2004.
4. Официальный веб-сайт компании Xilinx. Документация по САПР ISE и пакету System Generator for DSP. [http://www.xilinx.com]
5. Потехин Д.С., Тарасов И.Е. Разработка систем цифровой обработки сигналов на базе ПЛИС. – М.: Горячая линия – Телеком, 2007.