Программное обеспечение 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, для которого вы хотите включить оптимизацию.