Published On: January, 16, 2023 By: Eshtaartha Basu | Updated: December 5, 2023 by Greg Sheridan
This tutorial will walk you through generating a hardware platform in Vivado 2021.2 for a design using the OSDZU3 System-in-Package. It will use the OSDZU3-REF platform as an example.
Here is a video walking through this app note you can watch and follow along with as well!
At the end of this tutorial, you will be able to:
This tutorial will require the following software and hardware setups.
The software requirements for this tutorial are:
The hardware setup for this tutorial is:
The following Board Definition Files are provided to suit your needs and help with the hardware platform generation:
The Board Definition Files must be installed in Vivado by either of the two methods below.
Unzip the osdzu3_bdf.zip to the following folder of the Vivado 2021.2 install directory
<install_location>\Vivado\2021.2\data\xhub\boards\XilinxBoardStore\boards\Xilinx\
Add a path to Vivado for a separate Board Repository
This section will show you how to start with one of the OSDZU3 based Board Definition Files (BDFs), create a hardware platform, generate corresponding bit stream, and export the hardware platform as necessary.
We will be using OSDZU3-REF as our example platform. The on-board User Push Buttons, LEDs and DIP Switches will be exercised to illustrate the hardware platform generation process.
If you’re planning to use OSDZU3 Reference Design BDF for this process, skip sections 5.3.2, 5.3.3 and 5.6, follow all other steps below. This is because the skipped sections talk about manual GPIO IP configuration and adding GPIO constraints. These are not required for OSDZU3 Reference Design BDF since GPIO IP configuration and constraints for all on-board peripherals are already defined in the BDF.
Please follow the steps shown below to create a hardware platform project.
In this section we will be creating a Block Design for the hardware platform. Once the Block Design canvas is created, IP cores can be added to the design from the Vivado IP Catalog.
You are now ready to add peripherals to the design that are connected to the Zynq UltraScale+ MPSoC PL such as PL LEDs, DIP switches and Push buttons.
To add LEDs with manual GPIO IP configuration:
The process of adding DIP switches to the block diagram is similar to that of adding LEDs in the previous section.
Note: You may see 3 warning messages in the Vivado console. You can safely ignore these messages.
Vivado (from AMD-Xilinx), by default, supports only Xilinx devices and their pin locations in the software. Since OSDZU3 SiP integrates Xilinx MPSOC within it, the pin locations between Xilinx MPSOC and the SiP may be different. As a result, the osdzu3_helper.tcl file is provided to aid in the translation from OSDZU3 pin locations to the pin locations of the surrogate Xilinx device that Vivado supports instead. The file also helps with timing calculations for IPs that have timing requirements.
# LED IO Standard set_property IOSTANDARD LVCMOS18 [get_ports {leds_8bits_tri_o[*]}] # DIP Switch IO Standard set_property IOSTANDARD LVCMOS18 [get_ports {dip_switches_8bits_tri_i[*]}]
# LED pin location constraints tclapp::octavo::osdzu3::set_osdzu3_package_pin E7 [get_ports {leds_8bits_tri_o[0]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin F7 [get_ports {leds_8bits_tri_o[1]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin A4 [get_ports {leds_8bits_tri_o[2]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin B4 [get_ports {leds_8bits_tri_o[3]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin C10 [get_ports {leds_8bits_tri_o[4]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin D10 [get_ports {leds_8bits_tri_o[5]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin C8 [get_ports {leds_8bits_tri_o[6]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin D8 [get_ports {leds_8bits_tri_o[7]}] # DIP switch pin location constraints tclapp::octavo::osdzu3::set_osdzu3_package_pin J1 [get_ports {dip_switches_8bits_tri_i[0]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin K1 [get_ports {dip_switches_8bits_tri_i[1]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin A10 [get_ports {dip_switches_8bits_tri_i[2]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin B10 [get_ports {dip_switches_8bits_tri_i[3]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin E10 [get_ports {dip_switches_8bits_tri_i[4]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin F10 [get_ports {dip_switches_8bits_tri_i[5]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin A3 [get_ports {dip_switches_8bits_tri_i[6]}] tclapp::octavo::osdzu3::set_osdzu3_package_pin B3 [get_ports {dip_switches_8bits_tri_i[7]}]
The generation of the hardware platform using the OSDZU3 Board Definition Files is now completed. You can now build the design and generate a bit file.
When the following dialog box appears, click OK to continue. This will open the implemented design in the Vivado GUI and you should see the device diagram. The implemented design needs to be open prior to exporting the hardware platform to Vitis.
Now that the hardware platform has been generated, you can export it to Vitis in order to generate a Software Project (that includes a BSP) as well as all other software applications.
To learn more about developing software applications on top of the newly created hardware platform using Vitis, refer OSDZU3-REF Vitis Tutorial.
We will continue to update this application note to provide more information and more examples. Sign up below to be notified when we update this guide.
"*" indicates required fields
Revision Number | Revision Date | Changes | Author |
1 | 12/20/2022 | Initial Public Release | Eshtaartha Basu |
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields