The success of any adventure, big or small, is often heavily dependent upon the tools you have available and how well you know how to use those tools. For this adventure, our hardware tool is the Zybo and our software tools are Vivado and the Xilinx Software Development Kit (SDK). As I mentioned in the introduction post, this is a series based on my experiences going through various materials related to the Zybo and exploring embedded Linux on that platform.
Up to this point I have gone through several of the example projects in “The Zynq Book,” as well as the Zybo Getting Started Guide (GSG), on the Digilent reference page. The GSG, as well as the first handful of tutorials in the Zynq Book (examples 1A through 1C and 2A though 2D), are all very useful for the purposes of getting familiar with the software tools and establishing an understanding of the programmable logic and programmable software interface that composes an embedded system design. There are many steps that are the same throughout these early tutorials; since they are all fairly basic, however, I would suggest going through them all to make sure you get a good understanding of the workflow.
The work on the Vivado side consists primarily of the IP Integrator, and creating block designs based on IP cores. While this is not very involved, I would recommend paying close attention to the various options and menus while setting up the IP cores throughout the tutorials, as there are some interesting aspects of the system’s functionality that can be gleaned from there. I found that the interrupt options available in exercise 2 gave me a good glimpse at the I/O functionality I could potentially use in a design, so be sure to take a good look at those!
Additionally, at this point the SDK is not very involved. A lot of the steps here are also repetitive, but do serve to make you familiar with the workflow and how the software side works with the hardware side. One thing about this that gives me hope for future work through the SDK is that the code provided is written in C! I enjoy HDL as much as the next person………but to see that projects won’t be only reliant on HDL is very nice.
Some speed bumps I encountered:
- Make sure your workspace directory (folder name) does not contain any spaces. Xilinx SDK will not be able to run and access anything in your active workspace if your folder name contains spaces.
- When going through the Zynq Book tutorials, make sure you downloaded the pre-made resource folder ahead of time. Steps in the SDK portion of the tutorials require importing source code that was already written for you. I got to that point without realizing I needed these pre-made files, which caused some momentary confusion. (Point being, read the instructions).
All said, these introductory materials were easy to follow and helped me build some confidence with using the software tools required for this platform.
That about sums it up for now. I found these early tutorials and guides to be pretty low key, but insightful and helpful in getting me familiar with how the tools work. Any comments or questions are always appreciated. Until next time!