Руководство по проектированию для блока MATLAB function

Используйте скомпилированные внешние функции с блоками MATLAB function

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

Такие функции должны быть заданы в файлах, которые находятся на пути к блоку MATLAB function. Используйте директиву компиляции %#codegen, чтобы указать, что код MATLAB подходит для генерации кода. См. Функциональное Определение (MATLAB Coder) для получения информации о том, как создать, скомпилировать, и вызвать внешние функции.

Создайте код блока MATLAB function сначала

Прежде, чем сгенерировать HDL-код для подсистемы, содержащей блок MATLAB function, создайте код блока MATLAB function, чтобы проверить ошибки. Чтобы создать код, выберите Build из меню Tools в Редакторе блока MATLAB function (или нажмите CTRL+B).

Используйте утилиту hdlfimath для оптимизированных настроек FIMATH

Функция hdlfimath является утилитой, которая задает спецификацию FIMATH, которая оптимизирована для генерации HDL-кода.

Следующий листинг показывает установку fimath, заданную hdlfimath.

hdlfm = fimath(...
    'RoundMode', 'floor',...
    'OverflowMode', 'wrap',...
    'ProductMode', 'FullPrecision', 'ProductWordLength', 32,...
    'SumMode', 'FullPrecision', 'SumWordLength', 32,...
    'CastBeforeSum', true);

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

Когда свойство fimath OverflowMode спецификации fimath установлено в 'Saturate', генерация HDL-кода запрещена для следующих случаев:

  • SumMode установлен в 'SpecifyPrecision'

  • ProductMode установлен в 'SpecifyPrecision'

Используйте оптимальные настройки опции фиксированной точки

Используйте установку (Fixed-point) по умолчанию для опции Treat these inherited signal types as fi objects.

Очистите установку Saturate on integer overflow для блока MATLAB function.

Установите тип выходных данных блоков MATLAB function явным образом

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

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