What is Model Composer - 2020.2 English

Model Composer and System Generator User Guide (UG1483)

Document ID
UG1483
Release Date
2020-11-18
Version
2020.2 English

Model Composer is a Model-Based design tool that enables rapid design exploration within the MathWorks Simulink® environment and accelerates the path to production for Xilinx® programmable devices through automatic code generation.

Simulink , an add-on product to MATLAB® , provides an interactive, graphical environment for modeling, simulating, analyzing and verifying system-level designs. Model Composer is built as a Xilinx toolbox that fits into the MathWorks Simulink environment and allows algorithm developers to fully leverage all the capabilities of Simulink’s graphical environment for algorithm design and verification.

You can express your algorithms in Simulink using blocks from the Model Composer library as well as custom user-imported blocks. Model Composer transforms your algorithmic specifications to production-quality IP implementations using automatic optimizations and leveraging the high-level synthesis technology of Vitis™ HLS. Using the IP integrator in the Vivado Design Suite you can then integrate the IP into a platform that, for example, may include a Zynq® device, DDR3 DRAM, and a software stack running on the Arm® processor.

Model Composer provides a library of ~73 optimized blocks for use within the Simulink environment. These include basic functional blocks for expressing algorithms like Math, Linear Algebra, Logic and Bit-wise operations and others. The Xilinx Model Composer block library contains the following categories of elements.

Table 1. Xilinx Model Composer Block Library
Library Description
Logic and Bit Operations Blocks that supports the compound logical operations and bit-wise operations.
Lookup Tables Block set that performs a one dimensional lookup operation with an input index.
Math Functions Blocks that implement mathematical functions.
Ports and Subsystems Blocks that allow creation of subsystems and input/output ports.
Relational Operations Block set to define some kind of relation between two entities (e.g., Numerical Equality and inequalities).
Signal Attributes Includes block which helps to maintain the compatibility between input type and output type (e.g., Type casting).
Signal Operations Blocks that support simple modifications to the time variable of the signal to generate new signals (e.g., Unit Delay).
Signal Routing Blocks that supports the setup to track signal sources and destinations (e.g., Bus selector).
Sinks Include blocks that receive physical signal output from other blocks.
Source Include blocks that generate or import signal data.
Tools Include blocks that controls the implementation/Interface of the Model.

For information on specific blocks in the Xilinx Model Composer block library, see the Model Composer Block Library.

The Model Composer block library is compatible with the standard Simulink block library, and these blocks can be used together to create models that can be simulated in Simulink. However, only certain Simulink blocks are supported for code generation by Model Composer. The Simulink blocks compatible with output generation from Model Composer can be found in the Xilinx Model Composer block library.

Model Composer also lets you create your own custom blocks from existing C/C++ code for use in models. Refer to Importing C/C++ Code as Custom Blocks for more information.

Your desgin in Model Composer is bit-accurate with regard to the final implementation in hardware, though untimed. You can compile the design model into C++ code for synthesis in Vitis HLS, create System Generator blocks, or create packaged IP to be used in the Vivado Design Suite.

The general tool flow is shown in the following diagram.

Figure 1. Model Composer Tool Flow

To help you learn Model Composer, the Model Composer and System Generator Tutorial (UG1498) includes labs and data to walk you through the tool.

The rest of this document discusses the following topics: