В этом примере показано, как сгенерировать блок MATLAB function из проекта MATLAB® для системной симуляции, генерации кода и программирования FPGA в Simulink®.
HDL Coder может сгенерировать HDL-код и от MATLAB® и от Simulink®. Кодер может также сгенерировать компонент Simulink®, блок MATLAB function, из вашего кода MATLAB.
Эта возможность позволяет:
Спроектируйте алгоритм в MATLAB;
Сгенерируйте блок MATLAB function из своего проекта MATLAB;
Используйте компонент MATLAB в модели Simulink системы;
Симулируйте и оптимизируйте системную модель;
Сгенерируйте HDL-код; и
Программируйте FPGA с целой разработкой системы.
В этом примере вы сгенерируете блок MATLAB function из кода MATLAB, который реализует КИХ-фильтр.
Код MATLAB, используемый в примере, является простым КИХ-фильтром. Пример также показывает испытательный стенд MATLAB, который осуществляет фильтр.
design_name = 'mlhdlc_fir'; testbench_name = 'mlhdlc_fir_tb';
Проект: mlhdlc_fir
Испытательный стенд: mlhdlc_fir_tb
Выполните следующие строки кода, чтобы скопировать файлы в качестве примера во временную папку.
mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos'); mlhdlc_temp_dir = [tempdir 'mlhdlc_fir']; % Create a temporary folder and copy the MATLAB files cd(tempdir); [~, ~, ~] = rmdir(mlhdlc_temp_dir, 's'); mkdir(mlhdlc_temp_dir); cd(mlhdlc_temp_dir); copyfile(fullfile(mlhdlc_demo_dir, [design_name,'.m*']), mlhdlc_temp_dir); copyfile(fullfile(mlhdlc_demo_dir, [testbench_name,'.m*']), mlhdlc_temp_dir);
Чтобы симулировать проект с испытательным стендом до генерации кода, чтобы убедиться там не ошибки периода выполнения, вводят следующую команду:
mlhdlc_fir_tb
Чтобы создать новый проект HDL Coder, введите следующую команду:
coder -hdlcoder -new fir_project
Затем добавьте файл 'mlhdlc_fir.m' в проект как функция MATLAB и 'mlhdlc_fir_tb.m' как Испытательный стенд MATLAB.
Нажмите кнопку Workflow Advisor, чтобы запустить HDL Workflow Advisor.
Чтобы сгенерировать блок MATLAB function из проекта HDL MATLAB, у вас должна быть лицензия Simulink. Если следующая команда возвращается '1', Simulink доступен:
license('test', 'Simulink')
Во Вкладке "Дополнительно" HDL Workflow Advisor включите Сгенерировать опцию блока MATLAB function.
Чтобы сгенерировать блок MATLAB function, необходимо также преобразовать проект от с плавающей точкой до фиксированной точки.
Щелкните правой кнопкой по 'Code Generation', продвигаются и выбирают опцию, 'Запущенную к выбранной задаче', чтобы запустить все шаги с начала через генерацию HDL-кода.
Неназванная модель открывается после генерации HDL-кода. Это имеет блок MATLAB function, содержащий фиксированную точку код MATLAB из вашего проекта HDL MATLAB. HDL Coder автоматически применяет настройки к модели и блоку MATLAB function так, чтобы они могли симулировать в Simulink и сгенерировать HDL-код.
Чтобы сгенерировать HDL-код от блока MATLAB function, введите следующую команду:
makehdl('untitled');
Можно переименовать и сохранить новый блок, чтобы использовать в большем проекте Simulink.
Можно запустить следующие команды, чтобы очистить временную папку проекта.
mlhdlc_demo_dir = fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoderdemos', 'matlabhdlcoderdemos'); mlhdlc_temp_dir = [tempdir 'mlhdlc_fir']; clear mex; cd (mlhdlc_demo_dir); rmdir(mlhdlc_temp_dir, 's');