Консультант по рабочим процессам HDL проводит этапы создания кода HDL для подсистемы Simulink ® и процесса проектирования FPGA, такие как:
Проверка модели на совместимость генерации кода HDL и автоматическое исправление несовместимых настроек.
Создание кода HDL, тестового стенда и сценариев для создания и запуска кода и тестового стенда.
Создание испытательных стендов cosimulation или SystemVerilog DPI и покрытия кода (требуется Verifier™ HDL).
Синтез и анализ времени посредством интеграции со сторонними инструментами синтеза.
Обратная аннотация модели с информацией о критическом пути и другой информацией, полученной в процессе синтеза.
Завершите автоматизированные рабочие процессы для выбранных целевых устройств разработки FPGA, включая моделирование FPGA в цикле (требуется проверка HDL) и рабочий процесс ввода-вывода Simulink Real-Time™ FPGA.
Чтобы запустить рабочий процесс HDL в качестве сценария командной строки, настройте и запустите помощник по рабочим процессам HDL с конструкцией Simulink, а затем экспортируйте сценарий. Сценарий использует команды CLI рабочего процесса HDL для выполнения тех же задач, что и помощник по рабочим процессам HDL, включая создание битового потока FPGA или проекта синтеза.
Сценарий рабочего процесса HDL можно экспортировать для следующих целевых рабочих процессов:
Generic ASIC/FPGA
FPGA-in-the-Loop (требуется лицензия HDL Verifier)
FPGA Turnkey
IP Core Generation
Simulink Real-Time FPGA I/O (требуется Simulink в реальном времени)
Чтобы обновить существующий сценарий, импортируйте его в помощник по рабочим процессам HDL, измените задачи и экспортируйте обновленный сценарий. Кроме того, можно вручную отредактировать сценарий.
В помощнике по рабочим процессам HDL настройте и запустите все задачи.
Выберите «Файл» > «Экспорт в сценарий».
В диалоговом окне «Экспорт конфигурации рабочего процесса» введите имя файла и сохраните сценарий.
Сценарий представляет собой файл MATLAB ®, который можно запустить из командной строки.
Примечание
При экспорте в сценарий значения по умолчанию, такие как Asynchronous значения для типа Reset не экспортируются. При импорте из сценария, если модель не изменилась, настройки по умолчанию в сценарии не отображаются.
Вы можете использовать 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 выберите «Файл» > «Импорт из сценария».
В диалоговом окне «Импорт конфигурации рабочего процесса» выберите файл сценария и нажмите кнопку «Открыть».
Помощник по рабочим процессам HDL обновляет задачи с помощью импортированных параметров сценария.
Примечание
При импорте сценария помощника по рабочим процессам HDL убедитесь, что используется тот же сценарий, который был экспортирован из пользовательского интерфейса помощника по рабочим процессам HDL.
В этом примере показано, как настроить и запустить экспортированный сценарий рабочего процесса 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 с конструкцией Simulink, а затем экспортируйте сценарий.
Этот сценарий представляет собой сценарий рабочего процесса FPGA-in-the-Loop, предназначенный для платы разработки 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 с конструкцией 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