Abstract
Sequential circuits
In synchronous circuits, operations follow one another in discrete time steps. A synchronous circuit is made up of two conceptually distinct but physically intertwined parts: the Combinatorics part, on which the computation is based at each instant, and the registers, which store the values from one instant to the next. The registers are governed by a clock, which produces square-wave signals of which only the rising edges are of interest here. At each rising edge, the registers simultaneously sample and store the values of their inputs [1], then propagate these values to their outputs for the entire next cycle. A register is therefore a shifter with respect to discrete time. For simplicity's sake, we'll assume that the registers are initialized to 0 at the first cycle. For the calculation to run smoothly, it must be guaranteed that the time distance between successive rising edges of the clock is greater than the sum of the critical delay of the Combinatorics part and the register changeover time (usually much less): a synchronous circuit can therefore only operate at 1 gigahertz if this sum is less than 1 nanosecond. In the figures, a register will be drawn as a square.