In this post, I will briefly cover the hardware labs 3, 4, and 5 for Path II Programmable.
Lab 3 - Memory and peripherals test
This lab walked through manually adding peripherals like SD interfaces, I2C, SPI, UART, GPIO, and Display Port. The training is really geared towards teaching an embedded engineer how to custom-tailor Vivado settings for a specific implementation of the MPSoC chip on a custom board. This means that we have to manually configure clock speeds for each peripheral and pin layouts. If it was assumed that we were just using the Ultra96, then we could import a pre-configured board design and this would all be done for us; but we wouldn't know how to do anything else or what is happening in the background.
Once everything was added, we export the design and go over to the SDK. From there, we create a new board support package, and run a test on the RAM. We create a second application and chose the pre-configured Memory Test application. I ran into a small problem the first time around as the new memory test was never running - SDK kept launching Hello World on the Ultra96. I quickly found out that there is a setting under Run As--> Run Configuration which chooses the specific application to run. Once that was updated, then the test ran without issues.
Lab 04 - TCL Scripting
This lab was all about the command line interface for Vivado. At first blush, this seemed a little unnecessary to me - Vivado has a great GUI and it is easy to navigate and find what I need. As I learned though, Vivado is really running TCL commands in the background for all the GUI interactions. Pressing a button just pushes a TCL command over and the program responds. So we can basically do everything from TCL that we can do in the GUI; and more - we can automate with scripts. We can export a script to re-create our entire project which can then be easily saved off to Source Control; then recalled later and regenerated; without the need to manage multiple files in a folder structure.
TCL Console in Vivado:
So I think that TCL makes sense to learn when working a lot in Vivado; and any time source control is needed. We learn that we can preform and action from the GUI, then just look in the TCL window to see what command was used, then apply this to a custom script. This is how I used to start with writing macros in Excel - hit 'record'; do the action; then stop and see what the command was.
Lab 05 - Adding PL Peripheral - Block Ram
In this lab, we add Block Ram to our design. This starts simple enough by using the IP Library via the "PLUS" icon ("+") in the diagram, and searching for "BRAM". We have to manually configure and check a few things for this, then Vivado takes care of the rest; including adding the AXI interface and interconnects.
The IP Repo is a very useful tool and will be covered in later lessons, and I hope to use some of it for the second half of this training.
Video update
Check this video for a walkthrough of these three lessons.
- James
