Main Content

genhdltdb

Generate timing databases for specified target device, device speed grade, and synthesis tool

Since R2021a

    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.

    example

    Examples

    collapse all

    Generate timing databases for the Xilinx® Artix®-7 target device. 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 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 is xcku11p-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 target device configuration parameters, such as device family and device name, in a single argument 'SynthesisDeviceConfiguration'. In this target device, the device package and speed grade is 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');

    Input Arguments

    collapse all

    Name-Value Arguments

    Specify optional pairs of arguments as Name1=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\2019.2\bin\vivado.bat' sets the synthesis tool path to C:\Xilinx\Vivado\2019.2\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 target device configuration parameters, such as device family name, device name, device package, and device speed grade, in a single argument, specified as a character vector or string scalar.

    Example: 'SynthesisDeviceConfiguration',{'KintexU','xc7z100','ffg1156',-1'}

    Data Types: char | string

    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, the genhdltdb function uses the tool path set by this argument.

    Example: 'SynthesisToolPath','C:\Xilinx\Vivado\2019.2\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 the outpath 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 base hdlcoder.TimingGenerator class.

    • hdlcoder.TimingGenerator.IntelQuartus — Use the timing class for Intel® Quartus® inherited from the base hdlcoder.TimingGenerator class.

    • hdlcoder.TimingGenerator.XilinxVivado — Use the timing class for Xilinx Vivado® inherited from the base hdlcoder.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