This document discusses generics and packages in VHDL. Generics are used to pass parameters into VHDL designs and allow modeling of parameterized designs. Packages allow sharing of common declarations across designs and provide a mechanism to encapsulate functions and types. The document provides examples of using generics to model designs with variable port sizes and a package example with a function declaration and body that is used in another design.