Digital Signal Processing Reference
In-Depth Information
08
ACR <= ACR + BFR; // accumulate product
09
DEC (LOOP_COUNTER);
// DEC loop counter
10
if LOOP_COUNTER != 0 then jump to 01 // one more iteration
11
else Y <= Truncate (round (ACR));
// final result
12
end.
The loop counter LOOP COUNTER, the data memory address pointer AM, and
the coefficient memory address pointer A must be configured by running prolog
instructions. In each operation step, two memory accesses, the multiplication, and
the accumulation consumes one clock cycle, N taps of convolution will consume
only N
2 clock cycles. Without the special CISC instruction CONV an iterative
computing of a N-tap FIR could consume up to 12N clock cycles, 6N cycles for
arithmetic computing, addressing, and data access, 3N clock cycles for checking
the FIFO bound, and 3N clock cycles for checking the loop counter (consuming
extra two clock cycles when a jump is taken).
+
4.3
Instruction Coding
Coding includes assembly coding and binary machine coding. Assembly coding is
to name assembly instructions and make sure that the assembly language is human-
readable. Hardware machines can only read binary machine code and the assembly
code must be translated to binary machine code for execution.
The purpose of assembly coding is to let the assembly code be easy to use,
easy to remember, and without ambiguity. Assembly coding is usually based on
suggestions from the IEEE std. 694-1985. As the lowest level hardware dependent
machine language, assembly code gives function descriptions based on micro-
operations. Assembly code also specifies the usage of hardware such as the
arithmetic computing units, physical registers, the physical data memory addresses,
and the physical target address for jump instructions. The assembly language
exposes micro-operations in the datapath, addressing path and memory subsystem,
some micro-operations in the control path, such as test of jump conditions and target
addressing.
It is not necessary to expose all micro-operations. Some micro-operations are
not exposed in the assembly manual because they are not directly used by assembly
programmers, such as bus transactions and the details of instruction decoding. In
Fig. 11 , explicit and implicit micro operations are classified.
All micro-operations that the assembly users (programmers) need to know will
be exposed in the assembly language manual. However, to efficiently use the binary
machine code, some micro-operations that are specified by the assembly language
manual, will not be coded into assembly and binary machine code. Examples of
such operations are flag operations for ALU computing and PC
1 to fetch
the next instruction. When writing instruction set simulator and the RTL code, all
hidden micro-operations must be exposed and implemented.
=
PC
+
Search WWH ::




Custom Search