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

Subversion Repositories g729a_codec

[/] [g729a_codec/] [trunk/] [VHDL/] [G729A_asip_idec_2w_pkg.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 madsilicon
-----------------------------------------------------------------
2
--                                                             --
3
-----------------------------------------------------------------
4
--                                                             --
5
-- Copyright (C) 2013 Stefano Tonello                          --
6
--                                                             --
7
-- This source file may be used and distributed without        --
8
-- restriction provided that this copyright statement is not   --
9
-- removed from the file and that any derivative work contains --
10
-- the original copyright notice and the associated disclaimer.--
11
--                                                             --
12
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY         --
13
-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   --
14
-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   --
15
-- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      --
16
-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         --
17
-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    --
18
-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   --
19
-- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        --
20
-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  --
21
-- LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  --
22
-- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  --
23
-- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         --
24
-- POSSIBILITY OF SUCH DAMAGE.                                 --
25
--                                                             --
26
-----------------------------------------------------------------
27
 
28
---------------------------------------------------------------
29
-- Instruction decoding data types
30
---------------------------------------------------------------
31
 
32
library IEEE;
33
use IEEE.std_logic_1164.all;
34
use IEEE.numeric_std.all;
35
 
36
library work;
37
use work.G729A_ASIP_PKG.all;
38
use work.G729A_ASIP_OP_PKG.all;
39
 
40
package G729A_ASIP_IDEC_2W_PKG is
41
 
42
  type INST_MNEMONIC_T is (
43
    IM_ABS,
44
    IM_LABS,
45
    IM_ADD,
46
    IM_LADD,
47
    IM_ADDI,
48
    IM_LADDI,
49
    IM_NEG,
50
    IM_LNEG,
51
    IM_SUB,
52
    IM_LSUB,
53
    IM_SUBI,
54
    IM_LSUBI,
55
    IM_LEXT,
56
    IM_RND,
57
    IM_MUL,
58
    IM_LMUL,
59
    IM_MULI,
60
    IM_LMULI,
61
    IM_MULA,
62
    IM_MULAI,
63
    IM_SHL,
64
    IM_LSHL,
65
    IM_SHLI,
66
    IM_LSHLI,
67
    IM_SHR,
68
    IM_LSHR,
69
    IM_SHRI,
70
    IM_LSHRI,
71
    IM_NRMS,
72
    IM_NRML,
73
    IM_LMAC,
74
    IM_LMACI,
75
    IM_LMSU,
76
    IM_LMSUI,
77
    IM_MULR,
78
    --IM_M32, -- not implemented
79
    IM_M3216,
80
    IM_AND,
81
    --IM_ANDLI, -- not implemented
82
    --IM_ANDHI, -- not implemented
83
    IM_OR,
84
    --IM_ORLI, -- not implemented
85
    --IM_ORHI, -- not implemented
86
    IM_JMP,
87
    IM_JMPI,
88
    IM_JMPL,
89
    IM_JMPLI,
90
    IM_BEQ,
91
    IM_BNE,
92
    IM_BLEZ,
93
    IM_LBLEZ,
94
    IM_BGTZ,
95
    IM_LBGTZ,
96
    IM_BLTZ,
97
    IM_LBLTZ,
98
    IM_BGEZ,
99
    IM_LBGEZ,
100
    IM_HALT,
101
    IM_LLBRI,
102
    IM_LLERI,
103
    IM_LLCR,
104
    IM_LLCRI,
105
    IM_LCLR,
106
    IM_LD,
107
    IM_ST,
108
    --IM_LDPP, -- not implemented
109
    --IM_STPP, -- not implemented
110
    IM_ROVF,
111
    IM_COVF,
112
    IM_RACC,
113
    IM_WACC,
114
    IM_MOVI,
115
    IM_NOP,
116
    IM_PXON,
117
    IM_PXOFF,
118
    IM_BAD_INSTR -- this is not a valid instruction!
119
  );
120
 
121
  type DEC_INSTR_T is record
122
    IMNMC : INST_MNEMONIC_T;
123
    WRD : std_logic;
124
    RRA : std_logic;
125
    RRB : std_logic;
126
    RD : RID_T;
127
    RA : RID_T;
128
    RB : RID_T;
129
    IMM : signed(16-1 downto 0);
130
    LD : std_logic;
131
    LA : std_logic;
132
    LB : std_logic;
133
    ALU_OP : ALU_OP_T;
134
    BJ_OP : BJ_OP_T;
135
    LS_OP : LS_OP_T;
136
    WOVF : std_logic;
137
    WACC : std_logic;
138
    P0_ONLY : std_logic;
139
  end record;
140
 
141
end package;

powered by: WebSVN 2.1.0

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