Control implementation of the model.
Description
The Vitis Model Composer Hub block controls the behavior of the Vitis Model Composer tool.
You can specify the targeted design flow for the generated output, the output directory path, the desired device, and design clock frequency using the following tabs.
- The Hardware Selection pane helps with device or board selection.
- The Code Generation pane provides tabs to take the design through an elaboration workflow of analysis, validation on hardware, and export out of Vitis Model Composer. Different options display depending on whether the subsystem is targets HDL, HLS, or AIE.
- The Design Settings pane provides miscellaneous settings for the design.
Library
AI Engine/Tools; HLS/Tools; Utilities/Code Generation.
Data Type Support
Data type support is not applicable to the Vitis Model Composer Hub block.
Parameters
The following section describes the configurable options available in each pane of the Vitis Model Composer Hub block.
- Hardware Selection
- Clicking the browse button (…) displays the Device Chooser dialog box. This allows you to select a target part, board, or platform. Vitis Model Composer obtains board and device data from the Vivado database.
- Code Generation
- Select the subsystem name for which to generate code from the list on the left. Different settings display depending on the type of code generation (HDL, HLS, or AI Engine) selected.
- Settings (AIE)
-
- AIE Compiler Options
- Provides the ability to pass additional command line options (debug options, execution target options etc.) to the AIE Compiler.
- Analyze (AIE)
-
- Target Directory
- Specifies the work directory for performing the actions on this tab.
- AIE Simulator Options
- Provides the ability to pass additional command line options to the AIE Simulator.
- Simulation timeout (cycles)
- When enabled, it specifies the number of cycles for which AIE simulation runs. The default value is 50000.
- Collect profiling statistics and enable 'printf' for debugging
- When enabled, this option allows collection of profiling data for analysis.
- Collect trace data for Vitis Analyzer, viewing internal signals, and latency
- When enabled, this option collects trace data for signals within the AI Engine design to be viewed in Vitis Analyzer or the Simulation Data Inspector.
- View AIE Simulation output and throughput
- Opens the Simulation Data Inspector to plot outputs of the AI Engine subsystem as simulated by the AIE Simulator.
- Open Vitis Analyzer
- Click to invoke the Vitis Analyzer tool. This option is only enabled after AI Engine Simulation has been run at least once after enabling.
- Settings (HDL)
-
- Target Language
- Specifies the HDL language to be used for compilation of the
design. The possibilities are VHDL and Verilog.
- VHDL library
- Specifies the name of VHDL work library for code generation. The default name is xil_defaultlib.
- Use STD_LOGIC type for Boolean or 1 bit wide gateways
- If your design's Hardware Description Language (HDL) is
VHDL, selecting this option declares a Boolean or 1-bit port (Gateway In or
Gateway Out) as a STD-LOGIC type. If this option is not selected, Vitis Model Composer interprets Boolean or
1-bit ports as vectors. Note: When you enable this option and try to run Generate code and Run behavioral simulation in Vivado, the elaboration phase can fail.
- Synthesis Strategy
- Choose a Synthesis strategy from the pre-defined strategies in the drop-down menu.
- Implementation Strategy
- Choose an Implementation strategy from the pre-defined strategies in the drop-down menu.
- Enable multiple clocks
- Must be enabled when the design has multiple clocks. This indicates to the code generation engine that it must obtain the clock information for the various subsystems from the respective clock tabs. If not enabled, then the design is treated as a single clock design.
- Number of clocks
- Defines the number of clocks in the design. The number of clock tabs that appear is equivalent to the number of clocks. In each clock tab, you must select the subsystem and configure the clock settings of that subsystem.
- FPGA clock period (ns)
- Defines the period in nanoseconds of the system clock. The value need not be an integer. The period passes to the AMD implementation tools through a constraints file, where it serves as the global PERIOD constraint. Multicycle paths are constrained to integer multiples of this value.
- Simulink system period (sec)
- Defines the Simulink System Period, in units of seconds. The Simulink system period is the greatest common divisor of the sample periods that appear in the model. Sample periods are set explicitly in the block dialog boxes. They are inherited according to Simulink's propagation rules, or implied by a hardware oversampling rate in blocks with this option. In the final case, the implied sample time is in fact faster than the observable simulation sample time for the block in Simulink. In hardware, a block having an oversampling rate greater than one processes its inputs at a faster rate than the data. For example, a sequential multiplier block with an over-sampling rate of eight implies a (Simulink) sample period that is one eighth of the multiplier block’s actual sample time in Simulink. You can only modify this parameter in a master block.
- Clock pin location
- Defines the pin location for the hardware clock. This information passes to the AMD implementation tools through a constraints file. Do not specify this option if the Vitis Model Composer design is to be included as part of a larger HDL design.
- Provide clock enable clear pin
- This instructs Vitis Model
Composer to provide a
ce_clrport on the top-level clock wrapper. Thece_clrsignal resets the clock enable generation logic. The ability to reset clock enable generation logic allows designs to have dynamic control for specifying the beginning of data path sampling. This signal is important for modules that are implemented in a DFX platform.
- Analyze (HDL)
-
Note: For more information about the tasks available on this tab, refer to Performing Analysis in Vitis Model Composer.
- Settings (HLS)
-
- FPGA clock frequency
- Specifies the clock frequency in MHz for the targeted device. This frequency passes to the downstream tool flow.
- Testbench stack size (MBytes)
- This parameter prompts you to enter a larger stack size. When you enable Create and run testbench, the Testbench stack size option specifies the size of the test bench stack frame during C simulation (CSIM). Occasionally, the default stack frame size of 10 MB allocate for execution of the test bench is insufficient to run the test. This can be due to allocation of large arrays on the stack and/or deep nesting of subsystems. Typically, if this happens, the test fails with a segmentation fault and an associated error message. For such cases you can increase the size of the stack frame and rerun the test.
- Analyze (HLS)
-
- Target Directory
- Specifies the work directory for performing the actions on this tab.
- Validate on Hardware
-
- Target Directory
- Specifies the work directory for performing the actions on this tab.
- HW System Type
- Choose between Baremetal or Linux hardware validation flow.
- Target
- Specify the target for hardware validation flow.
- Common SW Dir
- Provide the path to the folder containing the PetaLinux common images. This option is only available when you select a Linux HW System Type.
- Target SDK Dir
- Provide the path to the folder containing the target SDK. This option is only available when you select a Linux HW System Type.
- Generate (BOOT.BIN/SD card image) after code generation
- When you enable this option, a BOOT.BIN (for baremetal HW system) or SD card image (for Linux HW system) generates after code generation.
- Export
-
- Export Directory
- Specifies the directory where the export products are created.
- Export Type
-
- IP Catalog
- Export HDL or HLS subsystem as a Vivado IP. When you select IP Catalog, the Settings (...) button displays a dialog box. This allows you to add a description of the IP to be placed in the IP catalog.
- Synthesized Checkpoint
- Export HDL subsystem as a Synthesized Checkpoint for use in Vivado.
- HDL Netlist
- Export HDL subsystem as HDL code and netlist for use in Vivado.
- Vitis HLS
- Export HLS subsystem as HLS C/C++ code.
- Vitis Subsystem
- Export HDL, AIE, HLS or heterogeneous subsystem as a Vitis Subsystem (VSS).
A Vitis Subsystem (VSS) is a platform-independent reusable design component with customizable AI Engine and PL content. The VSS integrates into a larger system through Vitis tools. For more information, see Linking a VSS Component.
- Graph Code
- Export AIE subsystem as AI Engine graph code.
- Generate testbench
-
- HDL designs
- This instructs Vitis Model Composer to create an HDL test bench. Simulating the test bench in
an HDL simulator compares Simulink
simulation results with ones obtained from the compiled version of the
design. To construct test vectors, Vitis Model Composer simulates the design in Simulink, and saves the values seen at gateways. The top HDL
file for the test bench is <name>_testbench.vhd/.v, where <name> derives from the portion of the
design being tested.Note: Test bench generation does not support designs with Gateway In or Gateway Out blocks configured as AXI4-Lite interfaces.
- AIE/HLS designs
- When enabled, Vitis Model Composer generates the test vectors while generating the code.
- Design Settings
-
- Treat this model as a legacy System Generator design for backward-compatibility
- Specify whether the Model Composer Hub block treats your model as a legacy System Generator design. When you automatically upgrade a System Generator token to the Model Composer Hub block, this check box is automatically enabled. When you enable this check box, you can use the Model Composer Hub block without requiring changes to your legacy designs. However, newer capabilities provided by the Model Composer Hub block, such as the Validate on Hardware Flow, are not available.
- Number of parallel AI Engine builds
- To speed up model compilation, Vitis Model Composer can build the AI Engine blocks in parallel, taking advantage of multiple cores on your machine. You can increase this value up to the maximum number of cores on your machine.