The behavior of finite-state machines is not only determined by the input values but also by the internal states. Sequential circuits are technical realizations of finite-state machines. We introduce models which can be used to describe either the behavior or the structure of several realizations of both asynchronous and synchronous sequential circuits. The behavior of these two types of sequential circuits can be calculated using the same basic approach; however, there are peculiarities that must be considered. Therefore, we describe the analysis of asynchronous and synchronous sequential circuits in separate sections. The synthesis task must take these peculiarities also into account; hence, we explain synthesis methods separately for asynchronous and synchronous sequential circuits. The common synthesis task can be realized by the solution of the system equation with regards to the memory variables and the result variables. For the synthesis of synchronous sequential circuits, we explain a very efficient approach that avoids the explicit calculation of the memory functions but directly computes the controlling functions of the flip-flops. In all these cases non-deterministic finite-state machines are utilized which contribute to the synthesis of optimized sequential circuits. Several approaches for the hardware-software co-design of finite-state machines complete this chapter.