Now is probably the right time to start talking about the board we’re using for our agile SW/HW co-development demo… or I should say hope to be using considering it’s currently on backorder (we’re expecting a mid-June delivery).
It’s called a Zedboard (we borrowed the picture from zedboard.org). Like most development kits, it’s got a lot of stuff on it, much of which we won’t be touching at all. What we definitely will be using is the Xilinx Zynq programmable SoC in the middle. It’s the small’ish Z-7020 device with an ARM dual-core Cortex-A9. The other important part for us is the HDMI connector. The plan of record is to run our Conway’s Game of Life application on the A9 while the visuals are sent to a monitor via the HDMI.
Over the last couple weeks we started focusing on the board specific version of the display handler. To do that, we’re starting with a simple HDMI reference design – also available from zedboard.org – that shows how to construct both a software application and corresponding HDMI-related hardware using the Xilinx IP library.
Now ideally, having the target hardware during development would obviously be best. But realizing that not having the hardware is probably the more realistic situation embedded developers continually face, we’re trying not to panic :). Instead, we’re doing our best to incorporate some pieces of the reference design as is while mocking other portions to model any direct interaction with the board. In short, we’re trying to thoroughly test everything before the board arrives in hopes that it’ll be smooth sailing when it finally does!
Tonight, we were looking at the initialization of the Xilinx IP by unit testing then refactoring the top level of the reference design. For us that involved encapsulating functionality related to different hardware functions then building mocks with GoogleMock to test our interactions. We paired tonight with me driving and Soheil observing. Thinking through how we wanted to partition the code was a bit slow but by the end of the night we figured we were on the right track so that’s a good sign.
Soheil also started looking into building the software side of our demo with the Xilinx SDK. In lieu of a finished application, we figured we could start by integrating the part we have completed with a dummy for the rest to work out the kinks. As more code is ready, it should be easy to pull it in, build it and possibly deploy it once we have hardware. Work there will be ongoing for a few weeks yet I’d imagine.
That’s all for today. You’re up-to-date!