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/] [techmap/] [axcelerator/] [grusbhc_axceleratorpkg.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
------------------------------------------------------------------------------
2
--  This file is a part of the GRLIB VHDL IP LIBRARY
3
--  Copyright (C) 2003, Gaisler Research
4
--
5
--  This program is free software; you can redistribute it and/or modify
6
--  it under the terms of the GNU General Public License as published by
7
--  the Free Software Foundation; either version 2 of the License, or
8
--  (at your option) any later version.
9
--
10
--  This program is distributed in the hope that it will be useful,
11
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
--  GNU General Public License for more details.
14
--
15
--  You should have received a copy of the GNU General Public License
16
--  along with this program; if not, write to the Free Software
17
--  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
18
-----------------------------------------------------------------------------
19
-- Package:     grusbhc_axceleratorpkg
20
-- File:        grusbhc_axceleratorpkg.vhd
21
-- Author:      Jonas Ekergarn - Gaisler Research 
22
-- Description: Component declartions for the tech wrapper for axcelerator
23
-- GRUSBHC netlists
24
------------------------------------------------------------------------------
25
library ieee;
26
use ieee.std_logic_1164.all;
27
 
28
package grusbhc_axceleratorpkg is
29
 
30
  component grusbhc_axcelerator_comb0
31
    port (
32
      clk               : in  std_ulogic;
33
      uclk              : in  std_ulogic;
34
      rst               : in  std_ulogic;
35
      -- EHC apb_slv_in_type unwrapped
36
      ehc_apbsi_psel    : in  std_ulogic;
37
      ehc_apbsi_penable : in  std_ulogic;
38
      ehc_apbsi_paddr   : in  std_logic_vector(31 downto 0);
39
      ehc_apbsi_pwrite  : in  std_ulogic;
40
      ehc_apbsi_pwdata  : in  std_logic_vector(31 downto 0);
41
      ehc_apbsi_testen  : in  std_ulogic;
42
      ehc_apbsi_testrst : in  std_ulogic;
43
      ehc_apbsi_scanen  : in  std_ulogic;
44
      -- EHC apb_slv_out_type unwrapped
45
      ehc_apbso_prdata  : out std_logic_vector(31 downto 0);
46
      ehc_apbso_pirq    : out std_ulogic;
47
      -- EHC/UHC ahb_mst_in_type unwrapped
48
      ahbmi_hgrant      : in  std_logic_vector(1*1 downto 0);
49
      ahbmi_hready      : in  std_ulogic;
50
      ahbmi_hresp       : in  std_logic_vector(1 downto 0);
51
      ahbmi_hrdata      : in  std_logic_vector(31 downto 0);
52
      ahbmi_hcache      : in  std_ulogic;
53
      ahbmi_testen      : in  std_ulogic;
54
      ahbmi_testrst     : in  std_ulogic;
55
      ahbmi_scanen      : in  std_ulogic;
56
      -- UHC ahb_slv_in_type unwrapped
57
      uhc_ahbsi_hsel    : in  std_logic_vector(1*1 downto 1*1);
58
      uhc_ahbsi_haddr   : in  std_logic_vector(31 downto 0);
59
      uhc_ahbsi_hwrite  : in  std_ulogic;
60
      uhc_ahbsi_htrans  : in  std_logic_vector(1 downto 0);
61
      uhc_ahbsi_hsize   : in  std_logic_vector(2 downto 0);
62
      uhc_ahbsi_hwdata  : in  std_logic_vector(31 downto 0);
63
      uhc_ahbsi_hready  : in  std_ulogic;
64
      uhc_ahbsi_testen  : in  std_ulogic;
65
      uhc_ahbsi_testrst : in  std_ulogic;
66
      uhc_ahbsi_scanen  : in  std_ulogic;
67
      -- EHC ahb_mst_out_type_unwrapped 
68
      ehc_ahbmo_hbusreq : out std_ulogic;
69
      ehc_ahbmo_hlock   : out std_ulogic;
70
      ehc_ahbmo_htrans  : out std_logic_vector(1 downto 0);
71
      ehc_ahbmo_haddr   : out std_logic_vector(31 downto 0);
72
      ehc_ahbmo_hwrite  : out std_ulogic;
73
      ehc_ahbmo_hsize   : out std_logic_vector(2 downto 0);
74
      ehc_ahbmo_hburst  : out std_logic_vector(2 downto 0);
75
      ehc_ahbmo_hprot   : out std_logic_vector(3 downto 0);
76
      ehc_ahbmo_hwdata  : out std_logic_vector(31 downto 0);
77
      -- UHC ahb_mst_out_vector_type unwrapped
78
      uhc_ahbmo_hbusreq : out std_logic_vector(1*1 downto 1*1);
79
      uhc_ahbmo_hlock   : out std_logic_vector(1*1 downto 1*1);
80
      uhc_ahbmo_htrans  : out std_logic_vector((1*2)*1 downto 1*1);
81
      uhc_ahbmo_haddr   : out std_logic_vector((1*32)*1 downto 1*1);
82
      uhc_ahbmo_hwrite  : out std_logic_vector(1*1 downto 1*1);
83
      uhc_ahbmo_hsize   : out std_logic_vector((1*3)*1 downto 1*1);
84
      uhc_ahbmo_hburst  : out std_logic_vector((1*3)*1 downto 1*1);
85
      uhc_ahbmo_hprot   : out std_logic_vector((1*4)*1 downto 1*1);
86
      uhc_ahbmo_hwdata  : out std_logic_vector((1*32)*1 downto 1*1);
87
      -- UHC ahb_slv_out_vector_type unwrapped
88
      uhc_ahbso_hready  : out std_logic_vector(1*1 downto 1*1);
89
      uhc_ahbso_hresp   : out std_logic_vector((1*2)*1 downto 1*1);
90
      uhc_ahbso_hrdata  : out std_logic_vector((1*32)*1 downto 1*1);
91
      uhc_ahbso_hsplit  : out std_logic_vector((1*16)*1 downto 1*1);
92
      uhc_ahbso_hcache  : out std_logic_vector(1*1 downto 1*1);
93
      uhc_ahbso_hirq    : out std_logic_vector(1*1 downto 1*1);
94
      -- grusb_out_type_vector unwrapped
95
      xcvrsel           : out std_logic_vector(((1*2)-1) downto 0);
96
      termsel           : out std_logic_vector((1-1) downto 0);
97
      opmode            : out std_logic_vector(((1*2)-1) downto 0);
98
      txvalid           : out std_logic_vector((1-1) downto 0);
99
      drvvbus           : out std_logic_vector((1-1) downto 0);
100
      dataho            : out std_logic_vector(((1*8)-1) downto 0);
101
      validho           : out std_logic_vector((1-1) downto 0);
102
      stp               : out std_logic_vector((1-1) downto 0);
103
      datao             : out std_logic_vector(((1*8)-1) downto 0);
104
      utm_rst           : out std_logic_vector((1-1) downto 0);
105
      dctrlo            : out std_logic_vector((1-1) downto 0);
106
      suspendm          : out std_ulogic;
107
      dbus16_8          : out std_ulogic;
108
      dppulldown        : out std_ulogic;
109
      dmpulldown        : out std_ulogic;
110
      idpullup          : out std_ulogic;
111
      dischrgvbus       : out std_ulogic;
112
      chrgvbus          : out std_ulogic;
113
      txbitstuffenable  : out std_ulogic;
114
      txbitstuffenableh : out std_ulogic;
115
      fslsserialmode    : out std_ulogic;
116
      txenablen         : out std_ulogic;
117
      txdat             : out std_ulogic;
118
      txse0             : out std_ulogic;
119
      -- grusb_in_type_vector unwrapped
120
      linestate         : in  std_logic_vector(((1*2)-1) downto 0);
121
      txready           : in  std_logic_vector((1-1) downto 0);
122
      rxvalid           : in  std_logic_vector((1-1) downto 0);
123
      rxactive          : in  std_logic_vector((1-1) downto 0);
124
      rxerror           : in  std_logic_vector((1-1) downto 0);
125
      vbusvalid         : in  std_logic_vector((1-1) downto 0);
126
      datahi            : in  std_logic_vector(((1*8)-1) downto 0);
127
      validhi           : in  std_logic_vector((1-1) downto 0);
128
      hostdisc          : in  std_logic_vector((1-1) downto 0);
129
      nxt               : in  std_logic_vector((1-1) downto 0);
130
      dir               : in  std_logic_vector((1-1) downto 0);
131
      datai             : in  std_logic_vector(((1*8)-1) downto 0);
132
      -- EHC transaction buffer signals
133
      mbc20_tb_addr     : out std_logic_vector(8 downto 0);
134
      mbc20_tb_data     : out std_logic_vector(31 downto 0);
135
      mbc20_tb_en       : out std_ulogic;
136
      mbc20_tb_wel      : out std_ulogic;
137
      mbc20_tb_weh      : out std_ulogic;
138
      tb_mbc20_data     : in  std_logic_vector(31 downto 0);
139
      pe20_tb_addr      : out std_logic_vector(8 downto 0);
140
      pe20_tb_data      : out std_logic_vector(31 downto 0);
141
      pe20_tb_en        : out std_ulogic;
142
      pe20_tb_wel       : out std_ulogic;
143
      pe20_tb_weh       : out std_ulogic;
144
      tb_pe20_data      : in  std_logic_vector(31 downto 0);
145
      -- EHC packet buffer signals
146
      mbc20_pb_addr     : out std_logic_vector(8 downto 0);
147
      mbc20_pb_data     : out std_logic_vector(31 downto 0);
148
      mbc20_pb_en       : out std_ulogic;
149
      mbc20_pb_we       : out std_ulogic;
150
      pb_mbc20_data     : in  std_logic_vector(31 downto 0);
151
      sie20_pb_addr     : out std_logic_vector(8 downto 0);
152
      sie20_pb_data     : out std_logic_vector(31 downto 0);
153
      sie20_pb_en       : out std_ulogic;
154
      sie20_pb_we       : out std_ulogic;
155
      pb_sie20_data     : in  std_logic_vector(31 downto 0);
156
      -- UHC packet buffer signals
157
      sie11_pb_addr     : out std_logic_vector((1*9)*1 downto 1*1);
158
      sie11_pb_data     : out std_logic_vector((1*32)*1 downto 1*1);
159
      sie11_pb_en       : out std_logic_vector(1*1 downto 1*1);
160
      sie11_pb_we       : out std_logic_vector(1*1 downto 1*1);
161
      pb_sie11_data     : in  std_logic_vector((1*32)*1 downto 1*1);
162
      mbc11_pb_addr     : out std_logic_vector((1*9)*1 downto 1*1);
163
      mbc11_pb_data     : out std_logic_vector((1*32)*1 downto 1*1);
164
      mbc11_pb_en       : out std_logic_vector(1*1 downto 1*1);
165
      mbc11_pb_we       : out std_logic_vector(1*1 downto 1*1);
166
      pb_mbc11_data     : in  std_logic_vector((1*32)*1 downto 1*1);
167
      bufsel            : out std_ulogic);
168
  end component;
169
 
170
  component grusbhc_axcelerator_comb1
171
    port (
172
      clk               : in  std_ulogic;
173
      uclk              : in  std_ulogic;
174
      rst               : in  std_ulogic;
175
      -- EHC apb_slv_in_type unwrapped
176
      ehc_apbsi_psel    : in  std_ulogic;
177
      ehc_apbsi_penable : in  std_ulogic;
178
      ehc_apbsi_paddr   : in  std_logic_vector(31 downto 0);
179
      ehc_apbsi_pwrite  : in  std_ulogic;
180
      ehc_apbsi_pwdata  : in  std_logic_vector(31 downto 0);
181
      ehc_apbsi_testen  : in  std_ulogic;
182
      ehc_apbsi_testrst : in  std_ulogic;
183
      ehc_apbsi_scanen  : in  std_ulogic;
184
      -- EHC apb_slv_out_type unwrapped
185
      ehc_apbso_prdata  : out std_logic_vector(31 downto 0);
186
      ehc_apbso_pirq    : out std_ulogic;
187
      -- EHC/UHC ahb_mst_in_type unwrapped
188
      ahbmi_hgrant      : in  std_logic_vector(1*0 downto 0);
189
      ahbmi_hready      : in  std_ulogic;
190
      ahbmi_hresp       : in  std_logic_vector(1 downto 0);
191
      ahbmi_hrdata      : in  std_logic_vector(31 downto 0);
192
      ahbmi_hcache      : in  std_ulogic;
193
      ahbmi_testen      : in  std_ulogic;
194
      ahbmi_testrst     : in  std_ulogic;
195
      ahbmi_scanen      : in  std_ulogic;
196
      -- UHC ahb_slv_in_type unwrapped
197
      uhc_ahbsi_hsel    : in  std_logic_vector(1*0 downto 1*0);
198
      uhc_ahbsi_haddr   : in  std_logic_vector(31 downto 0);
199
      uhc_ahbsi_hwrite  : in  std_ulogic;
200
      uhc_ahbsi_htrans  : in  std_logic_vector(1 downto 0);
201
      uhc_ahbsi_hsize   : in  std_logic_vector(2 downto 0);
202
      uhc_ahbsi_hwdata  : in  std_logic_vector(31 downto 0);
203
      uhc_ahbsi_hready  : in  std_ulogic;
204
      uhc_ahbsi_testen  : in  std_ulogic;
205
      uhc_ahbsi_testrst : in  std_ulogic;
206
      uhc_ahbsi_scanen  : in  std_ulogic;
207
      -- EHC ahb_mst_out_type_unwrapped 
208
      ehc_ahbmo_hbusreq : out std_ulogic;
209
      ehc_ahbmo_hlock   : out std_ulogic;
210
      ehc_ahbmo_htrans  : out std_logic_vector(1 downto 0);
211
      ehc_ahbmo_haddr   : out std_logic_vector(31 downto 0);
212
      ehc_ahbmo_hwrite  : out std_ulogic;
213
      ehc_ahbmo_hsize   : out std_logic_vector(2 downto 0);
214
      ehc_ahbmo_hburst  : out std_logic_vector(2 downto 0);
215
      ehc_ahbmo_hprot   : out std_logic_vector(3 downto 0);
216
      ehc_ahbmo_hwdata  : out std_logic_vector(31 downto 0);
217
      -- UHC ahb_mst_out_vector_type unwrapped
218
      uhc_ahbmo_hbusreq : out std_logic_vector(1*0 downto 1*0);
219
      uhc_ahbmo_hlock   : out std_logic_vector(1*0 downto 1*0);
220
      uhc_ahbmo_htrans  : out std_logic_vector((1*2)*0 downto 1*0);
221
      uhc_ahbmo_haddr   : out std_logic_vector((1*32)*0 downto 1*0);
222
      uhc_ahbmo_hwrite  : out std_logic_vector(1*0 downto 1*0);
223
      uhc_ahbmo_hsize   : out std_logic_vector((1*3)*0 downto 1*0);
224
      uhc_ahbmo_hburst  : out std_logic_vector((1*3)*0 downto 1*0);
225
      uhc_ahbmo_hprot   : out std_logic_vector((1*4)*0 downto 1*0);
226
      uhc_ahbmo_hwdata  : out std_logic_vector((1*32)*0 downto 1*0);
227
      -- UHC ahb_slv_out_vector_type unwrapped
228
      uhc_ahbso_hready  : out std_logic_vector(1*0 downto 1*0);
229
      uhc_ahbso_hresp   : out std_logic_vector((1*2)*0 downto 1*0);
230
      uhc_ahbso_hrdata  : out std_logic_vector((1*32)*0 downto 1*0);
231
      uhc_ahbso_hsplit  : out std_logic_vector((1*16)*0 downto 1*0);
232
      uhc_ahbso_hcache  : out std_logic_vector(1*0 downto 1*0);
233
      uhc_ahbso_hirq    : out std_logic_vector(1*0 downto 1*0);
234
      -- grusb_out_type_vector unwrapped
235
      xcvrsel           : out std_logic_vector(((1*2)-1) downto 0);
236
      termsel           : out std_logic_vector((1-1) downto 0);
237
      opmode            : out std_logic_vector(((1*2)-1) downto 0);
238
      txvalid           : out std_logic_vector((1-1) downto 0);
239
      drvvbus           : out std_logic_vector((1-1) downto 0);
240
      dataho            : out std_logic_vector(((1*8)-1) downto 0);
241
      validho           : out std_logic_vector((1-1) downto 0);
242
      stp               : out std_logic_vector((1-1) downto 0);
243
      datao             : out std_logic_vector(((1*8)-1) downto 0);
244
      utm_rst           : out std_logic_vector((1-1) downto 0);
245
      dctrlo            : out std_logic_vector((1-1) downto 0);
246
      suspendm          : out std_ulogic;
247
      dbus16_8          : out std_ulogic;
248
      dppulldown        : out std_ulogic;
249
      dmpulldown        : out std_ulogic;
250
      idpullup          : out std_ulogic;
251
      dischrgvbus       : out std_ulogic;
252
      chrgvbus          : out std_ulogic;
253
      txbitstuffenable  : out std_ulogic;
254
      txbitstuffenableh : out std_ulogic;
255
      fslsserialmode    : out std_ulogic;
256
      txenablen         : out std_ulogic;
257
      txdat             : out std_ulogic;
258
      txse0             : out std_ulogic;
259
      -- grusb_in_type_vector unwrapped
260
      linestate         : in  std_logic_vector(((1*2)-1) downto 0);
261
      txready           : in  std_logic_vector((1-1) downto 0);
262
      rxvalid           : in  std_logic_vector((1-1) downto 0);
263
      rxactive          : in  std_logic_vector((1-1) downto 0);
264
      rxerror           : in  std_logic_vector((1-1) downto 0);
265
      vbusvalid         : in  std_logic_vector((1-1) downto 0);
266
      datahi            : in  std_logic_vector(((1*8)-1) downto 0);
267
      validhi           : in  std_logic_vector((1-1) downto 0);
268
      hostdisc          : in  std_logic_vector((1-1) downto 0);
269
      nxt               : in  std_logic_vector((1-1) downto 0);
270
      dir               : in  std_logic_vector((1-1) downto 0);
271
      datai             : in  std_logic_vector(((1*8)-1) downto 0);
272
      -- EHC transaction buffer signals
273
      mbc20_tb_addr     : out std_logic_vector(8 downto 0);
274
      mbc20_tb_data     : out std_logic_vector(31 downto 0);
275
      mbc20_tb_en       : out std_ulogic;
276
      mbc20_tb_wel      : out std_ulogic;
277
      mbc20_tb_weh      : out std_ulogic;
278
      tb_mbc20_data     : in  std_logic_vector(31 downto 0);
279
      pe20_tb_addr      : out std_logic_vector(8 downto 0);
280
      pe20_tb_data      : out std_logic_vector(31 downto 0);
281
      pe20_tb_en        : out std_ulogic;
282
      pe20_tb_wel       : out std_ulogic;
283
      pe20_tb_weh       : out std_ulogic;
284
      tb_pe20_data      : in  std_logic_vector(31 downto 0);
285
      -- EHC packet buffer signals
286
      mbc20_pb_addr     : out std_logic_vector(8 downto 0);
287
      mbc20_pb_data     : out std_logic_vector(31 downto 0);
288
      mbc20_pb_en       : out std_ulogic;
289
      mbc20_pb_we       : out std_ulogic;
290
      pb_mbc20_data     : in  std_logic_vector(31 downto 0);
291
      sie20_pb_addr     : out std_logic_vector(8 downto 0);
292
      sie20_pb_data     : out std_logic_vector(31 downto 0);
293
      sie20_pb_en       : out std_ulogic;
294
      sie20_pb_we       : out std_ulogic;
295
      pb_sie20_data     : in  std_logic_vector(31 downto 0);
296
      -- UHC packet buffer signals
297
      sie11_pb_addr     : out std_logic_vector((1*9)*0 downto 1*0);
298
      sie11_pb_data     : out std_logic_vector((1*32)*0 downto 1*0);
299
      sie11_pb_en       : out std_logic_vector(1*0 downto 1*0);
300
      sie11_pb_we       : out std_logic_vector(1*0 downto 1*0);
301
      pb_sie11_data     : in  std_logic_vector((1*32)*0 downto 1*0);
302
      mbc11_pb_addr     : out std_logic_vector((1*9)*0 downto 1*0);
303
      mbc11_pb_data     : out std_logic_vector((1*32)*0 downto 1*0);
304
      mbc11_pb_en       : out std_logic_vector(1*0 downto 1*0);
305
      mbc11_pb_we       : out std_logic_vector(1*0 downto 1*0);
306
      pb_mbc11_data     : in  std_logic_vector((1*32)*0 downto 1*0);
307
      bufsel            : out std_ulogic);
308
  end component;
309
 
310
  component grusbhc_axcelerator_comb2
311
    port (
312
      clk               : in  std_ulogic;
313
      uclk              : in  std_ulogic;
314
      rst               : in  std_ulogic;
315
      -- EHC apb_slv_in_type unwrapped
316
      ehc_apbsi_psel    : in  std_ulogic;
317
      ehc_apbsi_penable : in  std_ulogic;
318
      ehc_apbsi_paddr   : in  std_logic_vector(31 downto 0);
319
      ehc_apbsi_pwrite  : in  std_ulogic;
320
      ehc_apbsi_pwdata  : in  std_logic_vector(31 downto 0);
321
      ehc_apbsi_testen  : in  std_ulogic;
322
      ehc_apbsi_testrst : in  std_ulogic;
323
      ehc_apbsi_scanen  : in  std_ulogic;
324
      -- EHC apb_slv_out_type unwrapped
325
      ehc_apbso_prdata  : out std_logic_vector(31 downto 0);
326
      ehc_apbso_pirq    : out std_ulogic;
327
      -- EHC/UHC ahb_mst_in_type unwrapped
328
      ahbmi_hgrant      : in  std_logic_vector(1*1 downto 0);
329
      ahbmi_hready      : in  std_ulogic;
330
      ahbmi_hresp       : in  std_logic_vector(1 downto 0);
331
      ahbmi_hrdata      : in  std_logic_vector(31 downto 0);
332
      ahbmi_hcache      : in  std_ulogic;
333
      ahbmi_testen      : in  std_ulogic;
334
      ahbmi_testrst     : in  std_ulogic;
335
      ahbmi_scanen      : in  std_ulogic;
336
      -- UHC ahb_slv_in_type unwrapped
337
      uhc_ahbsi_hsel    : in  std_logic_vector(1*1 downto 1*1);
338
      uhc_ahbsi_haddr   : in  std_logic_vector(31 downto 0);
339
      uhc_ahbsi_hwrite  : in  std_ulogic;
340
      uhc_ahbsi_htrans  : in  std_logic_vector(1 downto 0);
341
      uhc_ahbsi_hsize   : in  std_logic_vector(2 downto 0);
342
      uhc_ahbsi_hwdata  : in  std_logic_vector(31 downto 0);
343
      uhc_ahbsi_hready  : in  std_ulogic;
344
      uhc_ahbsi_testen  : in  std_ulogic;
345
      uhc_ahbsi_testrst : in  std_ulogic;
346
      uhc_ahbsi_scanen  : in  std_ulogic;
347
      -- EHC ahb_mst_out_type_unwrapped 
348
      ehc_ahbmo_hbusreq : out std_ulogic;
349
      ehc_ahbmo_hlock   : out std_ulogic;
350
      ehc_ahbmo_htrans  : out std_logic_vector(1 downto 0);
351
      ehc_ahbmo_haddr   : out std_logic_vector(31 downto 0);
352
      ehc_ahbmo_hwrite  : out std_ulogic;
353
      ehc_ahbmo_hsize   : out std_logic_vector(2 downto 0);
354
      ehc_ahbmo_hburst  : out std_logic_vector(2 downto 0);
355
      ehc_ahbmo_hprot   : out std_logic_vector(3 downto 0);
356
      ehc_ahbmo_hwdata  : out std_logic_vector(31 downto 0);
357
      -- UHC ahb_mst_out_vector_type unwrapped
358
      uhc_ahbmo_hbusreq : out std_logic_vector(1*1 downto 1*1);
359
      uhc_ahbmo_hlock   : out std_logic_vector(1*1 downto 1*1);
360
      uhc_ahbmo_htrans  : out std_logic_vector((1*2)*1 downto 1*1);
361
      uhc_ahbmo_haddr   : out std_logic_vector((1*32)*1 downto 1*1);
362
      uhc_ahbmo_hwrite  : out std_logic_vector(1*1 downto 1*1);
363
      uhc_ahbmo_hsize   : out std_logic_vector((1*3)*1 downto 1*1);
364
      uhc_ahbmo_hburst  : out std_logic_vector((1*3)*1 downto 1*1);
365
      uhc_ahbmo_hprot   : out std_logic_vector((1*4)*1 downto 1*1);
366
      uhc_ahbmo_hwdata  : out std_logic_vector((1*32)*1 downto 1*1);
367
      -- UHC ahb_slv_out_vector_type unwrapped
368
      uhc_ahbso_hready  : out std_logic_vector(1*1 downto 1*1);
369
      uhc_ahbso_hresp   : out std_logic_vector((1*2)*1 downto 1*1);
370
      uhc_ahbso_hrdata  : out std_logic_vector((1*32)*1 downto 1*1);
371
      uhc_ahbso_hsplit  : out std_logic_vector((1*16)*1 downto 1*1);
372
      uhc_ahbso_hcache  : out std_logic_vector(1*1 downto 1*1);
373
      uhc_ahbso_hirq    : out std_logic_vector(1*1 downto 1*1);
374
      -- grusb_out_type_vector unwrapped
375
      xcvrsel           : out std_logic_vector(((1*2)-1) downto 0);
376
      termsel           : out std_logic_vector((1-1) downto 0);
377
      opmode            : out std_logic_vector(((1*2)-1) downto 0);
378
      txvalid           : out std_logic_vector((1-1) downto 0);
379
      drvvbus           : out std_logic_vector((1-1) downto 0);
380
      dataho            : out std_logic_vector(((1*8)-1) downto 0);
381
      validho           : out std_logic_vector((1-1) downto 0);
382
      stp               : out std_logic_vector((1-1) downto 0);
383
      datao             : out std_logic_vector(((1*8)-1) downto 0);
384
      utm_rst           : out std_logic_vector((1-1) downto 0);
385
      dctrlo            : out std_logic_vector((1-1) downto 0);
386
      suspendm          : out std_ulogic;
387
      dbus16_8          : out std_ulogic;
388
      dppulldown        : out std_ulogic;
389
      dmpulldown        : out std_ulogic;
390
      idpullup          : out std_ulogic;
391
      dischrgvbus       : out std_ulogic;
392
      chrgvbus          : out std_ulogic;
393
      txbitstuffenable  : out std_ulogic;
394
      txbitstuffenableh : out std_ulogic;
395
      fslsserialmode    : out std_ulogic;
396
      txenablen         : out std_ulogic;
397
      txdat             : out std_ulogic;
398
      txse0             : out std_ulogic;
399
      -- grusb_in_type_vector unwrapped
400
      linestate         : in  std_logic_vector(((1*2)-1) downto 0);
401
      txready           : in  std_logic_vector((1-1) downto 0);
402
      rxvalid           : in  std_logic_vector((1-1) downto 0);
403
      rxactive          : in  std_logic_vector((1-1) downto 0);
404
      rxerror           : in  std_logic_vector((1-1) downto 0);
405
      vbusvalid         : in  std_logic_vector((1-1) downto 0);
406
      datahi            : in  std_logic_vector(((1*8)-1) downto 0);
407
      validhi           : in  std_logic_vector((1-1) downto 0);
408
      hostdisc          : in  std_logic_vector((1-1) downto 0);
409
      nxt               : in  std_logic_vector((1-1) downto 0);
410
      dir               : in  std_logic_vector((1-1) downto 0);
411
      datai             : in  std_logic_vector(((1*8)-1) downto 0);
412
      -- EHC transaction buffer signals
413
      mbc20_tb_addr     : out std_logic_vector(8 downto 0);
414
      mbc20_tb_data     : out std_logic_vector(31 downto 0);
415
      mbc20_tb_en       : out std_ulogic;
416
      mbc20_tb_wel      : out std_ulogic;
417
      mbc20_tb_weh      : out std_ulogic;
418
      tb_mbc20_data     : in  std_logic_vector(31 downto 0);
419
      pe20_tb_addr      : out std_logic_vector(8 downto 0);
420
      pe20_tb_data      : out std_logic_vector(31 downto 0);
421
      pe20_tb_en        : out std_ulogic;
422
      pe20_tb_wel       : out std_ulogic;
423
      pe20_tb_weh       : out std_ulogic;
424
      tb_pe20_data      : in  std_logic_vector(31 downto 0);
425
      -- EHC packet buffer signals
426
      mbc20_pb_addr     : out std_logic_vector(8 downto 0);
427
      mbc20_pb_data     : out std_logic_vector(31 downto 0);
428
      mbc20_pb_en       : out std_ulogic;
429
      mbc20_pb_we       : out std_ulogic;
430
      pb_mbc20_data     : in  std_logic_vector(31 downto 0);
431
      sie20_pb_addr     : out std_logic_vector(8 downto 0);
432
      sie20_pb_data     : out std_logic_vector(31 downto 0);
433
      sie20_pb_en       : out std_ulogic;
434
      sie20_pb_we       : out std_ulogic;
435
      pb_sie20_data     : in  std_logic_vector(31 downto 0);
436
      -- UHC packet buffer signals
437
      sie11_pb_addr     : out std_logic_vector((1*9)*1 downto 1*1);
438
      sie11_pb_data     : out std_logic_vector((1*32)*1 downto 1*1);
439
      sie11_pb_en       : out std_logic_vector(1*1 downto 1*1);
440
      sie11_pb_we       : out std_logic_vector(1*1 downto 1*1);
441
      pb_sie11_data     : in  std_logic_vector((1*32)*1 downto 1*1);
442
      mbc11_pb_addr     : out std_logic_vector((1*9)*1 downto 1*1);
443
      mbc11_pb_data     : out std_logic_vector((1*32)*1 downto 1*1);
444
      mbc11_pb_en       : out std_logic_vector(1*1 downto 1*1);
445
      mbc11_pb_we       : out std_logic_vector(1*1 downto 1*1);
446
      pb_mbc11_data     : in  std_logic_vector((1*32)*1 downto 1*1);
447
      bufsel            : out std_ulogic);
448
  end component;
449
 
450
  component grusbhc_axcelerator_comb3
451
    port (
452
      clk               : in  std_ulogic;
453
      uclk              : in  std_ulogic;
454
      rst               : in  std_ulogic;
455
      -- EHC apb_slv_in_type unwrapped
456
      ehc_apbsi_psel    : in  std_ulogic;
457
      ehc_apbsi_penable : in  std_ulogic;
458
      ehc_apbsi_paddr   : in  std_logic_vector(31 downto 0);
459
      ehc_apbsi_pwrite  : in  std_ulogic;
460
      ehc_apbsi_pwdata  : in  std_logic_vector(31 downto 0);
461
      ehc_apbsi_testen  : in  std_ulogic;
462
      ehc_apbsi_testrst : in  std_ulogic;
463
      ehc_apbsi_scanen  : in  std_ulogic;
464
      -- EHC apb_slv_out_type unwrapped
465
      ehc_apbso_prdata  : out std_logic_vector(31 downto 0);
466
      ehc_apbso_pirq    : out std_ulogic;
467
      -- EHC/UHC ahb_mst_in_type unwrapped
468
      ahbmi_hgrant      : in  std_logic_vector(1*1 downto 0);
469
      ahbmi_hready      : in  std_ulogic;
470
      ahbmi_hresp       : in  std_logic_vector(1 downto 0);
471
      ahbmi_hrdata      : in  std_logic_vector(31 downto 0);
472
      ahbmi_hcache      : in  std_ulogic;
473
      ahbmi_testen      : in  std_ulogic;
474
      ahbmi_testrst     : in  std_ulogic;
475
      ahbmi_scanen      : in  std_ulogic;
476
      -- UHC ahb_slv_in_type unwrapped
477
      uhc_ahbsi_hsel    : in  std_logic_vector(1*1 downto 1*1);
478
      uhc_ahbsi_haddr   : in  std_logic_vector(31 downto 0);
479
      uhc_ahbsi_hwrite  : in  std_ulogic;
480
      uhc_ahbsi_htrans  : in  std_logic_vector(1 downto 0);
481
      uhc_ahbsi_hsize   : in  std_logic_vector(2 downto 0);
482
      uhc_ahbsi_hwdata  : in  std_logic_vector(31 downto 0);
483
      uhc_ahbsi_hready  : in  std_ulogic;
484
      uhc_ahbsi_testen  : in  std_ulogic;
485
      uhc_ahbsi_testrst : in  std_ulogic;
486
      uhc_ahbsi_scanen  : in  std_ulogic;
487
      -- EHC ahb_mst_out_type_unwrapped 
488
      ehc_ahbmo_hbusreq : out std_ulogic;
489
      ehc_ahbmo_hlock   : out std_ulogic;
490
      ehc_ahbmo_htrans  : out std_logic_vector(1 downto 0);
491
      ehc_ahbmo_haddr   : out std_logic_vector(31 downto 0);
492
      ehc_ahbmo_hwrite  : out std_ulogic;
493
      ehc_ahbmo_hsize   : out std_logic_vector(2 downto 0);
494
      ehc_ahbmo_hburst  : out std_logic_vector(2 downto 0);
495
      ehc_ahbmo_hprot   : out std_logic_vector(3 downto 0);
496
      ehc_ahbmo_hwdata  : out std_logic_vector(31 downto 0);
497
      -- UHC ahb_mst_out_vector_type unwrapped
498
      uhc_ahbmo_hbusreq : out std_logic_vector(1*1 downto 1*1);
499
      uhc_ahbmo_hlock   : out std_logic_vector(1*1 downto 1*1);
500
      uhc_ahbmo_htrans  : out std_logic_vector((1*2)*1 downto 1*1);
501
      uhc_ahbmo_haddr   : out std_logic_vector((1*32)*1 downto 1*1);
502
      uhc_ahbmo_hwrite  : out std_logic_vector(1*1 downto 1*1);
503
      uhc_ahbmo_hsize   : out std_logic_vector((1*3)*1 downto 1*1);
504
      uhc_ahbmo_hburst  : out std_logic_vector((1*3)*1 downto 1*1);
505
      uhc_ahbmo_hprot   : out std_logic_vector((1*4)*1 downto 1*1);
506
      uhc_ahbmo_hwdata  : out std_logic_vector((1*32)*1 downto 1*1);
507
      -- UHC ahb_slv_out_vector_type unwrapped
508
      uhc_ahbso_hready  : out std_logic_vector(1*1 downto 1*1);
509
      uhc_ahbso_hresp   : out std_logic_vector((1*2)*1 downto 1*1);
510
      uhc_ahbso_hrdata  : out std_logic_vector((1*32)*1 downto 1*1);
511
      uhc_ahbso_hsplit  : out std_logic_vector((1*16)*1 downto 1*1);
512
      uhc_ahbso_hcache  : out std_logic_vector(1*1 downto 1*1);
513
      uhc_ahbso_hirq    : out std_logic_vector(1*1 downto 1*1);
514
      -- grusb_out_type_vector unwrapped
515
      xcvrsel           : out std_logic_vector(((2*2)-1) downto 0);
516
      termsel           : out std_logic_vector((2-1) downto 0);
517
      opmode            : out std_logic_vector(((2*2)-1) downto 0);
518
      txvalid           : out std_logic_vector((2-1) downto 0);
519
      drvvbus           : out std_logic_vector((2-1) downto 0);
520
      dataho            : out std_logic_vector(((2*8)-1) downto 0);
521
      validho           : out std_logic_vector((2-1) downto 0);
522
      stp               : out std_logic_vector((2-1) downto 0);
523
      datao             : out std_logic_vector(((2*8)-1) downto 0);
524
      utm_rst           : out std_logic_vector((2-1) downto 0);
525
      dctrlo            : out std_logic_vector((2-1) downto 0);
526
      suspendm          : out std_ulogic;
527
      dbus16_8          : out std_ulogic;
528
      dppulldown        : out std_ulogic;
529
      dmpulldown        : out std_ulogic;
530
      idpullup          : out std_ulogic;
531
      dischrgvbus       : out std_ulogic;
532
      chrgvbus          : out std_ulogic;
533
      txbitstuffenable  : out std_ulogic;
534
      txbitstuffenableh : out std_ulogic;
535
      fslsserialmode    : out std_ulogic;
536
      txenablen         : out std_ulogic;
537
      txdat             : out std_ulogic;
538
      txse0             : out std_ulogic;
539
      -- grusb_in_type_vector unwrapped
540
      linestate         : in  std_logic_vector(((2*2)-1) downto 0);
541
      txready           : in  std_logic_vector((2-1) downto 0);
542
      rxvalid           : in  std_logic_vector((2-1) downto 0);
543
      rxactive          : in  std_logic_vector((2-1) downto 0);
544
      rxerror           : in  std_logic_vector((2-1) downto 0);
545
      vbusvalid         : in  std_logic_vector((2-1) downto 0);
546
      datahi            : in  std_logic_vector(((2*8)-1) downto 0);
547
      validhi           : in  std_logic_vector((2-1) downto 0);
548
      hostdisc          : in  std_logic_vector((2-1) downto 0);
549
      nxt               : in  std_logic_vector((2-1) downto 0);
550
      dir               : in  std_logic_vector((2-1) downto 0);
551
      datai             : in  std_logic_vector(((2*8)-1) downto 0);
552
      -- EHC transaction buffer signals
553
      mbc20_tb_addr     : out std_logic_vector(8 downto 0);
554
      mbc20_tb_data     : out std_logic_vector(31 downto 0);
555
      mbc20_tb_en       : out std_ulogic;
556
      mbc20_tb_wel      : out std_ulogic;
557
      mbc20_tb_weh      : out std_ulogic;
558
      tb_mbc20_data     : in  std_logic_vector(31 downto 0);
559
      pe20_tb_addr      : out std_logic_vector(8 downto 0);
560
      pe20_tb_data      : out std_logic_vector(31 downto 0);
561
      pe20_tb_en        : out std_ulogic;
562
      pe20_tb_wel       : out std_ulogic;
563
      pe20_tb_weh       : out std_ulogic;
564
      tb_pe20_data      : in  std_logic_vector(31 downto 0);
565
      -- EHC packet buffer signals
566
      mbc20_pb_addr     : out std_logic_vector(8 downto 0);
567
      mbc20_pb_data     : out std_logic_vector(31 downto 0);
568
      mbc20_pb_en       : out std_ulogic;
569
      mbc20_pb_we       : out std_ulogic;
570
      pb_mbc20_data     : in  std_logic_vector(31 downto 0);
571
      sie20_pb_addr     : out std_logic_vector(8 downto 0);
572
      sie20_pb_data     : out std_logic_vector(31 downto 0);
573
      sie20_pb_en       : out std_ulogic;
574
      sie20_pb_we       : out std_ulogic;
575
      pb_sie20_data     : in  std_logic_vector(31 downto 0);
576
      -- UHC packet buffer signals
577
      sie11_pb_addr     : out std_logic_vector((1*9)*1 downto 1*1);
578
      sie11_pb_data     : out std_logic_vector((1*32)*1 downto 1*1);
579
      sie11_pb_en       : out std_logic_vector(1*1 downto 1*1);
580
      sie11_pb_we       : out std_logic_vector(1*1 downto 1*1);
581
      pb_sie11_data     : in  std_logic_vector((1*32)*1 downto 1*1);
582
      mbc11_pb_addr     : out std_logic_vector((1*9)*1 downto 1*1);
583
      mbc11_pb_data     : out std_logic_vector((1*32)*1 downto 1*1);
584
      mbc11_pb_en       : out std_logic_vector(1*1 downto 1*1);
585
      mbc11_pb_we       : out std_logic_vector(1*1 downto 1*1);
586
      pb_mbc11_data     : in  std_logic_vector((1*32)*1 downto 1*1);
587
      bufsel            : out std_ulogic);
588
  end component;
589
 
590
  function valid_comb (
591
    nports      : integer range 1 to 15 := 1;
592
    ehcgen      : integer range 0 to 1 := 1;
593
    uhcgen      : integer range 0 to 1 := 1;
594
    n_cc        : integer range 1 to 15 := 1;
595
    n_pcc       : integer range 1 to 15 := 1;
596
    prr         : integer range 0 to 1 := 0;
597
    portroute1  : integer := 0;
598
    portroute2  : integer := 0;
599
    endian_conv : integer range 0 to 1 := 1;
600
    be_regs     : integer range 0 to 1 := 0;
601
    be_desc     : integer range 0 to 1 := 0;
602
    uhcblo      : integer range 0 to 255 := 2;
603
    bwrd        : integer range 1 to 256 := 16;
604
    utm_type    : integer range 0 to 2 := 2;
605
    vbusconf    : integer range 0 to 3 := 3;
606
    ramtest     : integer range 0 to 1 := 0;
607
    urst_time   : integer := 250;
608
    oepol       : integer range 0 to 1 := 0;
609
    scantest    : integer := 0)
610
    return boolean;
611
 
612
end grusbhc_axceleratorpkg;
613
 
614
package body grusbhc_axceleratorpkg is
615
  function valid_comb (
616
    nports      : integer range 1 to 15 := 1;
617
    ehcgen      : integer range 0 to 1 := 1;
618
    uhcgen      : integer range 0 to 1 := 1;
619
    n_cc        : integer range 1 to 15 := 1;
620
    n_pcc       : integer range 1 to 15 := 1;
621
    prr         : integer range 0 to 1 := 0;
622
    portroute1  : integer := 0;
623
    portroute2  : integer := 0;
624
    endian_conv : integer range 0 to 1 := 1;
625
    be_regs     : integer range 0 to 1 := 0;
626
    be_desc     : integer range 0 to 1 := 0;
627
    uhcblo      : integer range 0 to 255 := 2;
628
    bwrd        : integer range 1 to 256 := 16;
629
    utm_type    : integer range 0 to 2 := 2;
630
    vbusconf    : integer range 0 to 3 := 3;
631
    ramtest     : integer range 0 to 1 := 0;
632
    urst_time   : integer := 250;
633
    oepol       : integer range 0 to 1 := 0;
634
    scantest    : integer := 0)
635
    return boolean is
636
  begin
637
    -- comb0
638
    if nports = 1 and ehcgen = 0 and uhcgen = 1 and n_cc = 1 and
639
      n_pcc = 1 and prr = 0 and portroute1 = 0 and portroute2 = 0 and
640
      endian_conv = 1 and be_regs = 0 and be_desc = 0 and uhcblo = 2 and
641
      bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and
642
      urst_time = 250 and oepol = 0 and scantest = 0 then
643
      return true;
644
    end if;
645
 
646
    -- comb1
647
    if nports = 1 and ehcgen = 1 and uhcgen = 0 and n_cc = 1 and
648
      n_pcc = 1 and prr = 0 and portroute1 = 0 and portroute2 = 0 and
649
      endian_conv = 1 and be_regs = 0 and be_desc = 0 and uhcblo = 2 and
650
      bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and
651
      urst_time = 250 and oepol = 0 and scantest = 0 then
652
      return true;
653
    end if;
654
 
655
    -- comb2
656
    if nports = 1 and ehcgen = 1 and uhcgen = 1 and n_cc = 1 and
657
      n_pcc = 1 and prr = 0 and portroute1 = 0 and portroute2 = 0 and
658
      endian_conv = 1 and be_regs = 0 and be_desc = 0 and uhcblo = 2 and
659
      bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and
660
      urst_time = 250 and oepol = 0 and scantest = 0 then
661
      return true;
662
    end if;
663
 
664
    -- comb3
665
    if nports = 2 and ehcgen = 1 and uhcgen = 1 and n_cc = 1 and
666
      n_pcc = 2 and prr = 0 and portroute1 = 0 and portroute2 = 0 and
667
      endian_conv = 1 and be_regs = 0 and be_desc = 0 and uhcblo = 2 and
668
      bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and
669
      urst_time = 250 and oepol = 0 and scantest = 0 then
670
      return true;
671
    end if;
672
 
673
    return false;
674
  end valid_comb;
675
end grusbhc_axceleratorpkg;

powered by: WebSVN 2.1.0

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