exponenta event banner

Проверка сгенерированного кода из собственной плавающей точки

Собственная технология HDL Coder™ с плавающей запятой может генерировать целевой независимый код HDL из вашего дизайна с плавающей запятой. Можно синтезировать конструкцию с плавающей запятой на любой базовой FPGA или ASIC. Конструкции с плавающей запятой имеют более высокую точность, более высокий динамический диапазон и более короткий цикл разработки, чем конструкции с фиксированной запятой. Если в конструкции имеются сложные математические и тригонометрические операции, используйте собственную технологию с плавающей запятой.

При представлении бесконечно вещественных чисел с конечным числом битов могут быть ошибки округления с правильным диапазоном округления значений, который задает стандарт IEEE-754. Для измерения ошибок округления можно задать проверку допуска с плавающей запятой на основе relative error или ulp error. Дополнительные сведения об этих ошибках округления см. в разделах Относительная точность и Соображения ULP.

Определение стратегии допуска

Перед созданием testbench укажите проверку допуска с плавающей запятой для проверки созданного кода.

Чтобы задать проверку допуска в диалоговом окне Параметры конфигурации (Configuration Parameters), выполните следующие действия.

  1. На вкладке Приложения выберите Кодер HDL. Появится вкладка Код HDL (HDL Code).

  2. Щелкните Настройки (Settings). На панели «Создание кода HDL» > «Testbench» для проверки допуска с плавающей запятой на основе укажите relative error или ulp error.

  3. Введите значение допуска и нажмите «Применить». При выборе relative error, значением по умолчанию является значение допуска 1e-07. При выборе ulp errorзначение допуска по умолчанию равно нулю. Дополнительные сведения см. в разделе Числовые соображения с собственной плавающей точкой.

Чтобы задать стратегию допуска в командной строке, используйте:

  1. Задание параметра проверки допуска с плавающей запятой с помощью FPToleranceStrategy.

    % check for floating-point tolerance based on relative error 
    hdlset_param('sfir_single', 'FPToleranceStrategy', 'Relative'); 
    
    % check for floating-point tolerance based on the ULP error
    hdlset_param('sfir_single', 'FPToleranceStrategy', 'ULP'); 
  2. На основе FPToleranceStrategy , введите значение допуска с помощью FPToleranceValue.

     % if using relative error, enter custom tolerance value
    hdlset_param('FP_test_16a', 'FPToleranceValue', 1e-06); 
    
    % if using ULP error, enter tolerance value greater 
    % than or equal to 1
    hdlset_param('FP_test_16a', 'FPToleranceValue', 1); 

Проверка сгенерированного кода с помощью тестового стенда HDL

Чтобы создать тестовый стенд HDL для проверки сгенерированного кода:

  1. В диалоговом окне «Параметры конфигурации» на панели «Создание кода HDL» > «Испытательный стенд» в разделе «Вывод результатов создания испытательного стенда» выберите испытательный стенд HDL.

  2. В разделе Конфигурация убедитесь, что включен параметр Использовать файловые входы/выходы для чтения/записи данных тестового стенда. Чтобы создать тестовый стенд, использующий константы вместо ввода-вывода файла, снимите флажок Использовать ввод-вывод файла для чтения/записи данных тестового стенда.

  3. Нажмите «Применить», а затем «Создать испытательный стенд».

Дополнительные сведения о том, как работает стенд тестирования HDL, см. в разделе Создание стенда тестирования.

Проверка созданного кода с помощью Cosimulation

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

  1. В диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Создание кода HDL (HDL Code Generation) > Испытательный стенд (Test Bench) для модели Cosimulation для использования с выберите инструмент cosimulation.

  2. Нажмите «Применить», а затем «Создать испытательный стенд».

  3. После создания стенда сохраните модель косимуляции. В модели дважды щелкните значок Compare подсистема.

  4. Если дважды щелкнуть значок Assert_Out1 блок, параметры блока отображают указанное значение параметра.

  5. Заглянуть внутрь Assert_Out1 щелкните маску. Если задать проверку допуска с плавающей запятой на основе ulp error, модель показывает ULPChecker блок.

    ULPChecker имеет функциональный блок MATLAB, который показывает, как кодер HDL учитывает ошибку ULP при проверке на числовую точность.

    Если задать проверку допуска с плавающей запятой на основе relative error, модель показывает RelErrCheck блок.

    RelerrCheck имеет функциональный блок MATLAB, который показывает, как кодер HDL учитывает относительную ошибку при проверке на числовую точность.

  6. В редакторе Simulink ® для модели запустите моделирование. В конце косимуляции проверьте compare: Out1 сфера применения.

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

См. также раздел Создание модели косимуляции.

Ограничение

При проверке созданного кода конструкции, использующие стандарты IEEE до VHDL-2008, не поддерживаются с собственной плавающей запятой.

См. также

Рекомендации по моделированию

Функции

Связанные примеры

Подробнее