Download thesis-public.

Transcript
1
2
3
#pragma c o m p a a n _ p r o p e rt y pipeline 2
v o i d demod ( s h o r t sample , s h o r t coef , i n t sumi , i n t
{ * sumo = sumi + sample * coef ; }
*
sumo )
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma c o m p a a n _ p r o c e d u r e demod_20
v o i d demod_20 (
s h o r t coef ficient_ in [ 1 0 ] [ 2 0 4 ] ,
s h o r t adc0_in [ 2 0 4 ] ,
s h o r t adc1_in [ 2 0 4 ] ,
s h o r t adc3_in [ 2 0 4 ] ,
s h o r t adc4_in [ 2 0 4 ] ,
s h o r t adc6_in [ 2 0 4 ] ,
s h o r t adc7_in [ 2 0 4 ] ,
s h o r t adc9_in [ 2 0 4 ] ,
s h o r t adc10_in [ 2 0 4 ]
s h o r t adc12_in [ 2 0 4 ] , s h o r t adc13_in [ 2 0 4 ]
s h o r t adc15_in [ 2 0 4 ] , s h o r t adc16_in [ 2 0 4 ]
s h o r t adc18_in [ 2 0 4 ] , s h o r t adc19_in [ 2 0 4 ]
i n t result [ 2 0 * 1 0 ] )
{
i n t sum [ 2 0 ] [ 1 0 ] ;
s h o r t adc [ 2 0 ] [ 2 0 4 ] ;
short
short
short
, short
, short
, short
,
adc2_in [ 2 0 4 ] ,
adc5_in [ 2 0 4 ] ,
adc8_in [ 2 0 4 ] ,
adc11_in [ 2 0 4 ] ,
adc14_in [ 2 0 4 ] ,
adc17_in [ 2 0 4 ] ,
19
20
21
22
// h e l p e r s
#d e f i n e adc_read ( i ) adc [ i ] [ s ] = adc ## i ## _in [ s ]
#d e f i n e demod_ex ( i ) demod ( adc [ i ] [ s ] , coef , sum [ i ] [ c ] , &(sum [ i ] [ c ] ) )
23
// r e a d ADC
f o r ( i n t s =0; s <204; s++)
{ adc_read ( 0 ) ;
adc_read ( 1 ) ;
adc_read ( 2 ) ;
adc_read ( 3 ) ;
adc_read ( 5 ) ;
adc_read ( 6 ) ;
adc_read ( 7 ) ;
adc_read ( 8 ) ;
adc_read ( 1 0 ) ; adc_read ( 1 1 ) ; adc_read ( 1 2 ) ; adc_read ( 1 3 )
adc_read ( 1 5 ) ; adc_read ( 1 6 ) ; adc_read ( 1 7 ) ; adc_read ( 1 8 )
24
25
26
27
28
29
adc_read ( 4 ) ;
adc_read ( 9 ) ;
; adc_read ( 1 4 ) ;
; adc_read ( 1 9 ) ; }
30
31
32
33
34
35
36
37
// i n i t i a l i z e d e m o d u l a t i o n sum b u f f e r
#d e f i n e sum_init ( adc ) sum [ adc ] [ c ] = 0 ;
f o r ( i n t c =0; c <10; c++)
{ sum_init ( 0 ) ;
sum_init ( 1 ) ;
sum_init ( 2 ) ;
sum_init ( 3 ) ;
sum_init ( 4 ) ;
sum_init ( 5 ) ;
sum_init ( 6 ) ;
sum_init ( 7 ) ;
sum_init ( 8 ) ;
sum_init ( 9 ) ;
sum_init ( 1 0 ) ; sum_init ( 1 1 ) ; sum_init ( 1 2 ) ; sum_init ( 1 3 ) ; sum_init ( 1 4 ) ;
sum_init ( 1 5 ) ; sum_init ( 1 6 ) ; sum_init ( 1 7 ) ; sum_init ( 1 8 ) ; sum_init ( 1 9 ) ; }
38
// e x e c u t e d e m o d u l a t i o n
f o r ( i n t s =0; s <204; s++)
f o r ( i n t c =0; c <10; c++)
{
s h o r t coef = coef ficient_ in [ c ] [ s ] ;
demod_ex ( 0 ) ;
demod_ex ( 1 ) ;
demod_ex ( 2 ) ;
demod_ex ( 3 ) ;
demod_ex ( 4 ) ;
demod_ex ( 5 ) ;
demod_ex ( 6 ) ;
demod_ex ( 7 ) ;
demod_ex ( 8 ) ;
demod_ex ( 9 ) ;
demod_ex ( 1 0 ) ; demod_ex ( 1 1 ) ; demod_ex ( 1 2 ) ; demod_ex ( 1 3 ) ; demod_ex ( 1 4 ) ;
demod_ex ( 1 5 ) ; demod_ex ( 1 6 ) ; demod_ex ( 1 7 ) ; demod_ex ( 1 8 ) ; demod_ex ( 1 9 ) ;
}
39
40
41
42
43
44
45
46
47
48
49
f o r ( i n t a =0; a <20; a++)
f o r ( i n t c =0; c <10; c++)
result [ a *10+c ] = sum [ a ] [ c ] ;
50
51
52
53
}
Figure 4.3: Compaan experiment C-code
20