CNORM_PM0 normal operation multiplies the contents of Rs0 and Rs1 and subtracts
the contents of Rs2 from 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 performs
"(a*b-c)", where "a,b,c" are contents of registers Rs0, Rs1 and Rs2 correspondingly.
Sign of final result is "+".
Other CNORM_PMX 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_PM0 : a*b-c
- CNORM_PM1 : a*b-c~
- CNORM_PM2 : a*b~-c
- CNORM_PM3 : a*b~-c~
- CNORM_PM4 : a~*b-c
- CNORM_PM5 : a~*b-c~
- CNORM_PM6 : a~*b~-c
- CNORM_PM7 : a~*b~-c~
Instructions are stack conditioned.
Microcode patterns for other CNORM_PMX complex normal operations
(see below) are differ only in MPC field, where the values are:
- for CNORM_PM0 : CN10
- for CNORM_PM1 : CN11
- for CNORM_PM2 : CN12
- for CNORM_PM3 : CN13
- for CNORM_PM4 : CN14
- for CNORM_PM5 : CN15
- for CNORM_PM6 : CN16
- for CNORM_PM7 : CN17
Takes 11 cycles to execute.
Example: CNORM_PM0 0xA3 3 0xA0 0xA1 0xA2
MPC BS3 C3 P3 P2 P1 P0
------------------------
CN10 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.