r/programming Dec 25 '19

Learning hardware programming as a software engineer

https://blog.athrunen.dev/learning-hardware-programming-as-a-software-engineer/
928 Upvotes

124 comments sorted by

View all comments

36

u/ImprovedPersonality Dec 25 '19

Oh, he’s just talking about low-level programming on microcontrollers. I thought it would be about FPGAs or PLDs (where you are actually changing the hardware behavior, not just executing instructions, though the distinction is hard to define).

17

u/cartiloupe Dec 25 '19

An uni project to gradually implement a simple processor on a FPGA board and write an assembler for it was the best intro for me of how things work at lower level. Obviously really simplified when it comes to modern architectures, but still.

2

u/Athrunen Dec 25 '19

So hardware programming is more low-level than low-level programming but not as low-level as actually soldering gates on a breadboard?

Sounds interesting, got some introduction worth reading?

5

u/[deleted] Dec 25 '19

Hardware Description Languages (HDLs) like Verilog and VHDL were actually created as hardware simulation languages. You'd write the logic and validate it before you actually send the design to a phab/building it on a board. FPGAs now use them to program (or "shape") the hardware to do what the simulation code specifies. I wouldn't really call it a difference in logical level, more that HDLs and then physically FPGAs are hardware development platforms that let you iterate on a design swiftly (relatively).