Советы улучшения скорости симуляции

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

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

Анализ эффективности симуляции

В то время как cosimulation влечет за собой определенное количество издержек, иногда сама симуляция HDL также замедляет эффективность. Задайте себе эти вопросы при попытке анализировать и улучшать производительность:

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

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

Вы используете optimal (то есть, как можно больше) частоты дискретизации Simulink на блоке HDL Cosimulation?

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

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

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

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

Режим Acceleration может ускорить выполнение вашей модели. См. "Ускоряющиеся Модели” в Руководстве пользователя Simulink.
Если у вас есть программное обеспечение Communications Toolbox™, вы рассмотрели использование Обрамленных сигналов?Обрамленные сигналы сокращают количество взаимодействий Simulink/HDL.

Cosimulating основанные на системе координат сигналы с Simulink

Обзор к Cosimulation с основанными на системе координат сигналами

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

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

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

См. “Работу с Сигналами” в документации DSP System Toolbox для получения дальнейшей информации об основанной на системе координат обработке.

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

Вы не должны конфигурировать блок HDL Simulator никаким специальным способом к основанной на системе координат обработке. Чтобы использовать основанную на системе координат обработку в cosimulation, соедините один или несколько одноканальных основанных на системе координат сигналов с одним или несколькими входными портами блока HDL Simulator. Все такие сигналы должны удовлетворить требования, описанные в Основанных на системе координат Требованиях к обработке и Ограничениях. Блок HDL Simulator конфигурирует любые выходные параметры для основанной на системе координат операции в подходящем формате кадра.

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

Основанные на системе координат требования к обработке и ограничения

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

  • Связь смешанных основанных на системе координат и основанных на выборке сигналов с тем же блоком HDL Simulator не поддерживается.

  • Только одноканальные основанные на системе координат сигналы могут быть соединены с блоком HDL Simulator. Использование многоканальных (матричных) основанных на системе координат сигналов не поддерживается в этом релизе.

  • Все основанные на системе координат сигналы, соединенные с блоком HDL Simulator, должны иметь тот же формат кадра.

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

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

Основанный на системе координат пример Cosimulation

Этот пример показывает использование блока HDL Simulator к cosimulate реализация VHDL простого фильтра lowpass. В примере вы сравните эффективность симуляции с помощью основанных на системе координат и основанных на выборке сигналов.

Примечание

Этот пример характерен для пользователей ModelSim; однако, большая часть процесса будет тем же самым для Острых пользователей.

Файлы в качестве примера (в matlabroot):

  • Модель в качестве примера:

    \toolbox\edalink\extensions\modelsim\modelsimdemos\frame_filter_cosim 
  • Код VHDL для фильтра, чтобы быть cosimulated:

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

    Фильтр был спроектирован с Filter Designer, и код был сгенерирован Filter Design HDL Coder™.

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

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

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

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

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

Для симуляции ModelSim, чтобы выполниться, когда мы хотим его к, clk_enable сигнал lp_fir_8k сущность должна быть обеспечена высоко. Сигнал обеспечен командой перед симуляцией, переданной блоком HDL Simulator. Команда была введена в панель Simulation блока HDL Simulator, как показано в следующем рисунке (пример, показанный для использования с ModelSim).

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

Чтобы запустить cosimulation, выполните следующие шаги:

  1. StartMatlab® и сделайте его вашим активным окном.

  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. Фильтр lowpass, который будет симулирован, задан как сущность lp_fir_8k. В подсказке ModelSim загрузите инстанцированную сущность lp_fir_8k для cosimulation:

    vsimulink lp_fir_8k
    

    ModelSim теперь создан для cosimulation.

  10. StartMatlab. Запустите симуляцию и измерьте прошедшее время можно следующим образом:

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

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

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

  11. MATLAB хранит отфильтрованный звуковой сигнал, возвращенный в ModelSim в переменной audiobuff1 рабочей области. Если у вас есть совместимая звуковая карта, можно воспроизвести отфильтрованный сигнал услышать эффект фильтра lowpass. Проигрывайте сигнал путем ввода следующих команд в командной строке 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. StartMatlab. Запустите симуляцию и измерьте прошедшее время можно следующим образом:

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

    Заметьте, что прошедшее время значительно увеличилось с основанным на выборке входным сигналом. Синхронизация в этой выборке кода типична для основанного на выборке запуска этой модели, учитывая симуляцию Stop time 1 секунды. Синхронизации системно-зависимы и будут варьироваться немного от одной симуляции, запущенной к следующему.

  16. Закройте симуляцию организованным способом. В ModelSim остановите симуляцию путем выбора Simulate> End Simulation и выйдите из ModelSim. Затем закройте окно модели Simulink.