Problem 6.
Combinational construction rules
In lecture, we learned two basic principles regarding the class of
combinational devices. The first allows us to build a combinational
device from, e.g., electronic components:
- A combinational device is a circuit element that has
- one or more digital inputs
- one or more digital outputs
- a functional specification that details the value of each
output for every possible combination of valid input values
- a timing specification consisting (at minimum) of an upper
bound tpd on the required time for the device to compute
the specified output values from an arbitrary set of stable, valid
input values.
while the second allows us to construct complex combinational
devices from acyclic circuits containing simpler ones:
- A set of interconnected elements is a combinational device if
- each circuit element is combinational
- every input is connected to exactly one output or to some vast
supply of 0's and 1's
- the circuit contains no directed cycles
In this problem, we ask you to think carefully about why these rules
work - in particular, why an acyclic circuit of combinational devices,
constructed according to the second principle, is itself a
combinational device as defined by the first. You may assume for the
following that every input and output is a logical 0 or 1.
Consider the following 2-input acyclic circuit whose two
components, A and B, are each combinational devices:
The propagation delay - the upper bound on the output settling time
- for each device is specified in nanoseconds. The functional
specifications for each component are given as truth tables detailing
output values for each combination of inputs:
-
Give a truth table for the acyclic circuit, i.e. a table that
specifies the value of z for each of the possible combinations of
input values on x and y.
-
Describe a general procedure by which a truth table can be computed
for each output of an arbitrary acyclic circuit containing only
combinational components. [HINT: construct a functional specification to
each circuit node].
Since each circuit node is connected to an output of some
combinational element, the functional specification for each circuit
node is given by the functional specification for the combinational
element which drives it. If we start with components that are only
connected to inputs to the overall circuit, we can build truth tables
for their outputs that only involve those inputs. We can then work on
the next tier of components and build truth tables for their outputs
that only involve overall circuit inputs. Continuing in this manner,
we'll eventually reach components that drive the overall circuit
outputs and be able to construct truth tables for each output that
only involves overall circuit inputs.
In our example, we'd first build a truth table for the output of the
A module and then use that table to build a table for Z:
-
Specify a propagation delay (the upper bound required for each
combinational device) for the circuit.
The propagation delay for Z is 5ns.
-
Describe a general procedure by which a propagation delay can be
computed for an arbitrary acyclic circuit containing only
combinational components. [HINT: add a timing specification to each
circuit node].
- Label each INPUT to the circuit with tpd=0.
- Repeatedly
- Find a circuit element E whose input nodes are each labeled
with a prop delay but whose output nodes are not.
- Label each output node of E with the delay M, where M is the
prop delay of E plus the MAXIMUM of the times on the input nodes.
- When you can't find an unlabeled output node, stop.
- The prop delay spec for the device is the MAX of the prop delay
labels on the output nodes.
-
Do your general procedures for computing functional specifications and
propagation delays work if the restriction to acyclic circuits is
relaxed? Explain.
No. Without cycles, you're guaranteed to be able to find a new output
node to label (i.e., the output of some element E whose inputs are
already labeled) until the entire circuit is labeled. If you have
cycles, the algorithm breaks down. You can be left with a cycle of
elements whose outputs are unlabeled and some of whose inputs are
unlabeled.
Problem 7.
If you are given the following 2-input and 2-output combinational
block:
with the following functional description: The output X is the the
logical complement of the input A, and the output Y is the the logical
complement of the input B. And valid ouputs are guaranteed after
valid inputs have been established for 1 second.
-
Does this device adhere to the static disipline?
Yes: there's an unambiguous functional specification for each output
and a maximum propagation delay has been specified.
-
Suppose that the output X is connected to the input B, what
output would you expect?
If you assume that the circuit was composed of two inverters
(one with A as its input, the other with B as its input) then
we would expect Y = A after 2 second propagation delay.
However, there are other implementations that have the
same functional specification. In particular, X might be
implemented with logic that uses both A and B as inputs.
In this case, connecting X to B would create a cycle and
the value of Y might be undetermined.
-
Suppose the functional description was changed to the
following: The ouput X is a 1 if both A and B are "0", and
Y is a 1 if either A or B but not both are "1".
Does this change the answer the previous question?
No. Since X and Y are functions of both A and B, it's
more obvious that a cycle would be created when X was connected
to B.