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

Subversion Repositories scarm

[/] [scarm/] [trunk/] [src/] [components/] [decoder/] [scDecoder.h] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 zhong
// scDecoder.h: interface for the scDecoder class.
2
//
3
//////////////////////////////////////////////////////////////////////
4
 
5
#if !defined(SCDECODER_H)
6
#define SCDECODER_H
7
 
8
 
9
#include<systemc.h>
10
#include<sc_mslib.h>
11
#include  "scTypes.h"
12
//#include  "scARMCore.h"
13
#include "..\Registers\scRegisterFile.h"
14
#include "..\..\instructions\scARMInstruction.h"
15
#include "..\barrelshifter\scBarrelShifter.h"
16
 
17
class scDecoder :public sc_module
18
{
19
        friend class scID;
20
public://ports
21
        sc_in<uint32_t> in_n_Instruction;
22
    sc_out<bool_t>  out_b_Branch;
23
        sc_out<OPCODE>  out_OP;
24
        sc_out<COND>    out_COND;
25
 
26
    sc_out<REGS>   out_Rd;
27
        sc_out<REGS>    out_Rn;
28
 
29
        sc_out<SHIFT>   out_SHIFT_TYPE;
30
        sc_out<bool_t>  out_Set;
31
        sc_out<uint32_t> out_ShiftDist;
32
    sc_out<REGS>    out_Rm;
33
        sc_out<uint32_t> out_n_Imm;
34
        sc_outmaster<REGS> out_REG;
35
        sc_inoutslave<uint32_t> inout_n_RegData;
36
        //sc_out<uint32_t> 
37
public:
38
        SC_HAS_PROCESS(scDecoder);
39
        scDecoder(const sc_module_name name_):sc_module(name_)
40
        {
41
 
42
          SC_METHOD(entry);
43
          sensitive<<in_n_Instruction;
44
 
45
        }
46
        virtual ~scDecoder();
47
 
48
 
49
private:
50
 
51
 
52
private:
53
        void insert_noop(void);
54
        void Decode(uint32_t nI);
55
        uint32_t get_RegData(REGS);
56
        void entry(void);
57
    bool_t CondTest(enum COND cond);
58
};
59
 
60
#endif 

powered by: WebSVN 2.1.0

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