A logic device formed upon a single monolithic semiconductor substrate for implementing a state machine, wherein the state machine comprises a plurality of states, and wherein each of the plurality of states has one or more possible next states which may be reached by a single state transition, the logic device comprising:
- a memory unit configured to store configuration data;
- a control unit coupled to the memory unit and configured to retrieve the configuration data from the memory unit and to produce configuration signals, wherein the configuration signals comprise the configuration data;
- and
- a plurality of configurable logic blocks (CLBs) coupled to the control unit, wherein each of the plurality of CLBs is configurable to perform one or more logic functions in response to the configuration signals;
- a plurality of I/O pads for receiving a plurality of input signals and providing a plurality of output signals;
- and
- an interface unit coupled to the control unit, to each of the plurality of I/O pads, and to each of the plurality of CLBs, wherein the interface unit is configured to form a plurality of signals paths between the plurality of I/O pads and one of the plurality of CLBs in response to a control signal from the control unit;
- wherein when the state machine is in a given state:
- one of the plurality of CLBs is "active", wherein the interface unit routes the plurality of input signals from the plurality of I/O pads to the active CLB, and wherein the active CLB performs one or more logic functions associated with the state in order to produce the plurality of output signals, and wherein the interface unit routes the plurality of output signals from the active CLB to the plurality of I/O pads;
- and
- the control unit provides configuration signals to a number of the remaining CLBs equal to the number of possible next states in order to configure each of the number of the remaining CLBs to perform one or more logic functions associated with one of the one or more possible next states.