HDL Workflow Advisor проведёт вас через этапы генерации HDL-кода для Simulink® подсистема и процесс проекта FPGA, такие как:
Проверка модели на совместимость генерации HDL-кода и автоматическое исправление несовместимых настроек.
Генерация HDL-кода, испытательного стенда и скриптов для создания и запуска кода и испытательного стенда.
Генерация косимуляции или испытательных стендов DPI SystemVerilog и покрытия кода (требует HDL Verifier™).
Синтез и анализ времени путем интегрирования с сторонними инструментами синтеза.
Обратная аннотация модели с информацией о критическом пути и другой информацией, полученной во время синтеза.
Полные автоматизированные рабочие процессы для выбранных целевых устройств разработки FPGA, включая симуляцию FPGA в цикле (требует HDL Verifier) и рабочий процесс ввода-вывода Simulink Real-Time™ FPGA.
Чтобы запустить HDL- рабочего процесса как скрипт командной строки, сконфигурируйте и запустите HDL Workflow Advisor с помощью проекта Simulink, затем экспортируйте скрипт. Скрипт использует команды HDL Workflow CLI для выполнения тех же задач, что и HDL Workflow Advisor, включая генерацию битового потока FPGA или синтеза проекта.
Можно экспортировать скрипт HDL-процесса для следующих целевых рабочих процессов:
Generic ASIC/FPGA
FPGA-in-the-Loop
(требуется лицензия HDL Verifier)
FPGA Turnkey
IP Core Generation
Simulink Real-Time FPGA I/O
(требует Simulink Real-Time)
Чтобы обновить существующий скрипт, импортируйте его в HDL Workflow Advisor, измените задачи и экспортируйте обновленный скрипт. Также можно вручную отредактировать скрипт.
В HDL Workflow Advisor настройте и запустите все задачи.
Выберите File > Export to Script.
В диалоговом окне Export Workflow Configuration введите имя файла и сохраните скрипт.
Скрипт является MATLAB® файл, который можно запустить из командной строки.
Примечание
Когда вы экспортируете в скрипт, значения по умолчанию, такие как Asynchronous
значение для Reset type не экспортируется. Когда вы импортируете из скрипта, если модель не изменилась, вы не видите настройки по умолчанию в скрипте.
Можно использовать Verbosity
свойство hdlcoder.runWorkflow
функция для определения уровня детализации для сообщений о прогрессе, сгенерированных по мере генерации кода и продолжения развертывания. Чтобы сгенерировать подробные сообщения во время выполнения рабочего процесса для hdlcoder.WorkflowConfig
объект строения рабочего процесса, hWC
и проект Simulink, model/DUTname
, задать Verbosity
на on
.
hdlcoder.runWorkflow('model/DUTname', hWC, 'Verbosity', 'on');
Чтобы отключить все задачи рабочего процесса, обновите объект строения рабочего процесса с помощью clearAllTasks
способ.
Чтобы снова включить все задачи рабочего процесса, обновите объект строения рабочего процесса с помощью setAllTasks
способ.
Чтобы запустить одну задачу рабочего процесса без повторного запуска других задач рабочего процесса:
Отключите все задачи в объекте строения рабочего процесса, запустив clearAllTasks
способ.
В объекте строения рабочего процесса включите задачу, которую вы хотите запустить.
Например, если вы ранее запустили HDL скрипт рабочего процесса и сгенерировали битовый поток, можно запрограммировать целевой компьютер, не перезапуская другие задачи рабочего процесса. Чтобы запустить задачу программирования целевого устройства для hdlcoder.WorkflowConfig
объект строения рабочего процесса, hWC
и проект Simulink, model/DUTname
:
Запуск clearAllTasks
способ.
hWC.clearAllTasks;
Включите задачу программирования целевого устройства.
hWC.RunTaskProgramTargetDevice = true;
Запустите рабочий процесс.
hdlcoder.runWorkflow('model/DUTname', hWC);
В HDL Workflow Advisor выберите File > Import from Script.
В диалоговом окне Import Workflow Configuration выберите файл скрипта и нажмите Open.
HDL Workflow Advisor обновляет задачи с помощью импортированных параметров скрипта.
Примечание
При импорте скрипта HDL Workflow Advisor убедитесь, что вы использовали тот же скрипт, который был экспортирован из интерфейса HDL Workflow Advisor.
В этом примере показано, как сконфигурировать и запустить экспортированный HDL скрипт рабочего процесса.
Этот скрипт является общим сценарием рабочего процесса ASIC/FPGA, который нацелен на Xilinx® Virtex® 7 устройство. Он использует Xilinx Vivado® инструмент синтеза.
Откройте и просмотрите экспортированный HDL скрипт рабочего процесса.
% Export Workflow Configuration Script % Generated with MATLAB 9.5 (R2018b Prerelease) at 14:42:37 on 29/03/2018 % This script was generated using the following parameter values: % Filename : 'S:\generic_workflow_example.m' % Overwrite : true % Comments : true % Headers : true % DUT : 'sfir_fixed/symmetric_fir' % To view changes after modifying the workflow, run the following command: % >> hWC.export('DUT','sfir_fixed/symmetric_fir'); %-------------------------------------------------------------------------- %% Load the Model load_system('sfir_fixed'); %% Restore the Model to default HDL parameters %hdlrestoreparams('sfir_fixed/symmetric_fir'); %% Model HDL Parameters %% Set Model 'sfir_fixed' HDL parameters hdlset_param('sfir_fixed', 'GenerateCoSimModel', 'ModelSim'); hdlset_param('sfir_fixed', 'GenerateHDLTestBench', 'off'); hdlset_param('sfir_fixed', 'HDLSubsystem', 'sfir_fixed/symmetric_fir'); hdlset_param('sfir_fixed', 'SynthesisTool', 'Xilinx Vivado'); hdlset_param('sfir_fixed', 'SynthesisToolChipFamily', 'Virtex7'); hdlset_param('sfir_fixed', 'SynthesisToolDeviceName', 'xc7vx485t'); hdlset_param('sfir_fixed', 'SynthesisToolPackageName', 'ffg1761'); hdlset_param('sfir_fixed', 'SynthesisToolSpeedValue', '-2'); hdlset_param('sfir_fixed', 'TargetDirectory', 'hdl_prj\hdlsrc'); %% Workflow Configuration Settings % Construct the Workflow Configuration Object with default settings hWC = hdlcoder.WorkflowConfig('SynthesisTool','Xilinx Vivado','TargetWorkflow','Generic ASIC/FPGA'); % Specify the top level project directory hWC.ProjectFolder = 'hdl_prj'; % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndTestbench = true; hWC.RunTaskVerifyWithHDLCosimulation = true; hWC.RunTaskCreateProject = true; hWC.RunTaskRunSynthesis = true; hWC.RunTaskRunImplementation = false; hWC.RunTaskAnnotateModelWithSynthesisResult = true; % Set properties related to 'RunTaskGenerateRTLCodeAndTestbench' Task hWC.GenerateRTLCode = true; hWC.GenerateTestbench = false; hWC.GenerateValidationModel = false; % Set properties related to 'RunTaskCreateProject' Task hWC.Objective = hdlcoder.Objective.None; hWC.AdditionalProjectCreationTclFiles = ''; % Set properties related to 'RunTaskRunSynthesis' Task hWC.SkipPreRouteTimingAnalysis = false; % Set properties related to 'RunTaskRunImplementation' Task hWC.IgnorePlaceAndRouteErrors = false; % Set properties related to 'RunTaskAnnotateModelWithSynthesisResult' Task hWC.CriticalPathSource = 'pre-route'; hWC.CriticalPathNumber = 1; hWC.ShowAllPaths = false; hWC.ShowDelayData = true; hWC.ShowUniquePaths = false; hWC.ShowEndsOnly = false; % Validate the Workflow Configuration Object hWC.validate; %% Run the workflow hdlcoder.runWorkflow('sfir_fixed/symmetric_fir', hWC);
Вы можете отредактировать скрипт.
Например, включите или отключите задачи в hdlcoder.WorkflowConfig
объект, hWC
.
Запустите HDL скрипт рабочего процесса.
Для примера, если имя файла скрипта generic_workflow_example.m
, в командной строке введите:
generic_workflow_example.m
В этом примере показано, как сконфигурировать и запустить экспортированный HDL скрипт рабочего процесса.
Чтобы сгенерировать HDL скрипт рабочего процесса, сконфигурируйте и запустите HDL Workflow Advisor с помощью проекта Simulink, затем экспортируйте скрипт.
Этот скрипт является сценарием рабочего процесса цикл, который предназначен для платы разработки Xilinx Virtex 5 и использует инструмент синтеза Xilinx ISE.
Откройте и просмотрите экспортированный HDL скрипт рабочего процесса.
%-------------------------------------------------------------------------- % HDL Workflow Script % Generated with MATLAB 9.5 (R2018b Prerelease) at 15:11:23 on 04/05/2018 % This script was generated using the following parameter values: % Filename : 'C:\Users\ggnanase\Desktop\R2018b\18b_models\ipcore_timing_failure\hdlworkflow_FIL.m' % Overwrite : true % Comments : true % Headers : true % DUT : 'sfir_fixed/symmetric_fir' % To view changes after modifying the workflow, run the following command: % >> hWC.export('DUT','sfir_fixed/symmetric_fir'); %-------------------------------------------------------------------------- %% Load the Model load_system('sfir_fixed'); %% Restore the Model to default HDL parameters %hdlrestoreparams('sfir_fixed/symmetric_fir'); %% Model HDL Parameters %% Set Model 'sfir_fixed' HDL parameters hdlset_param('sfir_fixed', 'HDLSubsystem', 'sfir_fixed/symmetric_fir'); hdlset_param('sfir_fixed', 'SynthesisTool', 'Xilinx Vivado'); hdlset_param('sfir_fixed', 'SynthesisToolChipFamily', 'Kintex7'); hdlset_param('sfir_fixed', 'SynthesisToolDeviceName', 'xc7k325t'); hdlset_param('sfir_fixed', 'SynthesisToolPackageName', 'ffg900'); hdlset_param('sfir_fixed', 'SynthesisToolSpeedValue', '-2'); hdlset_param('sfir_fixed', 'TargetDirectory', 'hdl_prj\hdlsrc'); hdlset_param('sfir_fixed', 'TargetFrequency', 25); hdlset_param('sfir_fixed', 'TargetPlatform', 'Xilinx Kintex-7 KC705 development board'); hdlset_param('sfir_fixed', 'Workflow', 'FPGA-in-the-Loop'); %% Workflow Configuration Settings % Construct the Workflow Configuration Object with default settings hWC = hdlcoder.WorkflowConfig('SynthesisTool','Xilinx Vivado','TargetWorkflow','FPGA-in-the-Loop'); % Specify the top level project directory hWC.ProjectFolder = 'hdl_prj'; % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndTestbench = true; hWC.RunTaskVerifyWithHDLCosimulation = false; hWC.RunTaskBuildFPGAInTheLoop = true; % Set properties related to 'RunTaskGenerateRTLCodeAndTestbench' Task hWC.GenerateRTLCode = true; hWC.GenerateTestbench = false; hWC.GenerateValidationModel = false; % Set properties related to 'RunTaskBuildFPGAInTheLoop' Task hWC.IPAddress = '192.168.0.2'; hWC.MACAddress = '00-0A-35-02-21-8A'; hWC.SourceFiles = ''; hWC.Connection = 'Ethernet'; hWC.RunExternalBuild = true; % Validate the Workflow Configuration Object hWC.validate; %% Run the workflow hdlcoder.runWorkflow('sfir_fixed/symmetric_fir', hWC); hdlcoder.runWorkflow('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA', hWC);
Вы можете отредактировать скрипт.
Например, включите или отключите задачи в hdlcoder.WorkflowConfig
объект, hWC
.
Запустите HDL скрипт рабочего процесса.
Для примера, если имя файла скрипта FIL_workflow_example.m
, в командной строке введите:
fil_workflow_example.m
В этом примере показано, как сконфигурировать и запустить экспортированный HDL скрипт рабочего процесса.
Этот скрипт является скриптом рабочего процесса FPGA под ключ, который предназначен для платы разработки Xilinx Virtex 5. Он использует инструмент синтеза Xilinx ISE.
Откройте и просмотрите экспортированный HDL скрипт рабочего процесса.
% Export Workflow Configuration Script % Generated with MATLAB 8.6 (R2015b) at 14:24:32 on 08/07/2015 % Parameter Values: % Filename : 'S:\turnkey_workflow_example.m' % Overwrite : true % Comments : true % Headers : true % DUT : 'hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA' %% Load the Model load_system('hdlcoderUARTServoControllerExample'); %% Model HDL Parameters % Set Model HDL parameters hdlset_param('hdlcoderUARTServoControllerExample', ... 'HDLSubsystem', 'hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'SynthesisTool', 'Xilinx ISE'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'SynthesisToolChipFamily', 'Virtex5'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'SynthesisToolDeviceName', 'xc5vsx50t'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'SynthesisToolPackageName', 'ff1136'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'SynthesisToolSpeedValue', '-1'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'TargetDirectory', 'hdl_prj\hdlsrc'); hdlset_param('hdlcoderUARTServoControllerExample', ... 'TargetPlatform', 'Xilinx Virtex-5 ML506 development board'); hdlset_param('hdlcoderUARTServoControllerExample', 'Workflow', 'FPGA Turnkey'); % Set Inport HDL parameters hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/uart_rxd', ... 'IOInterface', 'RS-232 Serial Port Rx'); hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/uart_rxd', ... 'IOInterfaceMapping', '[0]'); % Set Outport HDL parameters hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/uart_txd', ... 'IOInterface', 'RS-232 Serial Port Tx'); hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/uart_txd', ... 'IOInterfaceMapping', '[0]'); % Set Outport HDL parameters hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/version', ... 'IOInterface', 'LEDs General Purpose [0:7]'); hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/version', ... 'IOInterfaceMapping', '[0:3]'); % Set Outport HDL parameters hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/pwm_output', ... 'IOInterface', 'Expansion Headers J6 Pin 2-64 [0:31]'); hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/pwm_output', ... 'IOInterfaceMapping', '[0]'); % Set Outport HDL parameters hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/servo_debug1', ... 'IOInterface', 'Expansion Headers J6 Pin 2-64 [0:31]'); hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/servo_debug1', ... 'IOInterfaceMapping', '[1]'); % Set Outport HDL parameters hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/servo_debug2', ... 'IOInterface', 'Expansion Headers J6 Pin 2-64 [0:31]'); hdlset_param('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA/servo_debug2', ... 'IOInterfaceMapping', '[2]'); %% Workflow Configuration Settings % Construct the Workflow Configuration Object with default settings hWC = hdlcoder.WorkflowConfig('SynthesisTool','Xilinx ISE', ... 'TargetWorkflow','FPGA Turnkey'); % Specify the top level project directory hWC.ProjectFolder = 'hdl_prj'; % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndTestbench = true; hWC.RunTaskVerifyWithHDLCosimulation = true; hWC.RunTaskCreateProject = true; hWC.RunTaskPerformLogicSynthesis = true; hWC.RunTaskPerformMapping = true; hWC.RunTaskPerformPlaceAndRoute = true; hWC.RunTaskGenerateProgrammingFile = true; hWC.RunTaskProgramTargetDevice = false; % Set Properties related to Create Project Task hWC.Objective = hdlcoder.Objective.None; hWC.AdditionalProjectCreationTclFiles = ''; % Set Properties related to Perform Mapping Task hWC.SkipPreRouteTimingAnalysis = true; % Set Properties related to Perform Place and Route Task hWC.IgnorePlaceAndRouteErrors = false; % Validate the Workflow Configuration Object hWC.validate; %% Run the workflow hdlcoder.runWorkflow('hdlcoderUARTServoControllerExample/UART_Servo_on_FPGA', hWC);
Вы можете отредактировать скрипт.
Например, включите или отключите задачи в hdlcoder.WorkflowConfig
объект, hWC
.
Запустите HDL скрипт рабочего процесса.
Для примера, если имя файла скрипта turnkey_workflow_example.m
, в командной строке введите:
turnkey_workflow_example.m
В этом примере показано, как сконфигурировать и запустить экспортированный HDL скрипт рабочего процесса.
Этот скрипт является скриптом рабочего процесса генерации ядра IP, который нацелен на Altera® Комплект для разработки Cyclone V SoC. Он использует инструмент синтеза Altera Quartus II.
Откройте и просмотрите экспортированный HDL скрипт рабочего процесса.
% Export Workflow Configuration Script % Generated with MATLAB 8.6 (R2015b) at 14:42:16 on 08/07/2015 % Parameter Values: % Filename : 'S:\ip_core_gen_workflow_example.m' % Overwrite : true % Comments : true % Headers : true % DUT : 'hdlcoder_led_blinking/led_counter' %% Load the Model load_system('hdlcoder_led_blinking'); %% Model HDL Parameters % Set Model HDL parameters hdlset_param('hdlcoder_led_blinking', ... 'HDLSubsystem', 'hdlcoder_led_blinking/led_counter'); hdlset_param('hdlcoder_led_blinking', 'OptimizationReport', 'on'); hdlset_param('hdlcoder_led_blinking', ... 'ReferenceDesign', 'Default system (Qsys 14.0)'); hdlset_param('hdlcoder_led_blinking', 'ResetType', 'Synchronous'); hdlset_param('hdlcoder_led_blinking', 'ResourceReport', 'on'); hdlset_param('hdlcoder_led_blinking', 'SynthesisTool', 'Altera QUARTUS II'); hdlset_param('hdlcoder_led_blinking', 'SynthesisToolChipFamily', 'Cyclone V'); hdlset_param('hdlcoder_led_blinking', 'SynthesisToolDeviceName', '5CSXFC6D6F31C6'); hdlset_param('hdlcoder_led_blinking', 'TargetDirectory', 'hdl_prj\hdlsrc'); hdlset_param('hdlcoder_led_blinking', ... 'TargetPlatform', 'Altera Cyclone V SoC development kit - Rev.D'); hdlset_param('hdlcoder_led_blinking', 'Traceability', 'on'); hdlset_param('hdlcoder_led_blinking', 'Workflow', 'IP Core Generation'); % Set SubSystem HDL parameters hdlset_param('hdlcoder_led_blinking/led_counter', ... 'ProcessorFPGASynchronization', 'Free running'); % Set Inport HDL parameters hdlset_param('hdlcoder_led_blinking/led_counter/Blink_frequency', ... 'IOInterface', 'AXI4'); hdlset_param('hdlcoder_led_blinking/led_counter/Blink_frequency', ... 'IOInterfaceMapping', 'x"100"'); hdlset_param('hdlcoder_led_blinking/led_counter/Blink_frequency', ... 'IOInterfaceOptions', {'RegisterInitialValue', 5}); % Set Inport HDL parameters hdlset_param('hdlcoder_led_blinking/led_counter/Blink_direction', ... 'IOInterface', 'AXI4'); hdlset_param('hdlcoder_led_blinking/led_counter/Blink_direction', ... 'IOInterfaceMapping', 'x"104"'); hdlset_param('hdlcoder_led_blinking/led_counter/Blink_direction, ... 'IOInterfaceOptions', {'RegisterInitialValue', 1}); % Set Outport HDL parameters hdlset_param('hdlcoder_led_blinking/led_counter/LED', 'IOInterface', 'External Port'); % Set Outport HDL parameters hdlset_param('hdlcoder_led_blinking/led_counter/Read_back', 'IOInterface', 'AXI4'); hdlset_param('hdlcoder_led_blinking/led_counter/Read_back', ... 'IOInterfaceMapping', 'x"108"'); hdlset_param('hdlcoder_led_blinking/led_counter/Read back, ... 'IOInterfaceOptions', {'RegisterInitialValue', 3}); %% Workflow Configuration Settings % Construct the Workflow Configuration Object with default settings hWC = hdlcoder.WorkflowConfig('SynthesisTool','Altera QUARTUS II', ... 'TargetWorkflow','IP Core Generation'); % Specify the top level project directory hWC.ProjectFolder = 'hdl_prj'; % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndIPCore = true; hWC.RunTaskCreateProject = true; hWC.RunTaskGenerateSoftwareInterface = false; hWC.RunTaskBuildFPGABitstream = true; hWC.RunTaskProgramTargetDevice = false; % Set Properties related to Generate RTL Code And IP Core Task hWC.IPCoreRepository = ''; hWC.GenerateIPCoreReport = true; % Set Properties related to Create Project Task hWC.Objective = hdlcoder.Objective.AreaOptimized; % Set Properties related to Generate Software Interface Model Task hWC.OperatingSystem = ''; hWC.AddLinuxDeviceDriver = false; % Set Properties related to Build FPGA Bitstream Task hWC.RunExternalBuild = true; hWC.TclFileForSynthesisBuild = hdlcoder.BuildOption.Default; % Validate the Workflow Configuration Object hWC.validate; %% Run the workflow hdlcoder.runWorkflow('hdlcoder_led_blinking/led_counter', hWC);
Вы можете отредактировать скрипт.
Например, включите или отключите задачи в hdlcoder.WorkflowConfig
объект, hWC
.
Запустите HDL скрипт рабочего процесса.
Для примера, если имя файла скрипта ip_core_workflow_example.m
, в командной строке введите:
ip_core_gen_workflow_example.m
В этом примере показано, как сконфигурировать и запустить экспортированный HDL скрипт рабочего процесса.
Чтобы сгенерировать HDL скрипт рабочего процесса, сконфигурируйте и запустите HDL Workflow Advisor с помощью проекта Simulink, затем экспортируйте скрипт.
Этот скрипт является Simulink Real-Time FPGA I/O
скрипт рабочего процесса, который нацелен на Speedgoat IO333-325K
плата, которая использует инструмент синтеза Xilinx Vivado.
Откройте и просмотрите экспортированный HDL скрипт рабочего процесса.
%-------------------------------------------------------------------------- % HDL Workflow Script % Generated with MATLAB 9.5 (R2018b Prerelease) at 18:14:33 on 08/05/2018 % This script was generated using the following parameter values: % Filename : 'C:\Users\ggnanase\Desktop\R2018b\18b_models\ipcore_timing_failure\hdlworkflow_IO333.m' % Overwrite : true % Comments : true % Headers : true % DUT : 'sfir_fixed/symmetric_fir' % To view changes after modifying the workflow, run the following command: % >> hWC.export('DUT','sfir_fixed/symmetric_fir'); %-------------------------------------------------------------------------- %% Load the Model load_system('sfir_fixed'); %% Restore the Model to default HDL parameters %hdlrestoreparams('sfir_fixed/symmetric_fir'); %% Model HDL Parameters %% Set Model 'sfir_fixed' HDL parameters hdlset_param('sfir_fixed', 'HDLSubsystem', 'sfir_fixed/symmetric_fir'); hdlset_param('sfir_fixed', 'SynthesisTool', 'Xilinx Vivado'); hdlset_param('sfir_fixed', 'SynthesisToolChipFamily', 'Kintex7'); hdlset_param('sfir_fixed', 'SynthesisToolDeviceName', 'xc7k325t'); hdlset_param('sfir_fixed', 'SynthesisToolPackageName', 'ffg900'); hdlset_param('sfir_fixed', 'SynthesisToolSpeedValue', '-2'); hdlset_param('sfir_fixed', 'TargetDirectory', 'hdl_prj\hdlsrc'); hdlset_param('sfir_fixed', 'TargetFrequency', 100); hdlset_param('sfir_fixed', 'TargetPlatform', 'Speedgoat IO333-325K'); hdlset_param('sfir_fixed', 'Workflow', 'Simulink Real-Time FPGA I/O'); %% Workflow Configuration Settings % Construct the Workflow Configuration Object with default settings hWC = hdlcoder.WorkflowConfig('SynthesisTool','Xilinx Vivado','TargetWorkflow','Simulink Real-Time FPGA I/O'); % Specify the top level project directory hWC.ProjectFolder = 'hdl_prj'; hWC.ReferenceDesignToolVersion = '2017.4'; hWC.IgnoreToolVersionMismatch = false; % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndIPCore = true; hWC.RunTaskCreateProject = true; hWC.RunTaskBuildFPGABitstream = true; hWC.RunTaskGenerateSimulinkRealTimeInterface = true; % Set properties related to 'RunTaskGenerateRTLCodeAndIPCore' Task hWC.IPCoreRepository = ''; hWC.GenerateIPCoreReport = true; hWC.GenerateIPCoreTestbench = false; hWC.CustomIPTopHDLFile = ''; hWC.AXI4RegisterReadback = false; hWC.IPDataCaptureBufferSize = '128'; % Set properties related to 'RunTaskCreateProject' Task hWC.Objective = hdlcoder.Objective.None; hWC.AdditionalProjectCreationTclFiles = ''; hWC.EnableIPCaching = true; % Set properties related to 'RunTaskBuildFPGABitstream' Task hWC.RunExternalBuild = false; hWC.TclFileForSynthesisBuild = hdlcoder.BuildOption.Default; hWC.CustomBuildTclFile = ''; hWC.ReportTimingFailure = hdlcoder.ReportTiming.Error; % Validate the Workflow Configuration Object hWC.validate; %% Run the workflow hdlcoder.runWorkflow('sfir_fixed/symmetric_fir', hWC);
Вы можете отредактировать скрипт.
Например, включите или отключите задачи в hdlcoder.WorkflowConfig
объект, hWC
.
Запустите HDL скрипт рабочего процесса.
Для примера, если имя файла скрипта slrt_workflow_example.m
, в командной строке введите:
slrt_workflow_example.m