HDL Workflow Advisor проводит вас по этапам генерации HDL-кода для подсистемы Simulink® и процесса проектирования FPGA, таким как:
Проверка модели для совместимости генерации HDL-кода и автоматически фиксация несовместимых настроек.
Генерация HDL-кода, испытательного стенда и скриптов, чтобы создать и запустить код и испытательный стенд.
Генерация cosimulation или испытательных стендов SystemVerilog DPI и покрытия кода (требует HDL Verifier™).
Синтез и анализ синхронизации посредством интеграции со сторонними инструментами синтеза.
Обратная корректировка проекта модели с информацией о критическом пути и другой информацией получена во время синтеза.
Полные автоматизированные рабочие процессы для выбранных целевых устройств разработки FPGA, включая FPGA в симуляции цикла (требует HDL Verifier), и рабочий процесс ввода-вывода FPGA Simulink Real-Time™.
Чтобы запустить рабочий процесс HDL как скрипт командной строки, сконфигурируйте и запустите HDL Workflow Advisor со своим проектом Simulink, затем экспортируйте скрипт. Скрипт использует команды CLI Рабочего процесса HDL, чтобы выполнить те же задачи как 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, затем экспортируйте скрипт.
Этот скрипт является FPGA в скрипте рабочего процесса цикла, который предназначается для макетной платы Xilinx Virtex 5 и использует инструмент синтеза ISE Xilinx.
Откройте и просмотрите свой экспортируемый скрипт рабочего процесса 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. Это использует инструмент синтеза ISE Xilinx.
Откройте и просмотрите свой экспортируемый скрипт рабочего процесса 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. Это использует инструмент синтеза Куарта II Altera.
Откройте и просмотрите свой экспортируемый скрипт рабочего процесса 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