UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 

Don't know where to start your own projects with FPGAs or SoCs? Start with easy-to-use development platforms by Xilinx!

Xilinx Employee
Xilinx Employee
0 0 2,730

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.

110060157%201

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. 

Fig2_MisMatch.png

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. 

Fig3_Match.png

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

 

Fig4_HWConfiguration.png

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. 

Fig5_ColorMatchGameBoard.png

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: