What is a Controller Based Digital Design
Practical digital systems are often quite complex with a large number of states, inputs and outputs involved. Therefore it is very difficult to start designing a digital system from the scratch because the combinational or steering logic for it will be very large and therefore difficult to handle from a designer’s point of view. This is a where a controller based digital design comes in.
In a controller based digital design, the digital system is partitioned in to two parts:-
Functional Units Controller
The functional units are off the shelf components such as registers, ALU’s, memory etc that are available to the designer in IC forms. These functional units have various control pins that can be used to manage their operations. A controller is a state machine that is synthesized by the designer himself in order to control the various functional units so that they function in collaboration with each other and form the required digital design. These functional units are also known as the architecture of the digital system.
In the generalized model of a controller based design, the following features are involved:-
Command signals which are issued by the controller or the control unit to the functional units. Status signals that gives information about the current state of different functional units to the control unit. External inputs to the control unit such as reset clear etc. External outputs of the control unit for issuing of warning and error messages etc. Date inputs to the various functional units Date outputs of the functional units.
This top down design approach of partitioning the digital design in to a Control Unit and Functional Units is so powerful that almost all complex digital systems today are based on this design methodology. Take the example of a calculator. It is very difficult to start building a calculator from the scratch. But if a designer buys the different components involved in it such as decoders, display, ALU’s etc and then just designs a control unit to control the functioning of these components, the task becomes much simpler.
The design process is somewhat intuitive though because it needs a back and forth analysis between the functional units and the control units. This is because the control unit depends very much on the control features available in the functional units. Also sometimes a control feature might have to be built in to a functional unit by addition of extra hardware logic.