All Projects → Architech-Silica → Zynq Microzed Vivado Workshop

Architech-Silica / Zynq Microzed Vivado Workshop

Zynq Workshop for Beginners

Programming Languages

c
50402 projects - #5 most used programming language

Zynq MicroZed Board Vivado Workshop

A Zynq Workshop for Beginners

A workshop for beginners who are starting to use the Xilinx Zynq SoC devices. This version of the workshop targets the Avnet MicroZed board.

This workshop requires the Xilinx Vivado 2015.4 tools, or later.


Contents

  1. Getting something (anything!) working
    • "I just want to see the board work. How do I do it?"
    • Use of the Block Diagram tool.
    • "print" is your friend. We will learn how to use it for debugging.
  2. Using drivers to flash an LED
    • What is a driver?
    • Where do I find the supplied drivers?
    • Using the GPIO peripheral and the supplied drivers, control some pins to flash LEDs on the board.
  3. Debugging
    • Why is this important?
    • How does it help us?
    • What options do we have for debugging?
    • Use the debugger to step through your Flashing LED design.
  4. Expanding your design into the programmable logic (PL)
    • Add soft peripherals to the AXI interfaces.
    • Interfacing between the PS and PL.
    • Connecting interrupts and assigning IO pin locations.
  5. Making your design interactive
    • How do we read inputs from the user?
    • User input driver functions.
    • Using a UART connection, make your software respond to characters sent via the UART.
    • Make an LED light on the board when a certain character is sent from the UART.
  6. Reading from and writing to memory
    • Use the "Xil_io" functions to write to and read from memory.
    • Why is this important?
  7. Timers (Polled mode)
    • Why are timers useful?
    • When do we use them?
    • Using a timer peripheral, flash an LED at a frequency of 1Hz.
  8. Timers (Interrupt mode)
    • What is an interrupt?
    • Why are they important?
    • Make a system that will light an LED in response to a user input, but at the same time print messages to the UART at a frequency of 1Hz. Neither task is permitted to noticeably interfere with the other.
  9. Talking to external components
    • Using a PMOD expansion module, we will experiment with using the SPI protocol to talk to an ambient light sensor.
    • This exercise will discuss the basics of SPI, and will show how to read from and write to an external device to expand the capabilities of your design.
    • We will then implement an interrupt based design to send and receive data from the external board via SPI.
  10. Autonomous Boot
    • Using an SD flash memory card, we will make the MicroZed board boot automatically.

Contributions

Code examples are provided for your use, but please feel free to contribute your own code back to this repository via a pull request in the usual fashion. Please fork from this repo, then create a suitably named branch in your fork before submitting back to this repo. Please don't submit a pull request from your "master" branch. Each new addition to the code should belong to its own submitted branch. Thanks.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].