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

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [arm/] [armcmd_comp.vhd] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tarookumic
-- $(lic)
2
-- $(help_generic)
3
-- $(help_local)
4
 
5
library IEEE;
6
use IEEE.std_logic_1164.all;
7
use work.armcmd.all;
8
use work.armshiefter.all;
9
use work.armpctrl.all;
10
use work.gendc_lib.all;
11
 
12
package armcmd_comp is
13
 
14
-------------------------------------------------------------------------------
15
-- Arithmetic commands
16
 
17
type armcmd_al_typ_in is record
18
 
19
   ctrli    : acm_ctrlin;
20
 
21
end record;
22
 
23
type armcmd_al_typ_out is record
24
 
25
   ctrlo    : acm_ctrlout;
26
 
27
   -- rrstg
28
   r1_src    : acm_regsrc;           -- (micro.r1)
29
   r2_src    : acm_regsrc;           -- (micro.r2)
30
   rd_src    : acm_rdsrc;            -- (pctrl.wr.wrop_rd)
31
 
32
   -- rsstg:
33
   rsop_op1_src : apc_rsop_opsrc;    -- EXSTG operand1 source (pctrl.rs.rsop_op1_src)
34
   rsop_op2_src : apc_rsop_opsrc;    -- EXSTG operand2 source (pctrl.rs.rsop_op2_src)
35
   rsop_buf2_src : apc_rsop_bufsrc;  -- RSSTG buffer1 source (pctrl.rs.rsop_buf2_src)
36
 
37
 
38
end record;
39
 
40
component armcmd_al
41
  port (
42
    rst     : in  std_logic;
43
    clk     : in  std_logic;
44
    i       : in  armcmd_al_typ_in;
45
    o       : out armcmd_al_typ_out
46
    );
47
end component;
48
 
49
-------------------------------------------------------------------------------
50
-- ctrl commands (msr,mrs,b)
51
 
52
type armcmd_sr_typ_in is record
53
 
54
   ctrli    : acm_ctrlin;
55
 
56
   deid  : std_logic_vector(2 downto 0);  -- (destg.pctrl.id)
57
 
58
   exid  : std_logic_vector(2 downto 0);  -- (exstg.pctrl.id)
59
   exvalid : std_logic;                   -- (exstg.pctrl.valid)
60
 
61
   wrid  : std_logic_vector(2 downto 0);  -- (wrstg.pctrl.id) 
62
   wrvalid : std_logic;                   -- (wrstg.pctrl.valid)
63
 
64
end record;
65
 
66
type armcmd_sr_typ_out is record
67
 
68
   ctrlo    : acm_ctrlout;
69
 
70
   -- rrstg:
71
   r2_src    : acm_regsrc;                 -- (micro.r2)
72
   rd_src    : acm_rdsrc;                  -- (pctrl.wr.wrop_rd)
73
 
74
   -- rsstg:
75
   rsop_styp        : ash_styp;            -- RSSTG shieft op (pctrl.rs.rsop_styp)
76
   rsop_sdir        : ash_sdir;            -- RSSTG shieft dir (pctrl.rs.rsop_sdir)
77
   rsop_op2_src     : apc_rsop_opsrc;      -- EXSTG operand2 source (pctrl.rs.rsop_op2_src)
78
 
79
   -- exstg:
80
   exop_setcpsr : std_logic;               -- EXSTG set cpsr (pctrl.ex.exop_setcpsr)
81
 
82
end record;
83
 
84
component armcmd_sr
85
  port (
86
    rst     : in  std_logic;
87
    clk     : in  std_logic;
88
    i       : in  armcmd_sr_typ_in;
89
    o       : out armcmd_sr_typ_out
90
    );
91
end component;
92
 
93
type armcmd_bl_typ_in is record
94
 
95
   ctrli    : acm_ctrlin;
96
 
97
 
98
end record;
99
 
100
type armcmd_bl_typ_out is record
101
 
102
   ctrlo    : acm_ctrlout;
103
 
104
   r1_src    : acm_regsrc;  -- (micro.r1)
105
   r2_src    : acm_regsrc;  -- (micro.r2)
106
   rd_src    : acm_rdsrc;   -- (pctrl.wr.wrop_rd)
107
 
108
   rsop_op2_src     : apc_rsop_opsrc;    -- EXSTG operand1 source (pctrl.rs.rsop_op2_src)
109
 
110
   data2            : std_logic_vector(31 downto 0); -- immidiate 1 (pctlr.data2)
111
 
112
end record;
113
 
114
component armcmd_bl
115
  port (
116
    rst     : in  std_logic;
117
    clk     : in  std_logic;
118
    i       : in  armcmd_bl_typ_in;
119
    o       : out armcmd_bl_typ_out
120
    );
121
end component;
122
 
123
-------------------------------------------------------------------------------
124
-- memory commands (ldr, str, ldm, stm)
125
 
126
type armcmd_ld_typ_in is record
127
 
128
   ctrli    : acm_ctrlin;
129
 
130
   ctrlmemo : acm_ctrlmemout;
131
 
132
end record;
133
 
134
type armcmd_ld_typ_out is record
135
 
136
   ctrlo    : acm_ctrlout;
137
 
138
   ctrlmemo : acm_ctrlmemout;
139
 
140
   rsop_styp        : ash_styp;  -- RSSTG shieft op (pctrl.rs.rsop_styp)
141
   rsop_sdir        : ash_sdir;  -- RSSTG shieft dir (pctrl.rs.rsop_sdir)
142
 
143
end record;
144
 
145
component armcmd_ld
146
  port (
147
    rst     : in  std_logic;
148
    clk     : in  std_logic;
149
    i       : in  armcmd_ld_typ_in;
150
    o       : out armcmd_ld_typ_out
151
    );
152
end component;
153
 
154
type armcmd_st_typ_in is record
155
 
156
   ctrli    : acm_ctrlin;
157
 
158
   ctrlmemo : acm_ctrlmemout;
159
 
160
end record;
161
 
162
type armcmd_st_typ_out is record
163
 
164
   ctrlo    : acm_ctrlout;
165
 
166
   ctrlmemo : acm_ctrlmemout;
167
 
168
   rsop_styp        : ash_styp;  -- RSSTG shieft op (pctrl.rs.rsop_styp)
169
   rsop_sdir        : ash_sdir;  -- RSSTG shieft dir (pctrl.rs.rsop_sdir)
170
 
171
end record;
172
 
173
component armcmd_st
174
  port (
175
    rst     : in  std_logic;
176
    clk     : in  std_logic;
177
    i       : in  armcmd_st_typ_in;
178
    o       : out armcmd_st_typ_out
179
    );
180
end component;
181
 
182
type armcmd_lm_typ_in is record
183
 
184
   ctrli    : acm_ctrlin;
185
 
186
   ctrlmulti : acm_ctrlmult_in;
187
 
188
end record;
189
 
190
type armcmd_lm_typ_out is record
191
 
192
   ctrlo    : acm_ctrlout;
193
 
194
   ctrlmemo : acm_ctrlmemout;
195
 
196
end record;
197
 
198
component armcmd_lm
199
  port (
200
    rst     : in  std_logic;
201
    clk     : in  std_logic;
202
    i       : in  armcmd_lm_typ_in;
203
    o       : out armcmd_lm_typ_out
204
    );
205
end component;
206
 
207
type armcmd_sm_typ_in is record
208
 
209
   ctrli    : acm_ctrlin;
210
 
211
   ctrlmulti : acm_ctrlmult_in;
212
 
213
end record;
214
 
215
type armcmd_sm_typ_out is record
216
 
217
   ctrlo    : acm_ctrlout;
218
 
219
   ctrlmemo : acm_ctrlmemout;
220
 
221
end record;
222
 
223
component armcmd_sm
224
  port (
225
    rst     : in  std_logic;
226
    clk     : in  std_logic;
227
    i       : in  armcmd_sm_typ_in;
228
    o       : out armcmd_sm_typ_out
229
    );
230
end component;
231
 
232
type armcmd_sw_typ_in is record
233
 
234
   ctrli    : acm_ctrlin;
235
 
236
   ctrlmemo : acm_ctrlmemout;
237
 
238
end record;
239
 
240
type armcmd_sw_typ_out is record
241
 
242
   ctrlo    : acm_ctrlout;
243
 
244
   ctrlmemo : acm_ctrlmemout;
245
 
246
end record;
247
 
248
component armcmd_sw
249
  port (
250
    rst     : in  std_logic;
251
    clk     : in  std_logic;
252
    i       : in  armcmd_sw_typ_in;
253
    o       : out armcmd_sw_typ_out
254
    );
255
end component;
256
 
257
-------------------------------------------------------------------------------
258
-- Coprocessor commands
259
 
260
type armcmd_cr_typ_in is record
261
 
262
   ctrli    : acm_ctrlin;
263
 
264
   fromCP_busy : std_logic;
265
 
266
end record;
267
 
268
type armcmd_cr_typ_out is record
269
 
270
   ctrlo    : acm_ctrlout;
271
 
272
   r1_src    : acm_regsrc;           -- (micro.r1)
273
   rd_src    : acm_rdsrc;            -- (pctrl.wr.wrop_rd)
274
 
275
end record;
276
 
277
component armcmd_cr
278
  port (
279
    rst     : in  std_logic;
280
    clk     : in  std_logic;
281
    i       : in  armcmd_cr_typ_in;
282
    o       : out armcmd_cr_typ_out
283
    );
284
end component;
285
 
286
type armcmd_cl_typ_in is record
287
 
288
   ctrli    : acm_ctrlin;
289
 
290
   ctrlmemo : acm_ctrlmemout;
291
   fromCP_busy : std_logic;
292
   fromCP_last : std_logic;
293
 
294
end record;
295
 
296
type armcmd_cl_typ_out is record
297
 
298
   ctrlo    : acm_ctrlout;
299
 
300
   ctrlmemo : acm_ctrlmemout;
301
 
302
end record;
303
 
304
component armcmd_cl
305
  port (
306
    rst     : in  std_logic;
307
    clk     : in  std_logic;
308
    i       : in  armcmd_cl_typ_in;
309
    o       : out armcmd_cl_typ_out
310
    );
311
end component;
312
 
313
type armcmd_cs_typ_in is record
314
 
315
   ctrli    : acm_ctrlin;
316
 
317
   ctrlmemo : acm_ctrlmemout;
318
   fromCP_busy : std_logic;
319
   fromCP_last : std_logic;
320
 
321
end record;
322
 
323
type armcmd_cs_typ_out is record
324
 
325
   ctrlo    : acm_ctrlout;
326
 
327
   ctrlmemo : acm_ctrlmemout;
328
 
329
end record;
330
 
331
component armcmd_cs
332
  port (
333
    rst     : in  std_logic;
334
    clk     : in  std_logic;
335
    i       : in  armcmd_cs_typ_in;
336
    o       : out armcmd_cs_typ_out
337
    );
338
end component;
339
 
340
end armcmd_comp;

powered by: WebSVN 2.1.0

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