This document discusses different data types in VHDL including scalar, composite, and user defined types. Scalar types include enumerated types like bit, boolean, character, string, integer, floating point, and physical types. Composite types include arrays, which contain multiple elements of the same type, and records, which contain elements of different types. The document provides examples of how to declare different data types and use them in VHDL code. It also discusses predefined types like time and how to declare user defined types.