6. There is an existing circuit, described below, that
generates a
sinusoidal waveform. The problem with the existing circuit is that it
has too many circuit elements and the elements are expensive. Although
the existing circuit is fast and generates a new output every clock
cycle,
you are to redesign this circuit to use fewer parts even though it may
take several clock cycles to generate a new output.
The circuit uses the cosine and sine addition formulas to
generate the
sinusoidal waveform.
The delta angle is constant for a given samples per cycle.
The larger the
delta angle the fewer samples per cycle. Another way of writing the
cosine and sine addition equations as used in the circuit is:
The RTL statements for the original circuit are:
LOAD --> (X <-- Xin : Y <-- Yin : DX <--
DXin : DY <-- DYin) :
LOAD' --> (X <-- X * DX - Y * DY : Y <-- X * DY +
Y * DX)
Where the LOAD signal loads the four registers in the
circuit from an
external source. The block diagram (showing only the data path) for
the circuit is below:
Your new circuit should have the following features:
- A. There should only be one multiplier.
- B. There should only be one adder/subtractor.
- C. There is only one input data bus for loading the
registers.
- D. There is only one output data bus.
For this problem I want you to:
- A. Write all of the RTL statements required to
generate the sinusoidal
waveform.
- B. Draw a block diagram of the circuit. I am mostly
interested in the
data path for the circuit.
- 1. You do not need to show the controller/sequencer
circuit.
- 2. You do not need to show a clock signal.
- 3. You do not need to show enable, load, or mode
signals.
- C. Combine as many microoperations in one statement as
possible.
- D. Write a description of how the circuit works. Make
sure you
include a description of the sequence of operations for the controller.