OpenCores
URL https://opencores.org/ocsvn/cic/cic/trunk

Subversion Repositories cic

[/] [cic/] [trunk/] [header/] [cic.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ahmed.shah
#include "integrator.h"
2
#include "comb.h"
3
 
4
#define N 3
5
 
6
SC_MODULE(cic)
7
{
8
        sc_in<bool>     CLR;
9
        sc_in<bool>     CLK;
10
        sc_in<double>   cicIN;
11
        sc_out<double>  cicOUT;
12
 
13
        integrator *I[N];
14
        comb *C[N];
15
 
16
        sc_signal<double> internalI[N];
17
        sc_signal<double> internalC[N];
18
 
19
        SC_CTOR(cic)
20
        {
21
                SC_METHOD(output);
22
                        sensitive << internalC[N-1];
23
 
24
                for (unsigned j = 0; j < N; j++)
25
                {
26
                        I[j] = new integrator(sc_gen_unique_name("I"));
27
                        if (j == 0)
28
                        {
29
                                I[j] -> CLR                     (CLR);
30
                                I[j] -> CLK                     (CLK);
31
                                I[j] -> integratorIN    (cicIN);
32
                                I[j] -> integratorOUT   (internalI[j]);
33
                        }
34
                        else
35
                        {
36
                                I[j] -> CLR                     (CLR);
37
                                I[j] -> CLK                     (CLK);
38
                                I[j] -> integratorIN    (internalI[j-1]);
39
                                I[j] -> integratorOUT   (internalI[j]);
40
                        }
41
                }
42
 
43
                for (unsigned i = 0; i < N; i++)
44
                {
45
                        C[i] = new comb(sc_gen_unique_name("C"));
46
                        if (i == 0)
47
                        {
48
                                C[i] -> CLR             (CLR);
49
                                C[i] -> CLK             (CLK);
50
                                C[i] -> combIN          (internalI[N-1]);
51
                                C[i] -> combOUT         (internalC[i]);
52
                        }
53
                        else
54
                        {
55
                                C[i] -> CLR             (CLR);
56
                                C[i] -> CLK             (CLK);
57
                                C[i] -> combIN          (internalC[i-1]);
58
                                C[i] -> combOUT         (internalC[i]);
59
                        }
60
                }
61
 
62
                 cicOUT.initialize(0);
63
        }
64
 
65
        void output()
66
        {
67
                cicOUT.write(internalC[N-1]);
68
        }
69
 
70
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.