Manual Insertion in the IP Integrator
Isolation reference design gets created in the previous section, Start with the XAPP1320 Isolation Reference Design, and is
saved to the following
location:
/XmpuPL_ZUplus_v1.0a/xcu102_<version>/xmpu_example/pl_isolation_lab.xpr
Open the project in Vivado, and click
Open Block Design if you have it
closed.You will go through the following steps to add a XMPU_PL module to the block design.
- Click the Address Editor and note the
current mappings in the following pane.
-
axi_bram_ctrl_0is mapped to0x00_A000_0000(4K) andaxi_gpio_0is mapped to0x00_A000_1000(4K) in the Address Editor window. Return to the diagram.
Figure 1. Address Editor -
-
Add the
zupl_xmpu_v1_0core to your repository.- Click Settings beneath Project Manager. This is located in the Flow Manager.
- Under Project Settings, expand > IP, and click Repository.
- Click the + symbol in the IP Repositories.
- Browse to the
zupl_xmpu_v1_0directory and click Select. - One (1) repositiory must be added to the project. Click OK to clear the Add Repository window.
- Click OK to clear the Settings window.
- Add the
zupl_xmpu_v1_0core to the block design.- Click the + symbol in the Block Diagram window.
-
Type
zuplin the Search field type and double-clickzupl_xmpu_v1_0or press enter.
- Add a SmartConnect IP core.
- Click the + symbol in the Block Diagram window.
- Type smart in the search field type.
- Double-click AXI SmartConnect or just press enter.
- Right-click the smartconnect_0 instance and select Customize Block.
- Change the Number of Master Interfaces to 2 and click OK.
-
Disconnect the AXI
Interconnect block from the Zynqzynq PS
block.
-
Select and
delete the bus signals
between
zynq_ultra_ps_e_0andps8_0_axi_periph. - Right-click
ps8_0_axi_periphand Customize Block. - Reduce the Number of Slave Interfaces to 1. Click OK.
-
Select and
delete the bus signals
between
- Connect the Zynq PS M_AXI_
ports.
- Connect
zynq_ultra_ps_e_0/M_AXI_HPM0_FPDtosmartconnect_0/S00_AXI. - Connect
zynq_ultra_ps_e_0/M_AXI_HPM1_FPDtosmartconnect_0/S01_AXI.
- Connect
- Connect the XMPU AXI ports.
- Connect
zupl_xmpu_0/S_AXI_XMPUtosmartconnect_0/M00_AXI. - Connect
zupl_xmpu_0/S_AXItosmartconnect_0/M01_AXI. - Connect
zupl_xmpu_0/M_AXItops8_0_axi_periph/S00_AXI. - Regenerate Layout. Click OK.
- Connect
- Connect the AXI clock and reset ports.
- Click Run Connection Automation.
- Select All Automation. Click the
Regenerate button.
- Manually connect any unconnected
aclkoraresetnports.
- Connect the IRQ signal.
- This example design demonstrates the usage of PMU and RPU to receive
interrupts from the XMPU so the
pmu_error_from_plport needs to be enabled. Right-clickzynq_ultra_ps_e_0and select Customize Block. - Click PS-PL Configuration. Expand > General. Expand > Others.
- Select the check box for Errors to and from PMU. Click OK.
- Connect
zupl_xmpu_0/irqport to bothpl_ps_irq0[0:0]andpmu_error_from_pl[3:0]ports onzynq_ultra_ps_e_0. - Regenerate Layout. The diagram resembles the following.Figure 2. xmpu_pl Example Block Diagram
- This example design demonstrates the usage of PMU and RPU to receive
interrupts from the XMPU so the
- Map the Address segments.
- Click Address Editor.
- Assign addresses:
- Expand > Network 0 > zynq_ultra_ps_e_0 > Data > Unassigned (4).
- Right-click
zupl_xmpu_0: S_AXI_XMPU (S_AXI_XMPU_Config)and select Assign.Note: If two entries are shown, select either one. - Change the range of
S_AXI_XMPUto 4K. - Change the Master Base Address of
S_AXI_XMPUto 0x00_A000_2000. - Select File > Save Block Design.
- Select Tools >
Validate Design.Note: If asked to assign unmapped slaves, select No.
- Ignore warnings about unmapped slaves. Click OK.
- Right-click Uassigned Slaves/zupl_xmpu_0: S_AXI (S_AXI) and select Exclude.
- The final configuration is shown in the following diagram.Figure 3. xmpu_pl Example Address Map
- Select File > Save Block Design.
Note: Thezupl_xmpu_0/S_AXIis excluded due to the AXI Bridge in the core. Downstream slaves are mapped directly to upstream masters. - Customize the
zupl_xmpu_0block.- Return to the block diagram and right-click
zupl_xmpu_0and select Customize Block. - Select AXI Settings.
- The
C_S_AXI_ DATA_WIDTHis set to the default value of 32. Leave it at default setting. The AXI infrastructure blocks adjusts for the PSM_AXI_bus widths. - The
M_AXI_BASEADDRandM_AXI_HIGHADDRwill not have any functional effect. However they are provided as a means to communicate to the SW Driver the address range that the XMPU monitors. These values will be exported to thexparameters.hfile and be included in the peripheral's instance configuration data. - (Optional) Set these values to correspond with the
address ranges shown in the previous figure.
-
HIGHADDR:0xA0001FFF -
BASEADDR:0xA0000000Tip: Use the upper 32 bits to specify a 40 bit address..
-
- Select the Regions Tab and note the value for Regions Max. The default is the absolute maximum setting at 16. If the HW designer knows exactly how many regions the SW designer needs, they could select a lower number to conserve the PL resources. The setting can be kept to default for the time being.
- Click OK.
- Return to the block diagram and right-click
- (Optional) Set Project Synthesis
Language.
- The top level synthesis language for the project may optionally be set to either VHDL or Verilog. You can choose either one of them for this demonstration.
- Click Settings in the Flow Manager under Project Settings.
- Click General under Project Settings.
- Select the Target Language: VHDL or Verilog. Click OK.
- Create the top level wrapper.
- In the Sources window, right-click Base_Zynq_MPSoC and select Create HDL Wrapper.
- Let Vivado manage wrapper. Click OK.
- Implement design.
- Click Generate Block
Design under IP Integrator.
- Select Out of context per IP and click Generate.
- If a Generate Output Products
dialogue appears when the module runs have launched:
- Click OK.
- Wait for all the block runs to complete.
- View the status in the upper right corner or monitor the Out-of-Context Module Runs on the Design Runs tab below.
- Click Generate Bitstream in the Flow Navigator, click OK or Yes and then OK.
- When the Bitstream Generation Completed window appears, click Cancel.
- Click Generate Block
Design under IP Integrator.
- Export hardware.
- Select File->Export->Export
Hardware.
- Check Include bitstream.
- Click Next.
- XSA file name: Base_Zynq_MPSoC_wrapper
- Export
to:
If prompted, click OK to Create Directory.<your_path>/XmpuPL_ZUplus_v1.0a/zcu102_<version>/xmpu_example/pl_isolation_lab.vitis/Base_Zynq_MPSoC_wrapper_hw_platformFigure 4. Export Hardware in Vitis - Click OK or Next > then Finish.
- Select File->Export->Export
Hardware.
The hardware design is now complete. Proceed to Creating the Isolation Test SW Applications in Vitis 2021.1.