- 1|vars: |vars:
|vars:
- 2| equ @d 10 | equ @d
10 | equ @d 10
- 3| equ @e 11 | equ @e
11 | equ @e 11
- 4| equ @i 12 | equ @i
12 | equ @i 12
- 5| equ @out1 13 | equ @out1 13 | equ @out1
13
- 6| equ @out2 14 | equ @out2 14 | equ @out2
14
- 7| equ @out3 15 | equ @out3 15 | equ @out3
15
- 8| equ @out 16 | equ @out 16 |
equ @out 16
- 9| equ @a 17 | equ @a
17 | equ @a 17
- 10| equ @b 18 | equ @b 18 |
equ @b 18
- 11| equ @c 19 | equ @c 19 |
equ @c 19
- 12|start: |start:
|start:
- 13|init: |init:
|init:
- 14|@i: get 1 |@b: lda
0 |@e: lda 0
- 15| nop |
mov @b | nop
- 16| nop |
nop | mov @e
- 17| mov @i |
nop | nop
- 18|loop: |loop:
|loop:
- 19|@d: nop |@a:
get @i |@c: exc b
- 20| get @e
| exc b | nop
- 21| exc b |
get @b | nop
- 22| nop |
exc b | nop
- 23| nop
| sub b | nop
- 24| nop |
mov @a | nop
- 25| nop |@out1:
nop | get @a
- 26| nop |
nop | sub b
- 27| nop |
nop | mov @c
- 28| nop |
nop |@out2: get @b
- 29| get @c |
nop | exc b
- 30| add b |
nop | nop
- 31| mov @d |
nop | nop
- 32|@out3: nop | get @d |
nop
- 33| get @a |
exc b | nop
- 34| exc b |
get @c | nop
- 35| nop |
add b | nop
- 36| nop |
mov @out1 | nop
- 37| nop |@out:
nop | get @out1
- 38| nop |
nop | add b
- 39| nop |
nop | mov @out2
- 40| get @out2 | nop |
nop
- 41| add b |
nop | nop
- 42| mov @out3 | nop |
nop
- 43| nop |
get @out3 | nop
- 44| nop |
mov 1 | nop
- 45|next: |next:
|next:
- 46|@b: nop |@e:
nop |@i: get 1
- 47| get @d |
nop | nop
- 48| nop |
get @c | nop
- 49| nop |
nop | mov @i
- 50| mov @b
| nop | nop
- 51| nop |
mov @e | nop
- 52| jmp loop | jmp loop
| jmp loop
|
FEATURES
The SPA code is obtained for the static parallel architecture.
Due to the time / resources determinismes of the code, the resources
accesses are statically shared
This example is too small to show the gain of this approach.
With wide applications, such as the ADPCM filter, the gain is
about 60%
|