Over the years I have talked a lot about how to use FPGAs and SoCs and I’ve even shared tips and advice for how to start your own company. As someone who has done a lot of FPGA designs, however, I’ve never talked about the projects I have enjoyed most over the years and why I enjoyed them so much.
Secondary Surveillance RADAR Processing – Believe it or not, my first professional job, fresh out of university back in 2000, included responsibility for a complete FPGA design. This FPGA was part of a secondary surveillance RADAR system used by the military to identify interrogated aircraft as friendly or foe. The FPGA itself was very interesting in that it did the sequencing of interrogations as requested by software control and then generated the challenge waveforms for transmission. The resultant reply was then decoded and checked for reflected replies, spoofing and pulse parameters which were out of specification. Valid replies where then stored in the appropriate range bin in BRAM memory. Looking back with experience of hindsight twenty plus years later, there is no way I would expect a fresh graduate engineer to be responsible for the development and verification of a complete FPGA. I will say that it taught me a lot about FPGA development and especially architecting and verification. I remember creating my own FPGA verification framework with text file scripting and self checking . This was a great project because I learned the overall development process, what to do and what not to do, in addition to how to integrate and test the overall system, which I eventually became responsible for. The FPGA targeted in this project was a Virtex-EM 405. I picked this device because the BRAM was sufficient to internally integrate the RADAR range memory, reducing the need for external devices.
Thermal Imager Camera – In another one of my early developments, I was part of a team working on a next-generation HD solution for defence applications. This project introduced me to embedded processing within a FPGA and image processing – both of which would prove to play a significant role in my career. The target device was a Virtex-II Pro which included PowerPC 405. The introduction to image processing was great because I learned how to process image frames through the FPGA to ensure minimum latency in addition to learning how to implement image processing algorithms on live video. It was also where I learned that there is nothing better than creating a FPGA / embedded system design and then seeing live video on a display.
Assisted Vision for Sight Impaired – This project used two small cameras connected to a FPGA with corresponding micro displays. The role of the FPGA was to configure the cameras, implement an image processing pipeline and then render the image on the micro display. As a body-and-head worn system, it had to be lightweight and very power efficient. A Zynq-7000 SoC was used for this application mounted on a snickerdoodle. This provides WiFi and Bluetooth control of the camera system by the wearer. The greatest challenge of this project was developing a FPGA design which was high performance, low latency and power efficient to maximize battery life. The hardware design was very interesting because we used high-speed serial links to connect a single cable to and from the camera / display and the FPGA. This minimized the cabling required, making the head set element of the design much more compact.
Smart Sensor IoT Board – Of all the projects I have been involved in, I think this one has always been my favorite. It included specifying, designing, and then bring up the board. Oh, and we wrote a book about it and made the design available. The creation of this board was definitely one of the most fun engineering projects with my co-authors. It was complicated in that bringing it up involved getting the processor side up and running and checking out the DDR3, QSPI, SD Card and interfaces. It also required the programmable logic design to interface with all of the sensors and interfaces connected to the PL. Thankfully everything worked and we were able to publish the book. Hopefully we can look at manufacturing more of these boards as the device shortage decreases. This board is based around the Zynq-7020 SoC. If you want to learn more about this board see the links below.
Safety Critical FPGA – I am going to leave the application out of this one because it was a critical infrastructure project but this project first introduced me to mission critical / safety critical design – another theme which has run throughout my career. This application was Safety Integrity Level Four (SIL4) and had significant considerations at the system, hardware and FPGA levels for how we connected the application for redundancy and fault tolerance etc. It was my first introduction to a range of techniques including FMECA, Triple Modular Redundancy, SEC-DED, Fault Propagation and Isolation, which I would often use throughout my career. Perhaps it was part stress and part worse-case analysis, but I would spend many hours learning how to reduce the power dissipation of the device when doing very complex processing to enable derating of the junction temperature. What I learned on this project along with the ones which followed would also then translate into my mission critical course.
This is a slightly different blog than usual but these designs are the ones that had a significant impact on my career and I found most enjoyable.
What have been your most enjoyable FPGA designs and what impact did they have on your career and development?
Workshops and Webinars
If you enjoyed the blog why not take a look at the free webinars, workshops and training courses we have created over the years. Highlights include
Introduction to Vivado learn how to use AMD Vivado
Ultra96, MiniZed & ZU1 three day course looking at HW, SW and Petalinux
Arty Z7-20 Class looking at HW, SW and Petalinux
Mastering MicroBlaze learn how to create MicroBlaze solutions
HLS Hero Workshop learn how to create High Level Synthesis based solutions
Perfecting Petalinux learn how to create and work with petalinux OS
Embedded System Book Do you want to know more about designing embedded systems from scratch? Check out our book on creating embedded systems. This book will walk you through all the stages of requirements, architecture, component selection, schematics, layout, and FPGA / software design. We designed and manufactured the board at the heart of the book! The schematics and layout are available in Altium here Learn more about the board (see previous blogs on Bring up, DDR validation, USB, Sensors) and view the schematics here.
Sponsored by AMD