Программное обеспечение HDL Coder™ поддерживает генерацию HDL-кода от блоков MATLAB function, которые включают скомпилированные внешние функции. Эта функция позволяет вам записать допускающий повторное использование код MATLAB® и вызвать его от нескольких блоков MATLAB function.
Такие функции должны быть заданы в файлах, которые находятся на пути к блоку MATLAB function. Используйте директиву компиляции %#codegen, чтобы указать, что код MATLAB подходит для генерации кода. См. Функциональное Определение (MATLAB Coder) для получения информации о том, как создать, скомпилировать, и вызвать внешние функции.
Прежде, чем сгенерировать 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 явным образом, вы включаете оптимизацию для отображения RAM и конвейеризации. Постарайтесь не наследовать тип выходных данных для блока MATLAB function, для которого вы хотите включить оптимизацию.