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

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [gaisler/] [leon3/] [grfpushwx.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
-----------------------------------------------------------------------------
2
-- Entity:      grfpushwx
3
-- File:        grfpushwx.vhd
4
-- Author:      Edvin Catovic - Gaisler Research
5
-- Description: GRFPU (shared version) wrapper
6
------------------------------------------------------------------------------
7
 
8
library ieee;
9
use ieee.std_logic_1164.all;
10
library grlib;
11
use grlib.stdlib.all;
12
library gaisler;
13
use gaisler.leon3.all;
14
 
15
 
16
entity grfpushwx is
17
  generic (mul    : integer              := 0;
18
           nshare : integer range 0 to 8 := 0);
19
  port(
20
    clk     : in  std_logic;
21
    reset   : in  std_logic;
22
    fpvi    : in  grfpu_in_vector_type;
23
    fpvo    : out grfpu_out_vector_type
24
    );
25
end;
26
 
27
 
28
architecture rtl of grfpushwx is
29
 
30
component grfpushw
31
  generic (mul    : integer range 0 to 2 := 0;
32
           nshare : integer range 0 to 8 := 0);
33
  port(
34
    clk     : in  std_logic;
35
    reset   : in  std_logic;
36
    cpu0_start   : in std_logic;
37
    cpu0_nonstd  : in std_logic;
38
    cpu0_flop    : in std_logic_vector(8 downto 0);
39
    cpu0_op1     : in std_logic_vector(63 downto 0);
40
    cpu0_op2     : in std_logic_vector(63 downto 0);
41
    cpu0_opid    : in std_logic_vector(7 downto 0);
42
    cpu0_flush   : in std_logic;
43
    cpu0_flushid : in std_logic_vector(5 downto 0);
44
    cpu0_rndmode : in std_logic_vector(1 downto 0);
45
    cpu0_req     : in std_logic;
46
    cpu0_res     : out std_logic_vector(63 downto 0);
47
    cpu0_exc     : out std_logic_vector(5 downto 0);
48
    cpu0_allow   : out std_logic_vector(2 downto 0);
49
    cpu0_rdy     : out std_logic;
50
    cpu0_cc      : out std_logic_vector(1 downto 0);
51
    cpu0_idout   : out std_logic_vector(7 downto 0);
52
    cpu1_start   : in std_logic;
53
    cpu1_nonstd  : in std_logic;
54
    cpu1_flop    : in std_logic_vector(8 downto 0);
55
    cpu1_op1     : in std_logic_vector(63 downto 0);
56
    cpu1_op2     : in std_logic_vector(63 downto 0);
57
    cpu1_opid    : in std_logic_vector(7 downto 0);
58
    cpu1_flush   : in std_logic;
59
    cpu1_flushid : in std_logic_vector(5 downto 0);
60
    cpu1_rndmode : in std_logic_vector(1 downto 0);
61
    cpu1_req     : in std_logic;
62
    cpu1_res     : out std_logic_vector(63 downto 0);
63
    cpu1_exc     : out std_logic_vector(5 downto 0);
64
    cpu1_allow   : out std_logic_vector(2 downto 0);
65
    cpu1_rdy     : out std_logic;
66
    cpu1_cc      : out std_logic_vector(1 downto 0);
67
    cpu1_idout   : out std_logic_vector(7 downto 0);
68
    cpu2_start   : in std_logic;
69
    cpu2_nonstd  : in std_logic;
70
    cpu2_flop    : in std_logic_vector(8 downto 0);
71
    cpu2_op1     : in std_logic_vector(63 downto 0);
72
    cpu2_op2     : in std_logic_vector(63 downto 0);
73
    cpu2_opid    : in std_logic_vector(7 downto 0);
74
    cpu2_flush   : in std_logic;
75
    cpu2_flushid : in std_logic_vector(5 downto 0);
76
    cpu2_rndmode : in std_logic_vector(1 downto 0);
77
    cpu2_req     : in std_logic;
78
    cpu2_res     : out std_logic_vector(63 downto 0);
79
    cpu2_exc     : out std_logic_vector(5 downto 0);
80
    cpu2_allow   : out std_logic_vector(2 downto 0);
81
    cpu2_rdy     : out std_logic;
82
    cpu2_cc      : out std_logic_vector(1 downto 0);
83
    cpu2_idout   : out std_logic_vector(7 downto 0);
84
    cpu3_start   : in std_logic;
85
    cpu3_nonstd  : in std_logic;
86
    cpu3_flop    : in std_logic_vector(8 downto 0);
87
    cpu3_op1     : in std_logic_vector(63 downto 0);
88
    cpu3_op2     : in std_logic_vector(63 downto 0);
89
    cpu3_opid    : in std_logic_vector(7 downto 0);
90
    cpu3_flush   : in std_logic;
91
    cpu3_flushid : in std_logic_vector(5 downto 0);
92
    cpu3_rndmode : in std_logic_vector(1 downto 0);
93
    cpu3_req     : in std_logic;
94
    cpu3_res     : out std_logic_vector(63 downto 0);
95
    cpu3_exc     : out std_logic_vector(5 downto 0);
96
    cpu3_allow   : out std_logic_vector(2 downto 0);
97
    cpu3_rdy     : out std_logic;
98
    cpu3_cc      : out std_logic_vector(1 downto 0);
99
    cpu3_idout   : out std_logic_vector(7 downto 0);
100
    cpu4_start   : in std_logic;
101
    cpu4_nonstd  : in std_logic;
102
    cpu4_flop    : in std_logic_vector(8 downto 0);
103
    cpu4_op1     : in std_logic_vector(63 downto 0);
104
    cpu4_op2     : in std_logic_vector(63 downto 0);
105
    cpu4_opid    : in std_logic_vector(7 downto 0);
106
    cpu4_flush   : in std_logic;
107
    cpu4_flushid : in std_logic_vector(5 downto 0);
108
    cpu4_rndmode : in std_logic_vector(1 downto 0);
109
    cpu4_req     : in std_logic;
110
    cpu4_res     : out std_logic_vector(63 downto 0);
111
    cpu4_exc     : out std_logic_vector(5 downto 0);
112
    cpu4_allow   : out std_logic_vector(2 downto 0);
113
    cpu4_rdy     : out std_logic;
114
    cpu4_cc      : out std_logic_vector(1 downto 0);
115
    cpu4_idout   : out std_logic_vector(7 downto 0);
116
    cpu5_start   : in std_logic;
117
    cpu5_nonstd  : in std_logic;
118
    cpu5_flop    : in std_logic_vector(8 downto 0);
119
    cpu5_op1     : in std_logic_vector(63 downto 0);
120
    cpu5_op2     : in std_logic_vector(63 downto 0);
121
    cpu5_opid    : in std_logic_vector(7 downto 0);
122
    cpu5_flush   : in std_logic;
123
    cpu5_flushid : in std_logic_vector(5 downto 0);
124
    cpu5_rndmode : in std_logic_vector(1 downto 0);
125
    cpu5_req     : in std_logic;
126
    cpu5_res     : out std_logic_vector(63 downto 0);
127
    cpu5_exc     : out std_logic_vector(5 downto 0);
128
    cpu5_allow   : out std_logic_vector(2 downto 0);
129
    cpu5_rdy     : out std_logic;
130
    cpu5_cc      : out std_logic_vector(1 downto 0);
131
    cpu5_idout   : out std_logic_vector(7 downto 0);
132
    cpu6_start   : in std_logic;
133
    cpu6_nonstd  : in std_logic;
134
    cpu6_flop    : in std_logic_vector(8 downto 0);
135
    cpu6_op1     : in std_logic_vector(63 downto 0);
136
    cpu6_op2     : in std_logic_vector(63 downto 0);
137
    cpu6_opid    : in std_logic_vector(7 downto 0);
138
    cpu6_flush   : in std_logic;
139
    cpu6_flushid : in std_logic_vector(5 downto 0);
140
    cpu6_rndmode : in std_logic_vector(1 downto 0);
141
    cpu6_req     : in std_logic;
142
    cpu6_res     : out std_logic_vector(63 downto 0);
143
    cpu6_exc     : out std_logic_vector(5 downto 0);
144
    cpu6_allow   : out std_logic_vector(2 downto 0);
145
    cpu6_rdy     : out std_logic;
146
    cpu6_cc      : out std_logic_vector(1 downto 0);
147
    cpu6_idout   : out std_logic_vector(7 downto 0);
148
    cpu7_start   : in std_logic;
149
    cpu7_nonstd  : in std_logic;
150
    cpu7_flop    : in std_logic_vector(8 downto 0);
151
    cpu7_op1     : in std_logic_vector(63 downto 0);
152
    cpu7_op2     : in std_logic_vector(63 downto 0);
153
    cpu7_opid    : in std_logic_vector(7 downto 0);
154
    cpu7_flush   : in std_logic;
155
    cpu7_flushid : in std_logic_vector(5 downto 0);
156
    cpu7_rndmode : in std_logic_vector(1 downto 0);
157
    cpu7_req     : in std_logic;
158
    cpu7_res     : out std_logic_vector(63 downto 0);
159
    cpu7_exc     : out std_logic_vector(5 downto 0);
160
    cpu7_allow   : out std_logic_vector(2 downto 0);
161
    cpu7_rdy     : out std_logic;
162
    cpu7_cc      : out std_logic_vector(1 downto 0);
163
    cpu7_idout   : out std_logic_vector(7 downto 0)
164
    );
165
end component;
166
 
167
 
168
begin
169
 
170
  x0 : grfpushw generic map ((mul mod 4), nshare)
171
    port map (
172
      clk  ,
173
      reset ,
174
      fpvi(0).start ,
175
    fpvi(0).nonstd  ,
176
    fpvi(0).flop    ,
177
    fpvi(0).op1     ,
178
    fpvi(0).op2     ,
179
    fpvi(0).opid    ,
180
    fpvi(0).flush   ,
181
    fpvi(0).flushid ,
182
    fpvi(0).rndmode ,
183
    fpvi(0).req     ,
184
    fpvo(0).res     ,
185
    fpvo(0).exc     ,
186
    fpvo(0).allow   ,
187
    fpvo(0).rdy     ,
188
    fpvo(0).cc      ,
189
    fpvo(0).idout   ,
190
    fpvi(1).start   ,
191
    fpvi(1).nonstd  ,
192
    fpvi(1).flop    ,
193
    fpvi(1).op1     ,
194
    fpvi(1).op2     ,
195
    fpvi(1).opid    ,
196
    fpvi(1).flush   ,
197
    fpvi(1).flushid ,
198
    fpvi(1).rndmode ,
199
    fpvi(1).req     ,
200
    fpvo(1).res     ,
201
    fpvo(1).exc     ,
202
    fpvo(1).allow   ,
203
    fpvo(1).rdy     ,
204
    fpvo(1).cc      ,
205
    fpvo(1).idout   ,
206
    fpvi(2).start   ,
207
    fpvi(2).nonstd  ,
208
    fpvi(2).flop    ,
209
    fpvi(2).op1     ,
210
    fpvi(2).op2     ,
211
    fpvi(2).opid    ,
212
    fpvi(2).flush   ,
213
    fpvi(2).flushid ,
214
    fpvi(2).rndmode ,
215
    fpvi(2).req     ,
216
    fpvo(2).res     ,
217
    fpvo(2).exc     ,
218
    fpvo(2).allow   ,
219
    fpvo(2).rdy     ,
220
    fpvo(2).cc      ,
221
    fpvo(2).idout   ,
222
    fpvi(3).start   ,
223
    fpvi(3).nonstd  ,
224
    fpvi(3).flop    ,
225
    fpvi(3).op1     ,
226
    fpvi(3).op2     ,
227
    fpvi(3).opid    ,
228
    fpvi(3).flush   ,
229
    fpvi(3).flushid ,
230
    fpvi(3).rndmode ,
231
    fpvi(3).req     ,
232
    fpvo(3).res     ,
233
    fpvo(3).exc     ,
234
    fpvo(3).allow   ,
235
    fpvo(3).rdy     ,
236
    fpvo(3).cc      ,
237
    fpvo(3).idout   ,
238
    fpvi(4).start   ,
239
    fpvi(4).nonstd  ,
240
    fpvi(4).flop    ,
241
    fpvi(4).op1     ,
242
    fpvi(4).op2     ,
243
    fpvi(4).opid    ,
244
    fpvi(4).flush   ,
245
    fpvi(4).flushid ,
246
    fpvi(4).rndmode ,
247
    fpvi(4).req     ,
248
    fpvo(4).res     ,
249
    fpvo(4).exc     ,
250
    fpvo(4).allow   ,
251
    fpvo(4).rdy     ,
252
    fpvo(4).cc      ,
253
    fpvo(4).idout   ,
254
    fpvi(5).start   ,
255
    fpvi(5).nonstd  ,
256
    fpvi(5).flop    ,
257
    fpvi(5).op1     ,
258
    fpvi(5).op2     ,
259
    fpvi(5).opid    ,
260
    fpvi(5).flush   ,
261
    fpvi(5).flushid ,
262
    fpvi(5).rndmode ,
263
    fpvi(5).req     ,
264
    fpvo(5).res     ,
265
    fpvo(5).exc     ,
266
    fpvo(5).allow   ,
267
    fpvo(5).rdy     ,
268
    fpvo(5).cc      ,
269
    fpvo(5).idout   ,
270
    fpvi(6).start   ,
271
    fpvi(6).nonstd  ,
272
    fpvi(6).flop    ,
273
    fpvi(6).op1     ,
274
    fpvi(6).op2     ,
275
    fpvi(6).opid    ,
276
    fpvi(6).flush   ,
277
    fpvi(6).flushid ,
278
    fpvi(6).rndmode ,
279
    fpvi(6).req     ,
280
    fpvo(6).res     ,
281
    fpvo(6).exc     ,
282
    fpvo(6).allow   ,
283
    fpvo(6).rdy     ,
284
    fpvo(6).cc      ,
285
    fpvo(6).idout   ,
286
    fpvi(7).start   ,
287
    fpvi(7).nonstd  ,
288
    fpvi(7).flop    ,
289
    fpvi(7).op1     ,
290
    fpvi(7).op2     ,
291
    fpvi(7).opid    ,
292
    fpvi(7).flush   ,
293
    fpvi(7).flushid ,
294
    fpvi(7).rndmode ,
295
    fpvi(7).req     ,
296
    fpvo(7).res     ,
297
    fpvo(7).exc     ,
298
    fpvo(7).allow   ,
299
    fpvo(7).rdy     ,
300
    fpvo(7).cc      ,
301
    fpvo(7).idout);
302
 
303
end;
304
 
305
 
306
 
307
 
308
 
309
 
310
 
311
 
312
 
313
 

powered by: WebSVN 2.1.0

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