There is an intricate relationship between digital circuits and
boolean expressions (expressions involving boolean variables
and boolean operators):
A (combinatorial) digital circuit always implements some
boolean expression.
This boolean expression can be obtain by tracing the
paths through the digital circuit:
Example:
A boolean function can be realised by one or more
digital circuits.
Circuit design:
The problem that we are interested is how to design a digital
circuit that implement some function that we desire.
This problem is called circuit design problem.
Before we tackle this problem, let's give some more
background on the problem....
Circuit optimization:
As mentioned above, there are many different digital circuits
that will implement the same boolean function.
Some circuit that implements the boolean function uses more transistors
or gates, other circuits use less gates, nevertheless,
they implement the same boolean function.
The circuit that uses the least number of gates to realise
the boolean function is called the optimal circuit.
Finding the optimal circuit is called
circuit optimazation
The circuit optimization problem is NP-complete,
in layman's terms: it is very hard to construct a computer
algorithm (program) that solves the circuit optimization problem.
This course is not about circuit optimization, but to understand
the functionality of a computer.
Non-optimal circuit design:
Although the finding the BEST circuit that realises
a given boolean function is NP-complete (difficult), finding
some circuit is very easy.
In fact, there is a simple algorithm that you can use to
design a digital circuit for any boolean function.
I will illustrate the circuit design algorithm with an example next.
Circuit design example: illustrate the circuit design algorithm
Problem description:
Design a digital ciruit with 3 inputs and 1 output
The value of the output is 1 if two or more of the input values
are 1
The value of the output is 0 otherwise (note: this is implied,
since the output value can only be 0 or 1).
Step 1
of the circuit design algorithm:
Set up the logic table for the boolean function
i.e., List the function values for every possible input values
In this example, the table for the boolean function described above
is:
Step 2
of the circuit design algorithm:
Use and gates to connect to the combinations
of input signals that generate 1 in the output: