The Configurable Example Design (CED) serves as a valuable resource for creating a flat extensible hardware designs in Vivado. This design acts as a reference for demonstrating the configuration of processing system IPs and the connections between them.
The CED offers a practical example for understanding the intricacies of IP configurations and their interconnectedness. It allows you to follow along with the settings of complex processing system IPs. You can gain insights on how the settings should be configured and connected within a flat hardware design.
Important: A CED can be used as a starting template for a design. However, for
production environments, it is your responsibility to verify and qualify that the
design setup meets the production requirements.
The steps to create a flat
hardware design in the Vivado tool by using a CED are as
follows.-
- Click , or click Open Example
Project from the Quick Start screen.
- Click Next on the Create an Example Project screen.
- Select Versal Extensible
Embedded Platform in the Select Project Templates
window.
- Input the project name and project location. Keep Create project sub-directory checked. Click Next.
- Select the target evaluation board in the
Default
AMD
board window. In this example design,
select Versal VCK190 Evaluation
Platform. Click Next.
- In the Select
Design Preset section, set the following design
options:
- Clocks
- You can enable clocks, update the output
frequency and define default clock in this view. Clock
clk_out1is set to 625 MHz by default. For AI Engine -based designs, it is recommended to set the clock to 625 MHz. This enables addition of the MBUFGCE clock buffer in the clock wizard to generate 625 MHz, 312.5 MHz, 156.25 MHz and 78.125 MHz. In this example,clk_out2andclk_out3are enabled with Output Frequency 100 MHz and 200 MHz respectively.
- Design type
- If the BDC (Block Design Container) option is left unselected a flat design is generated. If you select the BDC option, a BDC based design is generated which is explained in the next section.
- Configure Interrupt Settings
- Choose interrupts as per the design
requirement. The example design supports following:
- 15 and 32 interrupts, which uses single interrupt controller only.
- 63 interrupts, which uses two interrupt controller in cascade.
- AI Engine Block
- This block is selected by default.
- Click Next.
- Review the project summary and click Finish.
- Observe the following sections in the generated design
in the IP integrator:
- AI Engine IP Block
- The AIE IP block is instantiated in the design, which is connected to CIPS through cips_noc. A configuration port used by CIPS using the cips_noc IP to configure the AI Engine IP.
- Memory Section
- Two types of DDR memory controllers are
instantiated in the design:
DDR4andLPDDR4through noc_ddr4 and noc_lpddr4 NoC IPs respectively. These memory controllers are connected to the CIPS IP through cips_noc. You can adjust the memory controller configuration through the noc_ddr4 and noc_lpddr4 settings. In this example, the default NoC settings are used.
- Clock Section
- Three clocks have been generated using the clock wizard.
- Interrupt Section
- Review the section and confirm the settings.
- Click , or click Open Example
Project from the Quick Start screen.
Review Platform Setup
The steps below review the hardware design and confirm that all the appropriate platform properties and tags have been set.
- AXI port settings:
- In
noc_ddr4IP, portsS00_AXItoS13_AXIare enabled and SPTAG value is set toDDR. - In
icn_ctrlIP, portsM01_AXItoM15_AXIare enabled and set toM_AXI_GP. The SP Tag should be left empty. These ports are the AXI master interfaces used to control PL kernels.
- In
- In the Clock tab,
clk_out1_o1,clk_out1_o2,clk_out1_o3,clk_out1_o4,clk_out2,clk_out3fromclk_wizard_0are enabled with id {0,3,4,5,1,2}, and frequency {625 MHz, 312.5 MHz, 156.25 MHz, 78.125 MHz, 100 MHz, 200 MHz}.clk_out1_o2is the default clock. The v++ linker uses this clock to connect the kernel if there are no clocks specified in the link configuration. The Proc Sys Reset property should be set to the synchronous reset signal associated with each clock. The clock statusfixed_non_refindicates that v++ linker cannot use these clocks as a reference to generate a requested clock during the linking phase, it can be used only to connect to IPs. The clock statusfixedindicates that v++ linker can use these clocks as a reference clock as well as to connect IPs as defined in system.cfg. Refer Managing Clock Frequencies for more details.
- Interrupt settings:
- In the Interrupt tab, confirm that ports
In0toIn31are enabled.
- In the Interrupt tab, confirm that ports
- Simulation model:
- Select the CIPS
instance and verify that the ALLOWED_SIM_MODELS in the Properties tab, in the
Block
Properties window is
tlm, andrtl, and the SELECTED_SIM_MODEL istlm. It is mandatory to select the same simulation model for NoC and AI Engine.
- Select the CIPS
instance and verify that the ALLOWED_SIM_MODELS in the Properties tab, in the
Block
Properties window is