|
|
|
|
|
by ohazi
1838 days ago
|
|
There are other options as well: nMigen (python), Chisel (Scala), SpinalHDL (Scala), Bluespec (Haskell). It's worth taking a quick glance at all of them (maybe making a toy or two) to see if any of them strike your fancy. Being able to do metaprogramming and parameterization in an actual programming language rather than a not-quite C-preprocessor pass makes a lot of things easier. Just about anything feels "nicer" to me than VHDL or Verilog, but I particularly like nMigen, and find SpinalHDL to be at least somewhat readable. |
|
I agree, metaprogramming and parameterization (both enabled by polymorphism) is the key, and also what enables me to just "plug in" a function that essentially implements e.g. an AXI4 enabled register, or a whole burst transfer.
I shudder having to do that by hand every time in Verilog/VHDL now, tightly coupled to the rest of the logic.