2016 COMP4601 LAB FAMILIARIZATION AIMS • • • • • • Familiarize yourself with the ZedBoard and its operation Gain familiarity with Vivado 2015.4 by completing a sequence of recommended lab exercises from the XUP “Advanced Embedded Systems Design using Vivado” course Practice creating and interfacing your own hardware designs by completing the “Creating AXI-LITE ‘Custom IP’ in Vivado” lab exercises Gain experience installing Linux on the ZedBoard with reference to the guide “Linux on the ZedBoard” and the XUP workshop “Embedded Linux on Zynq using Vivado”. Learn where you can obtain help in your use of the board and the Vivado design software Install Vivado on your home computer in order to work on your project. It is recommended that you use the CSE OpenVPN network (see http://taggi.cse.unsw.edu.au/FAQ/OpenVPN) and the floating license server (27000@louie.cse.unsw.edu.au) to run the software. PROCEDURE 1. Lab kits & forms will be distributed for your signature in Week 1. • Please don’t lose items from the kit and please take care not to damage the kit as these cannot be replaced; they are in short supply this year. In particular, never forget your power adapter when you pack away your kit to leave the lab. 2. If you are provided with a shrink-wrapped ZedBoard box, follow the lab demonstrator’s directions to unpack the ZedBoard box, otherwise go on to Step 3. • Hand in included papers and disks, as these will not be used • Obtain a power adapter, a second USB-micro USB cable and two jumper connectors to complete the lab kit for COMP4601 3. Login to your CSE account on the Lyre lab machine and enter the command “vm COMP4601_16s1” in a terminal window to start the vmware machine containing Vivado 2015.4 • NOTE: The virtual machine is configured to be non-persistent; this means you need to save any files you have created to removable memory or your UNIX home (accessible via Z:\) before shutting down Windows or closing the virtual machine, otherwise it will be lost. • Also please ensure that you close (shut down) the virtual machine and logoff your CSE account before leaving the lab. 4. Check out folders C:\zedboard and C:\xup\adv_embedded\2015_2_zynq_labdocs_pdf. Note that the C:\xup\2015 Xilinx workshops folder contains an archive of all current Xilinx Professor Workshops for Vivado 2015. These courses range in difficulty from Introductory to Intermediate as indicated in Overview.pdf and provide a valuable resource for getting you started on most aspects of the lab environment. 5. Go through the ZedBoard Getting Started Guide C:\zedboard\GS-… • If you have trouble loading the default configuration off the SD card, it is possible that the SD card needs to be re-initialized with the original image – follow the instructions in C:\zedboard\README-restore_SD_image.txt • Refer to the ZedBoard Hardware User’s Guide C:\zedboard\ZedBoard_HW_ UG_...to understand details of the board’s configuration Refer to www.zedboard.org and www.xilinx.com → Products for lots of user resources including video tutorials, datasheets, forums, etc. • Demos 4 through 7 cannot be performed in the CSE labs, but please try to complete these exercises at home Commence the XUP “Advanced Embedded Systems Design using Vivado” course by reading the PDFs in C:\xup\adv_embedded\2015_2_zynq_labdocs_pdf in order • After you have read C:\xup\adv_embedded\2015_2_zynq_labdocs_pdf\11a_Lab1_ Intro.pdf, jump to C:\xup\adv_embedded\2015_2_zynq_labdocs_pdf\lab1.pdf and carry out the exercises. • Carry on with C:\xup\adv_embedded\2015_2_zynq_labdocs_pdf\12_Advanced_Zynq_ Architecture.pdf and carry out each lab after reading its introduction • It is recommended that you complete labs 1, 2, 3 and 6 as a minimum. These should be completed before Easter (end of Week 4), when you are required to hand in a report comprising your written responses to the reflective questions set out below on Lab 1, Lab 6 and the Custom IP Lab (see next step). Complete the Creating AXI-LITE ‘Custom IP’ in Vivado lab. Carry out the implementation exercises in Section 6. Please note that the lab was designed for Vivado 2013.4 and that the arrangement of the screenshots and which options appear on which screens may have changed in the meantime. Please note any divergence and inform the Tutor, who will maintain a list of significant changes. Submit written responses to the reflective questions below and a printout of the VHDL code for each IP block you created by Friday 25 March (Week 4). [OPTIONAL] If you are interested in installing Linux on the ZedBoard in order to facilitate communications, file transfer, and configuring the programmable logic from within a program running on one of the ARM cores, follow the “Linux on the ZedBoard” guide and consult the XUP workshop “Embedded Linux on Zynq using Vivado”. [OPTIONAL] You are invited to improve the lab materials that have been provided for any of the exercises described above, as well as for any of the other 2015 Xilinx workshop courses you have completed. In this case, your suggestions will be considered for the award of bonus marks to be added to the Lab report and Individual project contribution components of your course grade. Contact Oliver to discuss your ideas and to obtain access to the sources of the exercises/documentation that you intend to modify. Improvements must be submitted by Friday 13 May (Week 10) to be considered. • 6. 7. 8. 9. ADVANCED EMBEDDED SYSTEMS LAB SYNOPSES LAB1 AIM: A simple exercise to familiarise students with the Vivado work flow METHOD: Students are guided through the process of adding GPIO IP to the programmable logic of the Zedboard. Students then create a standalone application for testing the custom system. The application uses the serial port for debug output and Switches/Leds on the Zedboard to demonstrate the operation of the custom system. LAB2 AIM: A simple exercise to familiarise students with hardware debugging in Vivado. METHOD: Students are shown how to import trivial 3rd party IP into their Vivado PL system design. Students are then shown how to examine the signal levels and transitions on the AXI bus when communicating with this IP. Finally, students are shown how debug input signals can be used to manually insert signals onto busses which reside in the programmable logic. LAB3 AIM: To demonstrate the use of BRAM in the system METHOD: Students create an FPGA system design for the Zedboard which includes BRAM. Students then create a standalone test application for this lab. The linker script is to be modified such that the .data section of their application resides in BRAM rather than DDR RAM. Modification of the linker script is done through the Vivado SDK GUI via combo boxes rather than modifying a textual representation of the linker script. LAB4 AIM: Demonstrate the integration of DMA engines and IRQs METHOD: This lab builds on LAB3. A DMA engine is added in the programmable logic and and IRQ is configured to fire when the DMA engine becomes idle. Students then benchmark different methods of copying data to/from different locations with different transfer mechanisms. LAB5 AIM: To demonstrate the various boot options of the Zedboard and how to install the bootloader. METHOD: Create a boot image and boot the system from various sources (SD card, QSPI flash, JTAG). This lab is long, tedious and does not offer much when you consider that students will generally boot only from JTAG, or SD with a boot image that they get from the web. LAB6 AIM: To learn about system profiling and the strategic selection of candidate software functions for acceleration in the FPGA hardware. METHOD: Students import a DSP based project. An FIR filter is provided as both software and hardware implementations. Students use gprof to obtain performance metrics for the software implementation. Students then switch to the hardware implementation and re-evaluate system performance to observe an incredible performance improvement. CUSTOM IP LAB AIM: Introduces a design flow that will allow you to create your own Custom Intellectual Property (Custom IP) targeted at a Zynq device using Xilinx’s Vivado 2013.4 METHOD: The lab explains how to modify a generated component, by focusing on how the AXI-LITE protocol works and how it can be utilised to establish a two-way data flow between the Processing System (PS) and the hardware component implemented in programmable logic (PL). This lab concludes on methods for maintaining and integrating this IP as part of a larger design. REFLECTIVE QUESTIONS • Submit written answers to the following questions for each lab you completed. As a minimum, these should include labs 1 and 6 of the Advanced Embedded Systems course as well as the in-house developed Custom IP lab. You should be able to write about one page per lab 1. 2. 3. 4. What did you learn while completing this lab? In which design situations could you apply the knowledge/skills you gained in this lab? What did you like/dislike about the lab? Are there any ways in which the lab exercises or documentation could be improved? How would you implement your suggestions?