PandA-2024.02
module.c
Go to the documentation of this file.
1 /*
2 
3  ARF: digital implementation of an auto-regressive lattice filter. The benchmark consists of 16 multiplication and 12 addition operations. The ARF benchmark operates in a loop. This feature is exploited by exercising the simulation as closed loop system.
4 
5  from:
6  N. Mukherjee:
7  "Built-in in Self-Test for Functional Blocks in Data-Path Architectures", PhD thesis, McGill University, Montreal, 1996.
8 
9  where it is referred to:
10  R. Jain:
11  "High-Level Area-Delay Prediction with Application to Behavioral Synthesis", PhD thesis, University of Southern California, Los Angeles, Usa, 1989.
12 
13 
14 */
15 
16 void arf(int i1,int i2,int i3,int i4,int i5,int i6,
17  int *o1,int *o2,int *o3,int *o4,int G1,int G2, int G3, int G4, int GG1, int GG2){
18 
19  int op1,op2,op3,op4,op5,op6,op7,op8;
20  int op9,op10,op11,op12,op13,op14,op15,op16;
21  int op17,op18,op19,op20,op21,op22,op23,op24;
22  int op25,op26,op27,op28;
23 
24  op1 = GG1 * i1;
25  op2 = GG2 * i2;
26  op3 = G1 * i2;
27  op4 = G2 * i1;
28  op5 = G1 * i3;
29  op6 = G2 * i4;
30  op7 = G1 * i4;
31  op8 = G2 * i3;
32 
33  op9 = op1 + op2;
34  op10 = op3 + op4;
35  op11 = op5 + op6;
36  op12 = op7 + op8;
37 
38  op13 = op11 + i5;
39  *o1 = op13;
40  op14 = i6 + op12;
41  *o2 = op14;
42  op15 = G1 * op14;
43  op16 = op13 * G2;
44  op17 = op13 * G1;
45  op18 = op14 * G2;
46  op19 = op15 * op16;
47  op20 = op17 + op18;
48  op21 = G1 * op20;
49  op22 = op19 * G2;
50  op23 = op19 * G1;
51  op24 = op20 * G2;
52  op25 = op21 + op22;
53  op26 = op23 + op24;
54  op27 = op9 + op25;
55  *o3 = op27;
56  op28 = op10 + op26;
57  *o4 = op28;
58 
59 }
void arf(int i1, int i2, int i3, int i4, int i5, int i6, int *o1, int *o2, int *o3, int *o4, int G1, int G2, int G3, int G4, int GG1, int GG2)
Definition: module.c:16

Generated on Mon Feb 12 2024 13:02:48 for PandA-2024.02 by doxygen 1.8.13