Want to use FPGA or SoC but don't know where to start? Start with an entry-level development platform developed by Xilinx!
作者:Joseph Yang,Kwee Peng Yap,Lian Heng Tan和Pei Fern Ng
What if you have a great idea but have little idea of the hardware and software that will be used?
Should I sign up for a class and start learning one by one, or try to find a simple, easy-to-use and suitable tool? In this way, I don’t know how long it will take from idea to realization. We are a team of Xilinx who love innovation. When developing a simple but interesting game, we found that we had very limited knowledge of the required ARM processors and development tools, but this did not discourage us. Come and listen to our story.
Most of the engineers in our team are hardware engineers engaged in IC design and know little about Arm® processors or Vivado Design Suite. However, we still wanted to try Xilinx's new AI entry-level development platform, Ultra96, so we decided to use it to start our small project.
Hardware - Ultra96 Board and Grove Ultra96 Board Sensor Starter Kit
The default development board is Ultra96. Also, we used the Grove Ultra96 Development Board Sensor Starter Kit. We chose the Grove Ultra96 kit because this kit contains the Ultra96 Development Board Sensor Mezzanine Board with multiple Grove modules such as LCD, buttons, etc. In addition, the Grove Ultra96 Development Board Sensor Starter Kit also provides example projects for all the included modules.
Figure 1. Grove entry requirements
We decided to create a Word Color Match game. The LCD display has an RGB adjustable backlight, which is an important part of the game. Whenever the background color matches the displayed word, the player needs to press a button to gain a point.
Figure 2. When the background color does not match the displayed word
If the player does not press the button when matched, the player loses a life. The game ends when the player loses five lives.
Figure 3. When the background color matches the displayed word
Our projects mainly include
Grove components connected to Zynq UltraScale+ MPSoC and/or Arduino
The sensor development board's connector is fixedly connected to the Zynq (yellow box below) or Arduino (red box below)
Laptop connected to Ultra96 development board via UART for debugging
Zynq UltraScale+ MPSoC with Vivado tools and SDK flow,
Arduino and Grove component interface
Figure 4. Hardware configuration
Let’s take a look at how we partition the game.
-
Arduino - Games
-
Ultra96 - Leaderboard
-
Laptop - Debug Interface
The Arduino and Zynq UltraScale+ MPSoC flows take input from their own set of connected Grove components and update their connected LCDs independently. Since each subsystem is independent and communicates via UART, it was easy to distribute the design among the team. We were able to develop parts of the project independently at the beginning and then easily integrate all the parts once the subsystems were ready.
Finally, the word color matching game board was born.
Figure 5. Color matching game board
Here are the lessons we learned from this experience and Ultra96:
Versatility
-
With the Ultra96 development board sensor sandwich board, you can quickly get started with a simple Arduino tutorial
-
Leveraging the Arm-based Zynq UltraScale+ MPSoC means users can develop more compute-intensive applications on this platform
-
Visit the Ultra96 Development Board Ecosystem
-
The Ultra96 is a versatile platform with many expansion options
Visit the Grove Ecosystem
-
The ecosystem provides a wide range of modules and easy-to-use drivers
Visit the Arduino Ecosystem
-
The ecosystem provides a wide range of examples online
Before the project started, we were also afraid of the steep learning curve and thought it would take a long time to complete a project. However, all four team members were able to quickly understand the Ultra96 development platform within two months and were extremely impressed with its quick conversion to Python and C language design in the Linux environment. Most importantly, we had a lot of fun!
Whether you are creating a simple design project or a more complex one from IoT to machine learning, this is the perfect way to get started.
Want to learn more? Want to create your own project? Here are some links to help you quickly start your own project:
https://www.96boards.org/product/ultra96/
http://www.zedboard.org/product/ultra96/
https://blog.hackster.io/microzed-chronicles-a-look-at-the-ultra96-board-c5b8f7a02209
https://china.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html