Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

hah, that's only the tip of the iceberg...

From memory:

- HDL code doesn't have variables the way programming code does. Sure, you can store state in latches (and other more roundabout ways), but a good design tries to avoid this.

- You can have "functions" that take parameters, but what you're really doing is instantiating blocks of hardware according to said parameters.

- Instead of variables to functions, what you really care about is signals as input and output to hardware blocks. (and ultimately at the final hardware implementation, propagation time and power of said signals. Especially the clock. OMG the clock...)

Honestly, I found VHDL made complete sense from approaching it after drawing digital circuit diagrams, as the description code mapped pretty clearly to that. Approaching it from an "imperative programming" background makes little sense, and saying it's "concurrent programming" just ends up confusing the issue more, IMHO.



Absolutely agree with learning digital circuit design first. Before writing a single line of HDL, you should know exactly what you want to be synthesized.

Unfortunately all to many courses approach like learning a new programming language. To me this is like teaching CAD before teaching how to draw a rectangle.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: