CNORM_PP0 normal operation multiplies the contents of Rs0 and Rs1, adds the
contents of Rs2 to the multiplication result, then moves the result to Rd3
according to BS (bank select). Low bank of register contains the Real part of
complex number and High bank contains the Imaginary part. In short, it makes
"(a*b+c)", where "a,b,c" are contents of registers Rs0, Rs1 and Rs2
correspondingly. Sign of final result is "+".
Other CNORM_PPX operations are similar. Except they perform complex
conjugation on one or several complex numbers contained in registers.
The "~" sign shows elements on which conjugation is performed.
Operations :
- CNORM_PP0 : a*b+c
- CNORM_PP1 : a*b+c~
- CNORM_PP2 : a*b~+c
- CNORM_PP3 : a*b~+c~
- CNORM_PP4 : a~*b+c
- CNORM_PP5 : a~*b+c~
- CNORM_PP6 : a~*b~+c
- CNORM_PP7 : a~*b~+c~
Instructions are stack conditioned.
Microcode patterns for other CNORM_PPX complex normal operations
(see below) are differ only in MPC field, where the values are:
- for CNORM_PP0 : CN00
- for CNORM_PP1 : CN01
- for CNORM_PP2 : CN02
- for CNORM_PP3 : CN03
- for CNORM_PP4 : CN04
- for CNORM_PP5 : CN05
- for CNORM_PP6 : CN06
- for CNORM_PP7 : CN07
Takes 11 cycles to execute.
Example: CNORM_PP1 0xA3 3 0xA0 0xA1 0xA2
MPC BS3 C3 P3 P2 P1 P0
------------------------
CN01 0 0 00 00 A1 A0
- 0 0 00 00 00 00
- 0 0 00 A2 00 00
- 0 0 00 00 00 00
- 0 0 00 00 00 00
- 0 0 00 00 00 00
- 0 0 00 00 00 00
- 0 0 00 00 00 00
- 0 0 00 00 00 00
- 0 0 00 00 00 00
- 3 0 A3 00 00 00
Configuration Register: 0x30 (CrFiluExc)
 |
Exception No. |
Mask |
R/W Access |
Name |
 |
[0] |
00000000 00000001 |
RW |
ALU Bad Operand (Low Bank) |
[1] |
00000000 00000002 |
RW |
ALU Bad Operand (High Bank) |
[2] |
00000000 00000004 |
RW |
ALU Denormalized Input (Low Bank) |
[3] |
00000000 00000008 |
RW |
ALU Denormalized Input (High Bank) |
[4] |
00000000 00000010 |
RW |
ALU Denormalized Output (Low Bank) |
[5] |
00000000 00000020 |
RW |
ALU Denormalized Output (High Bank) |
[6] |
00000000 00000040 |
RW |
ALU Overflow (Low Bank) |
[7] |
00000000 00000080 |
RW |
ALU Overflow (High Bank) |
 |
Not available at the moment.