exponenta event banner

Советы по повышению скорости моделирования

Получение базовых показателей производительности

Вы можете использовать базовые показатели производительности, синхронизируя выполнение HDL и модели Simulink ® по отдельности и добавляя их вместе; вы можете не ожидать лучшей производительности. Убедитесь, что отдельные симуляции репрезентативны: запуск имитатора только ЛПВП с нереалистичным входным стимулом может быть намного быстрее, чем при наличии реалистичного входного стимула.

Анализ производительности моделирования

В то время как косимуляция влечет за собой определенное количество накладных расходов, иногда само моделирование ЛПВП также снижает производительность. Задавайте себе следующие вопросы при анализе и повышении производительности:

СоображениеРекомендации по повышению скорости
Используется ли NFS или другие удаленные файловые системы?Насколько быстро работает файловая система? Попробуйте использовать другой тип или ожидайте, что используемая файловая система повлияет на производительность.
Вы используете отдельные машины для Simulink и имитатора HDL?Насколько быстро работает сеть? Подождите, пока сеть станет тише, или обратитесь к системному администратору за советом по улучшению подключения.
Вы используете одну и ту же машину для Simulink и имитатора HDL?
  • Вы используете общие трубы вместо розеток? Общая память работает быстрее.

  • Достаточно ли велики процессы Simulink и HDL, чтобы привести к замене диска? Попробуйте добавить больше памяти; в противном случае помните, что вы выполняете огромный процесс и ожидаете, что он повлияет на производительность.

Используете ли вы оптимальные (то есть как можно большие) скорости выборки Simulink на блоке косимуляции HDL?

Например, если установить выходную частоту выборки равной 1, но использовать только каждую десятую выборку, можно сделать скорость 10 и уменьшить трафик между Simulink и имитатором HDL.

Другой пример - если в качестве входа в блок косимуляции ЛПВП установлен очень быстрый тактовый сигнал, но ни один из других входов не нуждается в такой быстрой скорости. В этом случае следует создать часы в HDL или (только для пользователей Insisive ® и ModelSim ®) с помощью панели Часы (Clocks) или Моделирование (Simulation) в блоке косимуляции HDL.

Пользователи ModelSim: Вы составляете/разрабатываете ЛПВП с помощью vopt поток?Использовать -voptargs=+acc оптимизация конструкции для максимальной скорости имитатора (HDL) (только для пользователей ModelSim).

Вы используете режим Accelerator™ Simulink?

Режим ускорения может ускорить выполнение модели. См. раздел «Ускорение моделей» в руководстве пользователя Simulink.
Если у вас есть программное обеспечение Communications Toolbox™, вы рассматривали возможность использования сигналов Framed?Цикловые сигналы уменьшают количество взаимодействий Simulink/HDL.

Косимуляция сигналов на основе кадров с помощью Simulink

Обзор косимуляции с использованием сигналов на основе кадров

Обработка кадров может улучшить вычислительное время моделей Simulink, поскольку одновременно можно обрабатывать несколько выборок. Использование сигналов на основе кадров также позволяет более реалистично моделировать поведение систем на основе кадров. Блок имитатора ЛПВП поддерживает обработку одноканальных сигналов на основе кадров.

Кадр данных представляет собой совокупность последовательных выборок из одного канала или множества каналов. Один кадр одноканального сигнала представлен вектором M-by-1 столбца. Сигнал основан на кадре, если он распространяется через модель на один кадр за раз.

Для обработки кадров требуется программное обеспечение DSP System Toolbox™. Исходные блоки из библиотеки Sources позволяют задать сигнал на основе кадра, задав параметр Samples per frame block. Большинство других блоков обработки сигналов сохраняют состояние кадра входного сигнала. Блок «Буфер» можно использовать для буферизации последовательности выборок в кадры.

Для получения подробной информации об обработке на основе кадров см. раздел «Работа с сигналами» в документации DSP System Toolbox.

Использование обработки на основе кадров

Не требуется настраивать блок имитатора HDL каким-либо специальным образом для обработки на основе кадров. Чтобы использовать обработку на основе кадра в косимуляции, подключите один или более одноканальных сигналов на основе кадра к одному или более входным портам блока имитатора ЛПВП. Все такие сигналы должны соответствовать требованиям, описанным в документе «Требования и ограничения обработки на основе кадров». Блок имитатора ЛПВП конфигурирует любые выходы для работы на основе кадра с соответствующим размером кадра.

Использование основанных на кадрах сигналов влияет только на сторону симулятора. Поведение моделируемого кода ЛПВП в симуляторе ЛПВП никак не меняется. Simulink предполагает, что обработка имитатора ЛПВП основана на выборке. При необходимости Simulink собирает образцы, полученные от имитатора ЛПВП, в кадры. И наоборот, Simulink передает выходные данные в имитатор ЛПВП в кадрах, которые распаковываются и обрабатываются имитатором ЛПВП по одной выборке за раз.

Требования и ограничения обработки на основе кадров

При подключении сигналов на основе кадров к блоку имитатора HDL соблюдайте следующие ограничения и требования:

  • Подключение смешанных сигналов на основе кадров и выборок к одному и тому же блоку имитатора ЛПВП не поддерживается.

  • К блоку имитатора ЛПВП могут быть подключены только одноканальные сигналы на основе кадров. Использование многоканальных (матричных) сигналов на основе кадров в данной версии не поддерживается.

  • Все сигналы на основе кадров, подключенные к блоку имитатора ЛПВП, должны иметь одинаковый размер кадра.

Обработка кадров в модели Simulink прозрачна для работы модели HDL при моделировании в имитаторе HDL. Предполагается, что модель ЛПВП основана на образцах. Следующее ограничение также применяется к модели ЛПВП при моделировании в имитаторе ЛПВП:

Укажите сигналы VHDL ® в качестве значений скаляров, а не векторов или массивов (за исключением векторов битов. векторы битов VHDL и Verilog ® преобразуются в скалярный тип данных с фиксированной точкой соответствующего размера блоком косимуляции HDL).

Пример косимуляции на основе кадра

В этом примере показано использование блока имитатора HDL для косимуляции реализации VHDL простого фильтра нижних частот. В этом примере сравнивается производительность моделирования с использованием сигналов на основе кадров и выборок.

Примечание

Это учебное пособие предназначено для пользователей ModelSim; однако большая часть процесса будет одинаковой для пользователей Incisive.

Примеры файлов (в matlabroot):

  • Пример модели:

    \toolbox\edalink\extensions\modelsim\modelsimdemos\frame_filter_cosim 
  • Код VHDL для косимулируемого фильтра:

    \toolbox\edalink\extensions\modelsim\modelsimdemos\VHDL\frame_demos\lp_fir_8k.vhd

    Фильтр был разработан с помощью конструктора фильтров, а код был сгенерирован с помощью Coder™ HDL Filter Design.

В примере используется файл данных matlabroot\toolbox\signal\signal\mtlb.mat в качестве входного сигнала. Этот файл содержит речевой сигнал. Образец данных имеет тип данных double, дискретизированные с частотой 8 кГц.

На следующем рисунке показаны frame_filter_cosim модель.

Audio Source Signal From Workspace блок обеспечивает входной сигнал от переменной рабочего пространства mtlb. Блок настроен на частоту дискретизации 8 кГц с размером кадра 80, как показано на этом рисунке.

Частота дискретизации и размер кадра входного сигнала распространяются по всей модели.

Файл кода VHDL lp_fir_8k.vhd реализует простой низкочастотный КИХ-фильтр с частотой отсечки 1500 Гц. Блок имитатора ЛПВП моделирует этот модуль ЛПВП. Порты блока имитатора ЛПВП и тактовый сигнал сконфигурированы так, чтобы соответствовать соответствующим сигналам на объекте ЛПВП.

Чтобы моделирование ModelSim выполнялось так, как мы хотим, clk_enable сигнал lp_fir_8k объект должен быть принудительно высоким. Сигнал принудительно подается командой предварительного моделирования, передаваемой блоком имитатора ЛПВП. Команда была введена на панель Моделирование (Simulation) блока Имитатор ЛПВП (HDL Simulator), как показано на следующем рисунке (пример показан для использования с ModelSim).

Блок имитатора HDL возвращает выходные данные в переменной рабочего пространства audiobuff1 через Filtered Signal To Workspace блок.

Для запуска косимуляции выполните следующие шаги:

  1. Запустите MATLAB ® и сделайте его активным окном.

  2. Настройте и измените рабочую папку для записи, которая находится вне контекста папки установки MATLAB.

  3. Добавьте папку-пример к пути MATLAB:

    matlabroot\toolbox\edalink\extensions\modelsim\modelsimdemos\frame_cosim
  4. Копирование файла VHDL lp_fir_8k.vhd в рабочую папку.

  5. Откройте пример модели.

    open frame_filter_cosim.mdl
    
  6. Загрузите исходный речевой сигнал, который будет отфильтрован, в рабочую область MATLAB.

     load mtlb
    

    При наличии совместимой звуковой платы можно воспроизвести исходный сигнал, введя в командной строке MATLAB следующие команды:

    a = audioplayer(mtlb,8000);
    play(a);
  7. Запустите ModelSim, введя следующую команду в командной строке MATLAB:

    vsim

    Теперь окно ModelSim должно быть активным. Если нет, начните.

  8. По запросу ModelSim создайте библиотеку конструкции и скомпилируйте код фильтра VHDL из исходного файла. lp_fir_8k.vhd, путем ввода следующих команд:

    vlib work
    vmap work work
    vcom lp_fir_8k.vhd
    
  9. Моделируемый фильтр нижних частот определяется как объект lp_fir_8k. По запросу ModelSim загрузите экземпляр объекта. lp_fir_8k для косимуляции:

    vsimulink lp_fir_8k
    

    ModelSim теперь настроен на косимуляцию.

  10. Запустите MATLAB. Выполните моделирование и измерьте истекшее время следующим образом:

    t = clock; sim(gcs); etime(clock,t)
    
    ans =
    
        2.7190

    Синхронизация в этом отрывке кода типична для прогона этой модели с учетом времени остановки моделирования, равного 1 секунде, и размера кадра, равного 80 выборкам. Тайминги зависят от системы и будут незначительно отличаться от одного прогона моделирования к другому.

    Обратите внимание на время, которое вы получили. Для следующего прогона моделирования модель будет изменена на операцию на основе образца и будет получено сравнительное время.

  11. MATLAB сохраняет отфильтрованный аудиосигнал, возвращенный ModelSim, в переменной рабочего пространства audiobuff1. При наличии совместимой звуковой платы можно воспроизвести отфильтрованный сигнал, чтобы услышать эффект фильтра нижних частот. Воспроизведите сигнал, введя в командной строке MATLAB следующие команды:

    b = audioplayer(audiobuff1,8000);
    play(b);
  12. Откройте диалоговое окно параметров блока Audio Source Signal From Workspace и задайте для свойства Samples per frame значение 1, как показано на этом рисунке.

  13. Закройте диалоговое окно и выберите окно Simulink. На вкладке Моделирование (Modeling) в разделе Компиляция (Compile) щелкните Обновить модель (Update Model).

    Теперь исходный сигнал (и все наследуемые от него сигналы) является скалярным.

  14. Запустите ModelSim. В ответ на запрос ModelSim введите

    restart
    
  15. Запустите MATLAB. Выполните моделирование и измерьте истекшее время следующим образом:

    t = clock; sim(gcs); etime(clock,t)
    
    ans =
    
        3.8440

    Обратите внимание, что прошедшее время значительно увеличилось при использовании входного сигнала на основе выборки. Синхронизация в этом отрывке кода типична для выборочного прогона этой модели с учетом времени остановки моделирования, равного 1 секунде. Тайминги зависят от системы и будут незначительно отличаться от одного прогона моделирования к другому.

  16. Закройте моделирование упорядоченным образом. В ModelSim остановите моделирование, выбрав команду Моделировать (Simulate) > Завершить моделирование (End Simulation), и закройте ModelSim. Затем закройте окно модели Simulink.