Intel 2920 Design Handbook page 40

Analog signal processor
Table of Contents

Advertisement

CHAPTER4
BUILDING BLOCK FUNCTIONS-FOUNDATION OF DESIGN
"4.0 BUILDING BLOCK FUNCTIONS-
FOUNDATION OF DESIGN
The Intel 2920 Signal Processor is typically thought of
in terms of the functions it can implement, rather than
in terms of its architecture, as is more common with
microprocessors. A long list of building block fuactions
can be defined and 2920 assembly language code written
for each one, possibly using the interactive Signal Pro-
cessing Applications Software/Compiler. The system is
then implemented by combining the building blocks as
required. This is directly analogous with the normal
design procedure of specifying a detailed block diagram
of the desired system and then designing each block to
specifications individually before combining them into
the total system.
Building block functions can be lumped into general
functions such as filtering, waveform generation, or
non-linear functions. Table 4-1 indicates the number of
instructions and RAM locations needed for some typical
functions.
This table may be used to do a rough estimate of pro-
gram length needed for a given application by assigning
the required number of instructions to each block of the
system block diagram. Once the program complexity
has been estimated, the range of sample rates can be
determined along with the corresponding signal band-
width. Ideally, the signal bandwidth could be half the
sample rate. When practical considerations such as anti-
aliasing and reconstruction filter complexity are taken
into account, signal bandwidths on the order of one
third or one fourth the sampling rate are typical.
Table 4-2 gives the sample rate and corresponding max-
imum signal bandwidth as a function or program size.
To better appreciate the complexity of a system that can
be implemented with a given size program, three
examples are given in Table 4-3 which are representative
of a wide variety of possible applications.
4.1 Arithmetic Building Blocks
Among the simplest and most essential routines to be
used in building more complex functions are multiplica-
tion and division, both by constants and by variables.
This section describes such routines.
4.1.1 Elementary Arithmetic
The basic arithmetic instructions of the 2920 allow addi-
tion of one variable to another, subtraction of one
4-1
variable from another, or replacement of one variable
by another in a single instruction, for example in
assembly language:
ADD
X, Y;
adds the value associated with the RAM location
labelled X to the value in the RAM location labelled Y.
No scaler code was specified; the default condition is
equivalent to ROO.
Similarly, the value to be added or subtracted can be
scaled by a power of two in a single instruction: e.g.,
SUB
Y, X, R02;
causes one fourth of the value associated with X to be
subtracted from the variable Y. The equivalent
FORTRAN language statements for the operations
above would be:
Y=Y+X
Y
=
Y - (.25
*
X)
respectively.
In general, the instruction set of the 2920 makes it quite
easy to implement the equivalent of the FORTRAN
statement:
y=y+(c
*
X)
where C is an arbitrary constant.
The last statement includes the equivalent of multiplica-
tion of X by an arbitrary constant. The next section
describes some general rules for performing this basic
operation.
4.1.2 Multiplication by a Constant
The number of 2920 steps required to perform an opera-
tion of the type
y=y+(c
*
X)
is determined by the value and accuracy of the constant
C.
Any value C can be expressed as sums and differences of
positive and negative powers of two. Once a constant C
is expressed in this way, the equivalent to Y
=
Y
+
(C
*
X)
can be easily converted to 2920 code.

Advertisement

Table of Contents
loading

Table of Contents