Editor’s Note: This content is contributed by Joseph Yang, Kwee Peng Yap, Lian Heng Tan, and Pei Fern Ng 

When you have a great idea but only a little knowledge of the hardware and/or software that you want to use, what should you do? Start taking classes and learning skills one by one or find the right tools that are easy to use? One passionate team at Xilinx was not discouraged when they realized they had limited knowledge of Arm processors and development tools they needed to successfully create a simple but fun game. Let’s hear their story.

Our team, who mainly does IC design, had very little knowledge about Arm® processors or the Vivado® Design Suite, but we still wanted to learn more about the Ultra96 development platform, so we decided to start a small project.


Hardware – Ultra96 board and Grove Ultra96 Board Sensors Starter Kit

The default development board is an Ultra96 board. In addition, we used the Grove Ultra96 board sensors starter kit. The reason we used this kit is that Grove Ultra96 board sensors starter kit contains the Ultra96 board sensors mezzanine board with several Grove modules such as LCDs, pushbuttons, and so on. Also, the Grove Ultra96 board sensors starter kit provides sample projects for all the included modules.

Figure 1. Grove Start Kit


Project Design

We decided to create a Word Color Match Game. The LCD had an RGB adjustable backlight, which is an essential part of the game. Whenever the background color matches the words displayed, the player needs to press a button to gain a point. 


Figure 2. When the Background Color Doesn’t Match the Words Displayed

If the player fails to press the button when there is a match, the player loses one life. The game ends when the player loses five lives. 


Figure 3. When the Background Color Matches the Words Displayed

Our project consisted mainly of

  • Grove components interfaced with either Zynq® UltraScale+™ MPSoC and/or Arduino
    • The sensor board has connectors with fixed connections to either Zynq (yellow boxes below) or Arduino (red boxes below)
  • Laptop connected to an Ultra96 board via UART for the debugging
  • Zynq UltraScale+ MPSoC with Vivado tools & SDK flow
  • Arduino to interface with Grove components


Figure 4. Hardware Configuration

Here’s how we partitioned the game

  • Arduino ‒ Game play
  • Ultra96 ‒ Leader board
  • Laptop ‒ Debugging interface

The Arduino and Zynq UltraScale+ MPSoC process inputs from their own set of connected Grove components and update their connected LCD independently. Since each subsystem is self-contained and communicates via UART, it was easy to partition the design among the team. We were able to independently develop portions of the project at the beginning and then easily integrate all portions when the subsystems were ready. 

Finally, the Word Color Match Game board was born. 


Figure 5. Color Match Game Board


Lessons Learned

Here’s what we’ve learned from this experience and about the Ultra96 

  • Versatility
    • Coupled with the Ultra96 boards sensors mezzanine board, one can quickly get their feet wet by starting with simple Arduino tutorials
    • Using an Arm-based Zynq UltraScale+ MPSoC means that users can develop more compute intensive applications on this platform
  • Access to the Ultra96 boards ecosystem
    • The Ultra96 is a versatile platform with many expansion options
  • Access to the Grove ecosystem
    • The ecosystem provides a wide range of modules with easy-to-use drivers
  • Access to Arduino ecosystem
    • The ecosystem provides a wide range of examples on the Internet 


Before the project, we were afraid of the steep learning curve, thinking it would take a very long time to complete a project. However, all four team members were able to understand the Ultra96 development platform within two months and appreciated the fast turnaround of developing code in Python and C in a Linux environment. Most importantly, we had fun!

Whether you're creating a simple design project or a more complex project from IoT to machine learning, this set up is the perfect way to get started. Want to learn more? Want to create your own projects? Here are a few links to help you to jumpstart your own projects:


Original Date: ‎12-14-2018