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

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

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

Задайте стратегию допуска

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

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

  1. Во вкладке Apps выберите HDL Coder. Вкладка HDL Code появляется.

  2. Нажмите Settings. В HDL Code Generation> панель Testbench, для Floating point tolerance check based on, задают relative error или ulp error.

  3. Введите Tolerance Value и нажмите Apply. Если вы выбираете 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. В диалоговом окне Configuration Parameters, на HDL Code Generation> панель Test Bench, в разделе Test Bench Generation Output, выбирают HDL test bench.

  2. В разделе Configuration убедитесь, что Use file I/O to read/write test bench data включен. Чтобы сгенерировать испытательный стенд, который использует константы вместо файлового ввода-вывода, очистите Use file I/O to read/write test bench data.

  3. Нажмите Apply, и затем нажмите Generate Test Bench.

Чтобы узнать больше, как генерация испытательного стенда HDL работает, смотрите Генерацию Испытательного стенда.

Проверьте сгенерированный код с Cosimulation

Сгенерировать cosimulation модель для проверки сгенерированного кода:

  1. В диалоговом окне Configuration Parameters, на HDL Code Generation> панель Test Bench, для Cosimulation model for use with, выбирают cosimulation инструмент.

  2. Нажмите Apply, и затем нажмите Generate Test Bench.

  3. После генерации испытательного стенда сохраните cosimulation модель. В модели дважды кликните Compare подсистема.

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

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

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

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

    RelerrCheck имеет блок MATLAB Function, который показывает, как HDL Coder составляет относительную погрешность при проверке на числовую точность.

  6. В Simulink® Редактор для модели, запустите симуляцию. В конце cosimulation проверяйте compare: Out1 осциллограф.

    Осциллограф сравнивает различие между сигналом результата от блока cosimulation и опорным сигналом от DUT.

См. также Генерируют Модель Cosimulation.

Ограничение

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

Смотрите также

Руководства по моделированию

Функции

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте