- Procedures and functions are used to define reusable subprograms. Procedures do not return a value while functions return a value. - Packages are used to group related types, constants, and subprograms. Package declarations define the interface while package bodies define the implementation details. - VHDL describes both the structure and behavior of hardware designs. Structure is defined using entities, architectures, blocks, and components. Behavior is defined using processes, signals, and assignments.