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

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [sparc/] [ambacomp.vhd] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tarookumic
 
2
 
3
 
4
 
5
----------------------------------------------------------------------------
6
--  This file is a part of the LEON VHDL model
7
--  Copyright (C) 1999  European Space Agency (ESA)
8
--
9
--  This library is free software; you can redistribute it and/or
10
--  modify it under the terms of the GNU Lesser General Public
11
--  License as published by the Free Software Foundation; either
12
--  version 2 of the License, or (at your option) any later version.
13
--
14
--  See the file COPYING.LGPL for the full details of the license.
15
 
16
 
17
-----------------------------------------------------------------------------
18
-- Entity:      ambacomp
19
-- File:        ambacomp.vhd
20
-- Author:      Jiri Gaisler - ESA/ESTEC
21
-- Description: Component declarations of AMBA cores
22
------------------------------------------------------------------------------
23
 
24
library IEEE;
25
use IEEE.std_logic_1164.all;
26
use work.amba.all;
27
use work.leon_target.all;
28
use work.leon_config.all;
29
use work.leon_iface.all;
30
use work.peri_io_comp.all;
31
use work.peri_mem_comp.all;
32
 
33
package ambacomp is
34
 
35
-- processor core
36
 
37
component proc
38
  port (
39
    rst    : in  std_logic;
40
    clk    : in  clk_type;
41
    clkn   : in  clk_type;
42
    apbi   : in  apb_slv_in_type;
43
    apbo   : out apb_slv_out_type;
44
    ahbi   : in  ahb_mst_in_type;
45
    ahbo   : out ahb_mst_out_type;
46
    ahbsi  : in  ahb_slv_in_type;
47
    iui    : in  iu_in_type;
48
    iuo    : out iu_out_type
49
  );
50
end component;
51
 
52
-- AMBA/PCI interface for InSilicon (was Phoenix) PCI core
53
component pci_is
54
   port (
55
      rst_n           : in  std_logic;
56
      pciresetn       : in  std_logic;
57
      app_clk         : in  clk_type;
58
      pci_clk         : in  clk_type;
59
      pbi             : in  APB_Slv_In_Type;   -- peripheral bus in
60
      pbo             : out APB_Slv_Out_Type;  -- peripheral bus out
61
      irq             : out std_logic;         -- interrupt request
62
      TargetMasterOut : out ahb_mst_out_type;  -- PCI target DMA
63
      TargetMasterIn  : in  ahb_mst_in_type;
64
      pci_in          : in  pci_in_type;       -- PCI pad inputs
65
      pci_out         : out pci_out_type;      -- PCI pad outputs
66
      InitSlaveOut  : out ahb_slv_out_type;     -- Direct PCI master access
67
      InitSlaveIn   : in  ahb_slv_in_type;
68
      InitMasterOut : out ahb_mst_out_type;     -- PCI Master DMA
69
      InitMasterIn  : in  ahb_mst_in_type
70
      );
71
end component;
72
 
73
-- ESA PCI interface
74
component pci_esa
75
  port (
76
      resetn          : in  std_logic;         -- Amba reset signal
77
      app_clk         : in  clk_type;          -- Application clock
78
      pci_in          : in  pci_in_type;       -- PCI pad inputs
79
      pci_out         : out pci_out_type;      -- PCI pad outputs
80
      ahbmasterin     : in  ahb_mst_in_type;   -- AHB Master inputs
81
      ahbmasterout    : out ahb_mst_out_type;  -- AHB Master outputs
82
      ahbslavein      : in  ahb_slv_in_type;   -- AHB Slave inputs
83
      ahbslaveout     : out ahb_slv_out_type;  -- AHB Slave outputs
84
      apbslavein      : in  apb_Slv_In_Type;   -- peripheral bus in
85
      apbslaveout     : out apb_Slv_Out_Type;  -- peripheral bus out
86
      irq             : out std_logic          -- interrupt request
87
   );
88
end component;
89
 
90
-- Non-functional PCI module for testing
91
component pci_test
92
  port (
93
    rst    : in  std_logic;
94
    clk    : in  std_logic;
95
    ahbmi  : in  ahb_mst_in_type;
96
    ahbmo  : out ahb_mst_out_type;
97
    ahbsi  : in  ahb_slv_in_type;
98
    ahbso  : out ahb_slv_out_type
99
  );
100
end component;
101
 
102
-- PCI arbiter
103
 
104
component pci_arb
105
 port (
106
    clk     : in  clk_type ;                              -- clock
107
    rst_n   : in  std_logic;                           -- async reset active low
108
    req_n   : in  std_logic_vector(0 to NB_AGENTS-1);  -- bus request
109
    frame_n : in  std_logic;
110
    gnt_n   : out std_logic_vector(0 to NB_AGENTS-1);  -- bus grant
111
    pclk    : in  clk_type;                            -- APB clock
112
    prst_n  : in  std_logic;                           -- APB reset
113
    pbi     : in  APB_Slv_In_Type;                     -- APB inputs
114
    pbo     : out APB_Slv_Out_Type
115
  );
116
end component;
117
 
118
 
119
-- APB/AHB bridge
120
 
121
component apbmst
122
  port (
123
    rst     : in  std_logic;
124
    clk     : in  clk_type;
125
    ahbi    : in  ahb_slv_in_type;
126
    ahbo    : out ahb_slv_out_type;
127
    apbi    : out apb_slv_in_vector(0 to APB_SLV_MAX-1);
128
    apbo    : in  apb_slv_out_vector(0 to APB_SLV_MAX-1)
129
  );
130
end component;
131
 
132
-- AHB arbiter
133
 
134
component ahbarb
135
  generic (
136
    masters : integer := 2;             -- number of masters
137
    defmast : integer := 0               -- default master
138
  );
139
  port (
140
    rst     : in  std_logic;
141
    clk     : in  clk_type;
142
    msti    : out ahb_mst_in_vector(0 to masters-1);
143
    msto    : in  ahb_mst_out_vector(0 to masters-1);
144
    slvi    : out ahb_slv_in_vector(0 to AHB_SLV_MAX-1);
145
    slvo    : in  ahb_slv_out_vector(0 to AHB_SLV_MAX)
146
  );
147
end component;
148
 
149
-- PROM/SRAM controller
150
 
151
 
152
-- AHB test module
153
 
154
component ahbtest
155
   port (
156
      rst  : in  std_logic;
157
      clk  : in  clk_type;
158
      ahbi : in  ahb_slv_in_type;
159
      ahbo : out ahb_slv_out_type
160
      );
161
end component;
162
 
163
-- AHB write-protection module
164
 
165
 
166
-- AHB status register
167
 
168
component ahbstat
169
  port (
170
    rst    : in  std_logic;
171
    clk    : in  clk_type;
172
    ahbmi  : in  ahb_mst_in_type;
173
    ahbsi  : in  ahb_slv_in_type;
174
    apbi   : in  apb_slv_in_type;
175
    apbo   : out apb_slv_out_type;
176
    ahbsto : out ahbstat_out_type
177
 
178
  );
179
end component;
180
 
181
-- LEON configuration register
182
 
183
component lconf
184
  port (
185
    rst    : in  std_logic;
186
    apbo   : out apb_slv_out_type
187
  );
188
end component;
189
 
190
-- interrupt controller
191
 
192
component irqctrl
193
  port (
194
    rst    : in  std_logic;
195
    clk    : in  clk_type;
196
    apbi   : in  apb_slv_in_type;
197
    apbo   : out apb_slv_out_type;
198
    irqi   : in  irq_in_type;
199
    irqo   : out irq_out_type
200
  );
201
end component;
202
 
203
-- secondary interrupt controller
204
 
205
component irqctrl2
206
  port (
207
    rst    : in  std_logic;
208
    clk    : in  clk_type;
209
    apbi   : in  apb_slv_in_type;
210
    apbo   : out apb_slv_out_type;
211
    irqi   : in  irq2_in_type;
212
    irqo   : out irq2_out_type
213
  );
214
end component;
215
 
216
-- timers module
217
 
218
component timers
219
  port (
220
    rst    : in  std_logic;
221
    clk    : in  clk_type;
222
    apbi   : in  apb_slv_in_type;
223
    apbo   : out apb_slv_out_type;
224
    timo   : out timers_out_type;
225
    dsuo   : in  dsu_out_type
226
  );
227
end component;
228
 
229
-- UART
230
 
231
 
232
-- I/O port
233
 
234
 
235
-- Generic AHB master
236
 
237
component ahbmst
238
  generic (incaddr : integer := 0);
239
   port (
240
      rst  : in  std_logic;
241
      clk  : in  clk_type;
242
      dmai : in ahb_dma_in_type;
243
      dmao : out ahb_dma_out_type;
244
      ahbi : in  ahb_mst_in_type;
245
      ahbo : out ahb_mst_out_type
246
      );
247
end component;
248
 
249
-- DMA
250
 
251
component dma
252
   port (
253
      rst  : in  std_logic;
254
      clk  : in  clk_type;
255
      dirq  : out std_logic;
256
      apbi   : in  apb_slv_in_type;
257
      apbo   : out apb_slv_out_type;
258
      ahbi : in  ahb_mst_in_type;
259
      ahbo : out ahb_mst_out_type
260
      );
261
end component;
262
 
263
component pci_actel
264
   generic (
265
      USER_DEVICE_ID  : integer := 0;
266
      USER_VENDOR_ID  : integer := 0;
267
      USER_REVISION_ID: integer := 0;
268
      USER_BASE_CLASS : integer := 0;
269
      USER_SUB_CLASS  : integer := 0;
270
      USER_PROGRAM_IF : integer := 0;
271
      USER_SUBSYSTEM_ID : integer := 0;
272
      USER_SUBVENDOR_ID : integer := 0
273
 
274
--      ;BIT_64          : STD_LOGIC := '0';
275
--      MHZ_66          : STD_LOGIC := '0';
276
--      DMA_IN_IO       : STD_LOGIC := '1';
277
--      MADDR_WIDTH     : INTEGER RANGE 4 TO 31 := 22;
278
--      BAR1_ENABLE     : STD_LOGIC := '0';
279
--      BAR1_IO_MEMORY  : STD_LOGIC := '0'; 
280
--      BAR1_ADDR_WIDTH : INTEGER RANGE 2 TO 31 := 12; 
281
--      BAR1_PREFETCH   : STD_LOGIC := '0'; 
282
--      HOT_SWAP_ENABLE : STD_LOGIC := '0'
283
      );
284
   port(
285
 
286
      clk           : in std_logic;
287
      rst           : in std_logic;
288
      -- PCI signals
289
 
290
      pcii      : in  pci_in_type;
291
      pcio      : out pci_out_type;
292
 
293
      ahbmi     : in  ahb_mst_in_type;
294
      ahbmo     : out ahb_mst_out_type;
295
      ahbsi     : in  ahb_slv_in_type;
296
      ahbso     : out ahb_slv_out_type
297
);
298
end component;
299
 
300
-- ACTEL PCI target backend
301
 
302
component pci_be_actel
303
   port (
304
      rst  : in  std_logic;
305
      clk  : in  std_logic;
306
      ahbmi : in  ahb_mst_in_type;
307
      ahbmo : out ahb_mst_out_type;
308
      ahbsi : in  ahb_slv_in_type;
309
      ahbso : out ahb_slv_out_type;
310
      bei  : in  actpci_be_in_type;
311
      beo  : out actpci_be_out_type
312
      );
313
end component;
314
 
315
-- opencores pci interface
316
 
317
component pci_oc
318
   port (
319
      rst  : in  std_logic;
320
      clk  : in  std_logic;
321
      pci_clk : in std_logic;
322
      ahbsi : in  ahb_slv_in_type;
323
      ahbso : out ahb_slv_out_type;
324
      ahbmi : in  ahb_mst_in_type;
325
      ahbmo : out ahb_mst_out_type;
326
      apbi  : in  apb_slv_in_type;
327
      apbo  : out apb_slv_out_type;
328
      pcio  : out pci_out_type;
329
      pcii  : in  pci_in_type;
330
      irq   : out std_logic
331
      );
332
end component;
333
 
334
-- generic pci interface
335
 
336
component pci
337
  port (
338
    resetn : in  std_logic;
339
    clk    : in  clk_type;
340
    pciclk : in  clk_type;
341
    pcirst : in  std_logic;
342
    pcii   : in  pci_in_type;
343
    pcio   : out pci_out_type;
344
    apbi   : in  apb_slv_in_type;
345
    apbo   : out apb_slv_out_type;
346
    ahbmi1 : in  ahb_mst_in_type;
347
    ahbmo1 : out ahb_mst_out_type;
348
    ahbmi2 : in  ahb_mst_in_type;
349
    ahbmo2 : out ahb_mst_out_type;
350
    ahbsi  : in  ahb_slv_in_type;
351
    ahbso  : out ahb_slv_out_type;
352
    irq    : out std_logic
353
  );
354
end component;
355
 
356
-- debug support unit
357
 
358
component dsu
359
  port (
360
    rst    : in  std_logic;
361
    clk    : in  clk_type;
362
    ahbmi  : in  ahb_mst_in_type;
363
    ahbsi  : in  ahb_slv_in_type;
364
    ahbso  : out ahb_slv_out_type;
365
    dsui   : in  dsu_in_type;
366
    dsuo   : out dsu_out_type;
367
    dbgi   : in  iu_debug_out_type;
368
    dbgo   : out iu_debug_in_type;
369
    irqo   : in  irq_out_type;
370
    dmi    : out dsumem_in_type;
371
    dmo    : in  dsumem_out_type
372
  );
373
end component;
374
 
375
component dcom
376
   port (
377
      rst    : in  std_logic;
378
      clk    : in  clk_type;
379
      dcomi  : in  dcom_in_type;
380
      dcomo  : out dcom_out_type;
381
      dsuo   : in  dsu_out_type;
382
      apbi   : in  apb_slv_in_type;
383
      apbo   : out apb_slv_out_type;
384
      ahbi : in  ahb_mst_in_type;
385
      ahbo : out ahb_mst_out_type
386
      );
387
end component;
388
 
389
component dcom_uart
390
  port (
391
    rst    : in  std_logic;
392
    clk    : in  clk_type;
393
    apbi   : in  apb_slv_in_type;
394
    apbo   : out apb_slv_out_type;
395
    uarti  : in  dcom_uart_in_type;
396
    uarto  : out dcom_uart_out_type
397
  );
398
end component;
399
 
400
component ahbram
401
  generic ( abits : integer := 10);
402
  port (
403
    rst    : in  std_logic;
404
    clk    : in  clk_type;
405
    ahbsi  : in  ahb_slv_in_type;
406
    ahbso  : out ahb_slv_out_type
407
  );
408
end component;
409
 
410
component eth_oc
411
  port (
412
    rst  : in  std_logic;
413
    clk  : in  std_logic;
414
    ahbsi : in  ahb_slv_in_type;
415
    ahbso : out ahb_slv_out_type;
416
    ahbmi : in  ahb_mst_in_type;
417
    ahbmo : out ahb_mst_out_type;
418
    eneti : in eth_in_type;
419
    eneto : out eth_out_type;
420
    irq   : out std_logic
421
  );
422
end component;
423
 
424
component pci_gr
425
   generic (device_id : integer := 0; vendor_id : integer := 0;
426
            nsync : integer := 1);
427
   port(
428
      rst       : in std_logic;
429
      pcirst    : in std_logic;
430
      clk       : in std_logic;
431
      pciclk    : in std_logic;
432
      pcii      : in  pci_in_type;
433
      pcio      : out pci_out_type;
434
      ahbmi     : in  ahb_mst_in_type;
435
      ahbmo     : out ahb_mst_out_type;
436
      ahbsi     : in  ahb_slv_in_type;
437
      ahbso     : out ahb_slv_out_type
438
);
439
 
440
end component;
441
end;

powered by: WebSVN 2.1.0

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