Programmable hardware devices like the FPGA, CPLD and PSoC fascinate me. These devices are intriguing as they offer the speed of dedicated hardware, coupled with the flexibility and re-programmability of software. To me this is an irresistible combination. The rapid growth in capability and application of FPGA devices continues to be impressive. For example, it is now quite common to find both custom logic designs and multi-core CPU’s implemented side by side within a single FPGA device. I think it will be very exciting to see where this growth will lead in the future. And so I find that I want to learn more, a lot more, about programming FPGA devices. You’ve found this site, and are reading this post. So there is a good chance that you may also share my interest!
Full disclosure, I am not an expert on FPGA programming – I am starting out as a novice. If you are looking for an expert there are plenty of great blogs out there written by experts in FPGA devices and hardware design. From time to time as I discover ones that I find most useful I will share links. If you know of any great FPGA resources please leave a comment to share them with me.
I will be learning as I go, through a lot of research, reading and hands-on experimentation. I will do my best to share what I learn along the way. And hopefully, the information that I share will be useful to others on similar journies.
Since I am a software engineer by profession, my perspective will unavoidably be more software-centric. I will try to introduce and speak about key topics, but I won’t attempt to teach every possible Verilog or FPGA concept. And I will assume some level of familiarity with basic software concepts. And given the subject, some pre-requisite knowledge, or at least interest in, digital logic and hardware design is also going to be necessary. If you find that I’ve assumed to much, or skipped over something imortant, please don’t hesitate to leave me a comment!