cours2: mux81_32.h

File mux81_32.h, 944 bytes (added by fpecheux, 15 years ago)
Line 
1#ifndef _MUX81_32_H
2#define _MUX81_32_H
3#include "systemc.h"
4
5SC_MODULE(mux81_32)
6{
7        sc_in<sc_uint<32> > IN0;
8        sc_in<sc_uint<32> > IN1;
9        sc_in<sc_uint<32> > IN2;
10        sc_in<sc_uint<32> > IN3;
11        sc_in<sc_uint<32> > IN4;
12        sc_in<sc_uint<32> > IN5;
13        sc_in<sc_uint<32> > IN6;
14        sc_in<sc_uint<32> > IN7;
15        sc_in<sc_uint<3> > COM;
16        sc_out<sc_uint<32> > S;
17
18        SC_CTOR(mux81_32)
19        {
20                SC_METHOD(mWrite);
21                sensitive << IN0 << IN1 << IN2 << IN3 << IN4 << IN5 << IN6 << IN7 << COM ;
22        }
23
24        void mWrite()
25        {
26                int com=(int)COM.read();
27
28                switch (com)
29                {
30                        case 0:
31                                S.write(IN0.read()); break;
32                        case 1:
33                                S.write(IN1.read()); break;
34                        case 2:
35                                S.write(IN2.read()); break;
36                        case 3:
37                                S.write(IN3.read()); break;
38                        case 4:
39                                S.write(IN4.read()); break;
40                        case 5:
41                                S.write(IN5.read()); break;
42                        case 6:
43                                S.write(IN6.read()); break;
44                        case 7:
45                                S.write(IN7.read()); break;
46                }
47        }
48};
49#endif
50