VHDL (VHSIC Hardware Description Language) is a hardware description language used in electronic design automation to describe digital and mixed-signal systems such as field-programmable gate arrays and integrated circuits.
VHDL Anti-Patterns Overview
Using Variables Instead of Signals
Multiple Signal Assignments
Incomplete Sensitivity Lists
process(all)
for an automatic sensitivity list.Latches Due to Incomplete Assignments
Mixing Blocking and Non-Blocking Assignments
<=
) and variable assignments (blocking, using :=
) within the same process. This can lead to confusion and potential simulation-synthesis mismatches. Use signals consistently for sequential logic.Asynchronous Reset Release
Combinational Loops
Using Wait Statements in Synthesizable Code
wait
statements in synthesizable code. wait
statements are generally not synthesizable (except for some specific forms like wait until rising_edge(clk)
in some tools). Use process sensitivity lists and additional registers to implement delays.Using Shared Variables Without Protected Types
Using Inferred Latches for Memory
Not Using Records for Related Signals
Not Using Packages for Common Definitions
Not Using Generics for Parameterization
Not Using Named Association in Port Maps
Not Using Functions and Procedures
Not Using Assertions
Not Using Configuration Declarations