Category Archives: VHDL

VHDL specific tips

Synthesizable Procedures

VHDL offers a procedure language construct.  Like most tools, it has a handful of advantages and disadvantages.  Procedures have long been used in simulations to allow complex logic sequences to be represented as a single statement.  This allows the sim … Continue reading

Posted in VHDL | Comments Off on Synthesizable Procedures

Unconstrained Vectors

VHDL makes heavy use of types, and has a concept of an unconstrained vector.  This is a vector whose dimension isn’t specified in the declaration of a construct, but is determined by the instantiation or use of the construct.

Posted in VHDL | 1 Comment

VHDL Generics

VHDL has fairly good support for generics.  VHDL-2008 will actually provide several improvements as well.  Generics are a good alternative to code generation, and work well for the vast majority of designs.  Generics aren’t a complete replacement for code generation … Continue reading

Posted in VHDL | Comments Off on VHDL Generics

Functions Vs Scripts

I recently decided to re-write the logic portion of my Reed-Solomon encoder to use VHDL functions instead of script-generated logic.  I defined a “permute” function to perform the logic manipulation:

Posted in FPGA, VHDL | Comments Off on Functions Vs Scripts

Variables in VHDL

In a previous article, misuses of variables in processes was discussed. This article describes useful uses of variables in VHDL.

Posted in VHDL | Comments Off on Variables in VHDL

Non-Blocking Nuances

Nonblocking assignments are very common in VHDL.  They have some pitfalls to look out for. VHDL is different from Verilog in that it forces the use of nonblocking assignments for signals.  This means a design will use nonblocking assignments somewhere.

Posted in VHDL | Comments Off on Non-Blocking Nuances

Variables are not Signals

Annoying and Dangerous when misused. Continue reading

Posted in VHDL | Comments Off on Variables are not Signals