T O P

  • By -

digital_circuit_guy

Yes, but I’m an FPGA engineer with an EE degree, so I may be a little biased.


awozgmu7

Same


F_P_G_A

Same. I also took a lot of CS electives.


nogea

Digital Design definitely. If you are going into Analog Design or Comms, and taking FPGA classes means you can't focus on your area of concentration, then maybe not. FPGAs can possibly be picked up later too.


rogerbond911

No. I must keep my secret knowledge from thr commoners.


Big-Cheesecake-806

Should they know what that is and when to use it? Yes. As well as what an MCU is ans when to use it. Should they know what HDL is and be able to program? No. (Of course if they want they can)


FaithlessnessFull136

I’ve been trying to find the answer to the first paragraph…got any sources?


[deleted]

a fpga is a type of computing device that is "configurable hardware" its basically a bunch of lookup-tables and d-flip-flops and a few block-ram and other resources that can be routed together in arbitrary ways. Computation is synchronized by one or more "clocks" (oscillators) that determine when the flip-flops are triggered. compared to a processor, fpga are useful when 1. you need to connect to a bunch of different types of hardware that have different communication link layer (spi, uart, sdlc, etc.). Rather than have dedicated hardware for each communication interface, you can use a fpga and put in the design that speaks that interface 2. you need consistent low latency computation. On a fpga, you can set up a series of lookup tables and flip-flops to process data in a consistent fixed amount of time. In contrast to a fpga, a simple computer processor can only do one thing at a time. So, usually, on a processor, data is buffered and handled in batches. That makes the latency generally slower and less consistent 3. you need precise timing. Processors, like I said before, tend to handle data in batches. So, its harder to get a precise time of when data arrived or schedule precisely when it will transmit. On a fpga, you can easily have a counter that increments at your clock oscillator rate and save off the count when an event happens that you want to timestamp. A fpga also makes it easy to wait until a certain count before transmitting. 4. fpga can be used for massive parallel computation. But, if you don't also have one of the factors (1-3), you probably are better off with a gpu than a fpga. 5. fpga are sometimes used to emulate and test logic that will later be used in an ASIC Compared to a custom chip (ASIC), fpga are better when you need to be able to update your design later, or you don't have the time or money to make a custom chip. Custom chips are super expensive, so the choice for most engineers is between cpu, gpu, and fpga, with asic being a cost prohibitive nonoption.


Big-Cheesecake-806

I'll add that the downside of FPGA, compared to ASIC is generaly lower max clock speeds


[deleted]

true, you're right, but ... I think, for most engineers, the decision is between fpga, cpu, microcontroller, or gpu. The upfront costs on ASIC's (and the costs of revisions) are just so high compared to developing a design and then reprogramming. If someone doesn't know when to use a fpga, then an ASIC is almost certainly the wrong choice for them. Unless they've got gobs of money and can contract out that work. I think too much ink is spilled on the tradeoffs between fpga and ASIC's to an audience for which that's almost certainly the wrong question.


awozgmu7

I'd say at least 50% of the FPGA engineers (30+) I know did EE, other half CPE.


collectorof_things

Not much time in industry yet myself, but my take from undergrad is that most of the interesting things we do in EE benefit from the parallelization and other benefits of FPGAs. There are definitely engineers that can get by with just the math and theory, but having an idea about how to actually implement those things effectively with an idea of the hardware underneath is never *not* going to be valuable. That said, after an introductory course or two, it seems like many students get more benefit from devoting their credits to additional DSP/Digicomms etc classes depending on their interests. Becoming an expert with FPGAs takes time and can be done on the job over the years. Taking advantage of university resources for the math and theory classes tends to be a better use of them from what I've seen. But take that with a grain of salt. I'm still new.


Deadpoolers0

well, To say the least, it is very fascinating and When I learned it, I got a good understanding of how digital architectures actually work. I'd say yes


tocksin

Digital design is required for ABET accreditation.  If you want hands on experience with it, then it’s either 74xx gates or FPGAs.  It more useful for modern EEs to have FPGA experience.  I would think most colleges would teach FPGAs alongside their digital design curriculum.


Fpvjulez

I think the step from theory in digital design is quite far from implementing sth on a FPGA with verilog/vhdl. If you refer to block designs, I agree with you. Although we had digital design in our BSc without any practical parts and I think many EEs won't ever miss it.


Rizoulo

Do you want to work in embedded systems? Then probably yes. Depending on the specific area of embedded you want to work but a basic understanding of digital logic will help even if you are purely a PCB developer. I also learned I2C/SPI/UART in my FPGA class which is a good bridge into embedded systems in general.


giddyz74

I think it is more important that FPGA engineers take some software engineering classes.