Clear Filters
Clear Filters

Failed to generate the HDL dlhdl

16 views (last 30 days)
Rubén
Rubén on 10 Oct 2023
Commented: Wang Chen on 12 Oct 2023
Hello,
I'm using Matlab Deep Learning HDL Toolbox and and trying to generate a custom processor. I'm using Matlab R2023a and Matlab R2023b on Ubunto 20.04 host computer. When I try to build the processor with "dlhdl.buildProcessor(hPC)" I get the following error message:
"Error using dnnfpga.build.DLBitstreamBuild/runBitstreamBuild
Failed to generate the HDL code for the deep learning processor with the following error message:
'Version 22.4.0 of tool Altera QUARTUS II is not supported in HDL Workflow Advisor. If you want to continue using this version, set
'AllowUnsupportedToolVersion' to 'true' and re-run the script. Using incompatible tool version, HDL Workflow Advisor may not be able to run
further tasks'."
I have Quartus Pro 22.4 installed in the computer. Where I can find the compatible Quartus versions with HDL coder?
An additional question, I found in old documentation that dlhdl.Workflow used to support 'ProcessorConfig' option and it was removed in Matlab versions. How I can upload or put the custom processor into the workflow?
Find below the code I'm using.
ToolName = 'Altera Quartus II'; % Options: Altera Quartus II, Xilinx Vivado
ToolPath = '/opt/FPGA/Intel/intelFPGA_pro/22.4/quartus/bin/quartus';
Vendor = 'Intel'; % Option: Intel, Xilinx
Platform = 'arria10soc_single'; % Options: arria10soc_single, arria10soc_int8
ip = '192.168.1.101';
Interface = 'Ethernet';
User = 'root';
Pass = 'cyclonevsoc';
%%
hdlsetuptoolpath('ToolName', ToolName, 'ToolPath', ToolPath);
hTarget = dlhdl.Target(Vendor,'Interface', Interface, ...
'IPAddress', ip,'Username', User, ...
'Password', Pass);
% Create a dnnfpga.ProcessorConfig object.
hPC = dlhdl.ProcessorConfig;
dlhdl.buildProcessor(hPC);
% Create a dnnfpga.Workflow object.
hW = dlhdl.Workflow('network', NN, ...
'Bitstream', Platform, ...
'Target', hTarget);
% Build the processor.
hW.build();

Accepted Answer

Rubén
Rubén on 11 Oct 2023
Edited: Rubén on 11 Oct 2023
Hello,
I used 'Altera Quartus II' option because it is the only Intel option available as SynthesisTool for dlhdl.ProcessorConfig its according to documentation https://es.mathworks.com/help/deep-learning-hdl/ref/dlhdl.processorconfig-class.html
If I use 'Intel Quartus Pro' option as ToolName in hdlsetuptoolpath in Matlab R2023a I get another error related with quartus version. In some point, quartus Pro executable was changed from qpro, that is expected by hdlsetuptoolpath('ToolName', 'Intel Quartus Pro') function. That's because I used 'Altera Quartus II' option.
Error using setupToolPath
Input tool path '/opt/FPGA/Intel/intelFPGA_pro/22.4/quartus/bin/quartus'
does not point to a valid Intel Quartus Pro executable 'qpro'.
Please specify the full path to the synthesis tool executable.
For example:
It seems the is some information missing in my previous message. I configure some ProcessorConfig properties before processor building as follows:
hdlsetuptoolpath('ToolName', ToolName, 'ToolPath', ToolPath);
hTarget = dlhdl.Target(Vendor,'Interface', Interface, ...
'IPAddress', ip,'Username', User, ...
'Password', Pass);
% Create a dnnfpga.ProcessorConfig object.
hPC = dlhdl.ProcessorConfig;
% Set the properties of the dnnfpga.ProcessorConfig object.
hPC.SynthesisTool = 'Altera QUARTUS II';
hPC.SynthesisToolChipFamily = 'Arria 10';
hPC.TargetFrequency = 200;
hPC.TargetPlatform = 'Intel Arria 10 SoC development kit';
dlhdl.buildProcessor(hPC);
In Matlab R2023b I get the following error message and even if I use 'Intel Quartus Pro' option as ToolName in hdlsetuptoolpath I get the same error:
Error using downstream.tool.messageToolNotAvailable
Selected synthesis tool "Altera QUARTUS II" is not available on the system path. Available tools are:
You can use the hdlsetuptoolpath function to add the appropriate synthesis tool path to your system path for the current MATLAB session. For more
information, see "help hdlsetuptoolpath".
After adding the synthesis tool path to your system path using "hdlsetuptoolpath" or an external command, click <a
href="matlab:downstream.AvailableToolList.refreshToolPath('Altera QUARTUS II',
false);hdlturnkey.resetHDLWATask('com.mathworks.HDL.SetTargetDevice');">refresh</a> to import the new tool list.
Error in downstream.tool.validateToolOnPath
Error in dnnfpga.build.buildProcessor
Error in dlhdl.buildProcessor (line 33)
Is dlhdl.buildProcessor compatible with Quartus Pro?
I have finally instaled Quartus Prime Standard 21.1 and configured it as compilation tool. The compilation process ended successfully
As for the last question, ' How I can upload or put the custom processor into the workflow? ' I found the answer. I should be done by setting the 'Bitstream' option to 'dlprocessor.mat' (for Intel boards) in the Workflow method and then compile the Workflow object:
hW = dlhdl.Workflow('Network',nn, ...
'Bitstream','dlprocessor.mat', ...
'Target',hTarget);
hW.compile;
  1 Comment
Wang Chen
Wang Chen on 12 Oct 2023
Hi Ruben,
To clarify, DL HDL Toolbox in R2023b do not support Intel Quartus Pro yet.
It supports Intel Quartus® Prime Standard 21.1 as listed in the following document:
https://www.mathworks.com/help/deep-learning-hdl/ug/supported-networks-layers-boards-and-tools.html
Thanks,
Wang

Sign in to comment.

More Answers (1)

Ryan Baird
Ryan Baird on 11 Oct 2023
The supported versions are here:
This page also has the relavent note: "Altera Quartus II refers to the synthesis tool Intel Quartus Prime Standard." Since you are using Quartus Pro, I believe your ToolName should be "Intel Quartus Pro".

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!