4 ms·
+1 vhdl is much harder to reason about than c. With fpgas you don't write a code flow, instead you write logic that gets executed all at the same time. It's go
by cobookman 9y ago
+1 vhdl is much harder to reason about than c. With fpgas you don't write a code flow, instead you write logic that gets executed all at the same time.
It's good for things that are compute heavy, but not for anything else.
I'd also wager that asics might make more sense than fpgas. Which seems to be the path we are going down
- tnecniv 9y agoVHDL (or Verilog) isn't harder to reason about than C in my experience, it's just different.
- Jtsummers 9y agoI haven't used VHDL for work yet (just skimmed the existing code base), but I just took a course on it, this was my main takeaway. There were some gotchas in the language (perhaps in the error reporting in the particular implementation more than the language itself) that took some getting used to, but the hardest conceptual problem for the class (most of us were programmers, and the hardware guys were green and came from non-CMPE backgrounds) was the idea that many of the statements you write happen concurrently, or are scheduled to happen at a future point in the code. So code like: process begin X <= X + 1; Y <= X; end process; With X = 4 at the start, you will end up with (X,Y) = (5,4). Once you start wrapping your head around these concepts reasoning isn't so hard (and having been a CMPE major once I had the basis for this academically, but it was far in the past so had been forgotten). Certainly not harder than trying to understand distributed systems and coordination between them, in fact it's a lot of the same problems just applied at a different scale.
- sweden 9y agoThe problem with programmers trying to design hardware is that when they see code, they think of instructions. If you start shifting your mindset to actual hardware constructions, like flip-flops and combinational logic, the hardware language will start making a lot of sense.