So Dave made a comment in his HW vs. SW blog that got me thinking. (Don't worry Dave, this isn't a 'let's bag on Dave session', you just got me thinking was all).
I'm tossing this out there to maybe clear some of the mud for the newbies that are asking questions about what's what and how to get started, etc. I'd like to de-mystify at least this small corner of the world.
I've seen and heard multiple references from some of the EE's present here, that their view of what FPGA design is all about, what is it to write VHDL, and what not.
In one aspect, there's the need to understand the electrical interface to an FPGA so one can design a proper circuit around it, do a proper PCB, etc. However, the inner workings of the FPGA itself is a different realm. It's actually not VHDL design or even Verilog design, it's digital design. Now before anyone starts bagging on us poor digital pukes, let me mention for the newbies there's actually a whole lot more to digital design than just tossing down a few AND and OR gates with some flops in between. Is it any easier or harder than what an analog EE deals with? Neither. It's just different. Depends on the complexity of the problem at hand. Don't believe me it can get ugly? Pick up a book on DSP (digital signal processing) and prepare to dust off every math book you can lay your hands on. And yes there's a whole range in between.
So where does this VHDL or Verilog fit in? It's just a tool. This is where much of the confusion lies. Writing VHDL (shudder) or Verilog, or even System Verilog is not writing software. It may look a lot like software in syntax, but in terms of what becomes actual logic (the term is "synthesized") it's really digital design and the language is just the means to the implementation. Now if a team truly has software engineers that are not experienced digital designers, I cringe at the outcome of what that design will look like. What makes things even more muddled is when you start getting into the verification realm, then yes it does or can quickly become software design. Most of today's top notch ASIC verification engineers actually have their roots in software engineering. They generate the virtual testbenches and stimulus to wring out the RTL design before it's put to actual hardware.
One last comment for the newbies - the tools and skills used for FPGA design are largely the same for doing chip design. The backend tools get specialized (tools for place and route, floorplanning, etc) and will be different for FPGA vs. chip design, but all the same front end tools and methods are the same.
So if you managed to actually read through all that, I'm curious to hear from the analog EE's in the house.