genhdltdb - Generate timing databases for specified target device, device speed grade, and
synthesis tool - MATLAB ([original](https://www.mathworks.com/help/hdlcoder/ref/genhdltdb.html)) ([raw](?raw))
Generate timing databases for specified target device, device speed grade, and synthesis tool
Since R2021a
Syntax
Description
genhdltdb('Name','Value')
generates timing databases for the target device with options specified by using name-value arguments. You can specify the device family name, the device name, the device package, and the device speed grade. This function exports the generated timing database as a MAT file to the specified timing database path.
To generate timing databases, the function characterizes basic design components (such as Simulink® blocks, block architectures, and subcomponents of those blocks) for the specified target device. HDL Coder™ analyzes these timing databases to estimate the critical path in your design. For more information, see Critical Path Estimation Without Running Synthesis.
Examples
Generate timing databases for the Xilinx® Artix®-7 target device. Export generated timing database MAT files to theC:\Work\Database
folder. Set the synthesis tool path to'C:\Xilinx\Vivado\2019.2\bin\vivado.bat'
.
To generate a timing database for the target device, specify target device configuration parameters, such as device family, device name, device package, and device speed grade, in a single argument'SynthesisDeviceConfiguration'
.
genhdltdb('SynthesisDeviceConfiguration',{'Artix7','xa7a100t','csg324','-1I'}, ... 'TimingDatabaseDirectory','C:\Work\Database', ... 'SynthesisToolName','Xilinx Vivado', ... 'SynthesisToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat');
Alternatively, specify target device configuration parameter in separate arguments.
genhdltdb('SynthesisDeviceFamily','Artix7', ... 'SynthesisDeviceName','xa7a100t', ... 'SynthesisDevicePackage','csg324', ... 'SynthesisDeviceSpeedGrade','-1I', ... 'TimingDatabaseDirectory','C:\Work\Database', ... 'SynthesisToolName','Xilinx Vivado', ... 'SynthesisToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat');
Note
When you use the genhdltdb
function to generate a timing database for a specific device, the function can run for a long time until the database is created.
Generate timing databases for the Xilinx Kintex® UltraScale+™ target device. The target device isxcku11p-CIV-ffva1156-1-e
. Enter the device name without'CIV'
, as it is not required for setting the part number. Export generated timing database MAT files to the C:\Work\Database
folder. Set the synthesis tool path to'C:\Xilinx\Vivado\2019.2\bin\vivado.bat'
.
To generate a timing database for the target device, specify the device family name and the device part. In this target device, the device package and speed grade are included in the device name.
genhdltdb( 'SynthesisDeviceConfiguration',{'Kintex Ultrascale+', ... 'xcku11p-ffva1156-1-e'}, ... 'TimingDatabaseDirectory','C:\Work\Database', ... 'SynthesisToolName','Xilinx Vivado', ... 'SynthesisToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat');
Alternatively, specify target device configuration parameters in separate arguments.
genhdltdb('SynthesisDeviceFamily','Kintex Ultrascale+', ... 'SynthesisDeviceName','xcku11p-ffva1156-1-e', ... 'TimingDatabaseDirectory','C:\Work\Database', ... 'SynthesisToolName','Xilinx Vivado', ... 'SynthesisToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat');
Name-Value Arguments
Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN
, where Name
is the argument name and Value
is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose Name
in quotes.
Example: 'SynthesisToolPath','C:\Xilinx\Vivado\2024.1\bin\vivado.bat'
sets the synthesis tool path toC:\Xilinx\Vivado\2024.1\bin\vivado.bat
.
Target device part number or technology library files, specified as a character vector or string scalar.
Example: 'SynthesisDevicePart','xczu19eg-ffve1924-1-i'
Example: "SynthesisDevicePart","timingdata.lib"
Data Types: char
| string
Specify either the device family name and the device part or specify the target device family name, device name, device package, and device speed grade, in a single argument, as a character vector. You can use the device package and speed grade only when the SynthesisToolName name-value argument is set to"xilinx vivado"
.
Example: 'SynthesisDeviceConfiguration',{'Kintex Ultrascale+','xcku11p-ffva1156-1-e'}
Example: 'SynthesisDeviceConfiguration',{'KintexU','xc7z100','ffg1156',-1'}
Data Types: char
Target device family, specified as a character vector or string scalar.
Example: 'SynthesisDeviceFamily', 'Artix7'
Data Types: char
| string
Target device name, specified as a character vector or string scalar.
Example: 'SynthesisDeviceName','xa7a100t'
Data Types: char
| string
Target device package, specified as a character vector or string scalar.
Example: 'SynthesisDevicePackage','csg324'
Data Types: char
| string
Target device speed grade, specified as a character vector or string scalar.
Example: 'SynthesisDeviceSpeedGrade','-1I'
Data Types: char
| string
Export timing database MAT files to the specified folder path, specified as a character vector or string scalar.
Example: 'TimingDatabaseDirectory','C:\Work\Database'
Data Types: char
| string
Synthesis tool name, specified as a character vector or string scalar.
Example: 'SynthesisToolName','Xilinx Vivado'
Example: "SynthesisToolName","cadence genus"
Data Types: char
| string
Full path to the synthesis tool executable or batch file, specified as a character vector or string scalar. You can use a cell array to specify the path to the Cadence® Genus tool and technology library files. To set the synthesis tool path, use either this argument or the hdlsetuptoolpath function. If the path is set by both, thegenhdltdb
function uses the tool path set by this argument.
Example: 'SynthesisToolPath','C:\Xilinx\Vivado\2024.1\bin\vivado.bat'
Example: "SynthesisToolPath",{"<genus_path">,"<path to technology library files>"}
Data Types: char
| string
Override the generated timing database MAT files in the output path set by theoutpath
argument, specified as one of these values:
'on'
— Generate new timing database MAT files for the blocks for every call to this function.'off'
— Generate timing database MAT files for only the blocks whose MAT files are not present in the output path.
Data Types: char
| string
Since R2024a
Whether to characterize native floating point operations, specified as one of these values:
'on'
— Characterize native floating point operations when generating a timing database.'off'
— Do not characterize native floating point operations when generating a timing database. Use this option to reduce the time needed to generate a timing database.
Example: 'NativeFloatingPoint','off'
Data Types: char
| string
Since R2024a
Tool for which to generate synthesis and timing database, specified as one of these options:
hdlcoder.TimingGenerator.CadenceGenus
— Use the timing class for Cadence Genus inherited from the basehdlcoder.TimingGenerator
class.hdlcoder.TimingGenerator.IntelQuartus
— Use the timing class for Intel® Quartus® inherited from the basehdlcoder.TimingGenerator
class.hdlcoder.TimingGenerator.XilinxVivado
— Use the timing class for Xilinx Vivado® inherited from the basehdlcoder.TimingGenerator
class.- custom timing generator — Use a custom timing class for your custom tool or device. To create this class, create a subclass of the abstract base class
hdlcoder.TimingGenerator
.
Example: tg = myTimingGenerator 'TimingGenerator',tg
Version History
Introduced in R2021a