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

Subversion Repositories scarm

[/] [scarm/] [trunk/] [src/] [Instructions/] [scCPInstruction.h] - Blame information for rev 10

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 zhong
///////////////////////////////////////////////////////////////////////////////
2
// This program is free software; you can redistribute it and/or
3
// modify it under the terms of the GNU General Public License
4
// as published by the Free Software Foundation; either version 2
5
// of the License, or (at your option) any later version.
6
//
7
// This program is distributed in the hope that it will be useful,
8
// but WITHOUT ANY WARRANTY; without even the implied warranty of
9
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
// GNU General Public License for more details.
11
//
12
// You should have received a copy of the GNU General Public License
13
// along with this program; if not, write to the Free Software
14
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
15
//////////////////////////////////////////////////////////////////////
16
 
17
///////////////////////////////////////////////////////////////////              
18
//          
19
//  Original Author: Allen Tao Zhong,
20
//  University of Electronic Science and Technology in China
21
//  email: zhong@opencores.org
22
//  info   This is a SystemC ARM model
23
// scCPInstruction.h: interface for the scCPInstruction class.
24
//
25
//////////////////////////////////////////////////////////////////////
26
#ifndef CPINST_H
27
#define CPINST_H
28
 
29
#include "scTypes.h"
30
 
31
/* Coprocessor data transfers */
32
typedef struct CDOTAG
33
{
34
  uint32_t crm   : 4;
35
  uint32_t pad2  : 1;
36
  uint32_t cop2  : 3;
37
  uint32_t cpn   : 4;
38
  uint32_t crd   : 4;
39
  uint32_t crn   : 4;
40
  uint32_t cop1  : 4;
41
  uint32_t pad   : 4;
42
  uint32_t cond  : 4;
43
} CDO;
44
#define CDO_MASK    0x0F000010
45
#define CDO_SIG     0x0E000000
46
 
47
 
48
/* Coprocessor data transfers */
49
typedef struct CDTAG
50
{
51
  uint32_t offset : 8;
52
  uint32_t cpn    : 4;
53
  uint32_t crd    : 4;
54
  uint32_t rn     : 4;
55
  uint32_t ls     : 1;
56
  uint32_t wb     : 1;
57
  uint32_t n      : 1;
58
  uint32_t u      : 1;
59
  uint32_t p      : 1;
60
  uint32_t pad    : 3;
61
  uint32_t cond   : 4;
62
} CDT;
63
#define CDT_MASK     0x0E000000
64
#define CDT_SIG      0x0C000000
65
 
66
 
67
/* Coprocessor register transfers */
68
typedef struct CRTAG
69
{
70
  uint32_t crm   : 4;
71
  uint32_t pad2  : 1;
72
  uint32_t cop2  : 3;
73
  uint32_t cpn   : 4;
74
  uint32_t rd    : 4;
75
  uint32_t crn   : 4;
76
  uint32_t ls    : 1;
77
  uint32_t cop1  : 3;
78
  uint32_t pad   : 4;
79
  uint32_t cond  : 4;
80
} CRT;
81
#define CRT_MASK    0x0F000010
82
#define CRT_SIG     0x0E000010
83
 
84
 
85
class scCPInstruction
86
{
87
public:
88
        scCPInstruction();
89
        virtual ~scCPInstruction();
90
 
91
};
92
#endif

powered by: WebSVN 2.1.0

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