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

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [designs/] [leon3-asic/] [leon3mp.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
-----------------------------------------------------------------------------
2
--  LEON3 Demonstration design
3
--  Copyright (C) 2004 Jiri Gaisler, 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
 
20
 
21
library ieee;
22
use ieee.std_logic_1164.all;
23
use work.config.all;
24
library techmap;
25
use techmap.gencomp.all;
26
 
27
entity leon3mp is
28
  generic (
29
    fabtech   : integer := CFG_FABTECH;
30
    memtech   : integer := CFG_MEMTECH;
31
    padtech   : integer := CFG_PADTECH;
32
    clktech   : integer := CFG_CLKTECH;
33
    disas     : integer := CFG_DISAS;   -- Enable disassembly to console
34
    dbguart   : integer := CFG_DUART;   -- Print UART on console
35
    pclow     : integer := CFG_PCLOW;
36
    scantest  : integer := CFG_SCAN
37
  );
38
  port (
39
    resetn      : in  std_ulogic;
40
    clksel      : in  std_logic_vector(1 downto 0);
41
    clka        : in  std_ulogic;
42
    lock        : out std_ulogic;
43
    errorn      : inout std_ulogic;
44
    wdogn       : inout std_ulogic;
45
 
46
    address     : out std_logic_vector(27 downto 0);
47
    data        : inout std_logic_vector(31 downto 0);
48
    cb          : inout std_logic_vector(7 downto 0);
49
 
50
    sdclk       : out std_ulogic;
51
    sdcsn       : out std_logic_vector (1 downto 0);    -- sdram chip select
52
    sdwen       : out std_ulogic;                       -- sdram write enable
53
    sdrasn      : out std_ulogic;                       -- sdram ras
54
    sdcasn      : out std_ulogic;                       -- sdram cas
55
    sddqm       : out std_logic_vector (3 downto 0);    -- sdram dqm
56
    dsutx       : out std_ulogic;                       -- DSU tx data / scanout
57
    dsurx       : in  std_ulogic;                       -- DSU rx data / scanin
58
    dsuen       : in std_ulogic;
59
    dsubre      : in std_ulogic;                        -- DSU break / scanen
60
    dsuact      : out std_ulogic;                       -- DSU active / NT
61
    txd1        : out std_ulogic;                       -- UART1 tx data
62
    rxd1        : in  std_ulogic;                       -- UART1 rx data
63
    txd2        : out std_ulogic;                       -- UART2 tx data
64
    rxd2        : in  std_ulogic;                       -- UART2 rx data
65
 
66
    ramsn       : out std_logic_vector (4 downto 0);
67
    ramoen      : out std_logic_vector (4 downto 0);
68
    rwen        : out std_logic_vector (3 downto 0);
69
    oen         : out std_ulogic;
70
    writen      : out std_ulogic;
71
    read        : out std_ulogic;
72
    iosn        : out std_ulogic;
73
    romsn       : out std_logic_vector (1 downto 0);
74
    brdyn       : in  std_ulogic;
75
    bexcn       : in  std_ulogic;
76
    gpio        : inout std_logic_vector(CFG_GRGPIO_WIDTH-1 downto 0);   -- I/O port
77
    prom32      : in  std_ulogic;
78
    promedac    : in  std_ulogic;
79
 
80
    spw_clksel  : in  std_logic_vector(1 downto 0);
81
    clkb        : in  std_ulogic;
82
    spw_rxdp    : in  std_logic_vector(0 to CFG_SPW_NUM-1);
83
    spw_rxdn    : in  std_logic_vector(0 to CFG_SPW_NUM-1);
84
    spw_rxsp    : in  std_logic_vector(0 to CFG_SPW_NUM-1);
85
    spw_rxsn    : in  std_logic_vector(0 to CFG_SPW_NUM-1);
86
    spw_txdp    : out std_logic_vector(0 to CFG_SPW_NUM-1);
87
    spw_txdn    : out std_logic_vector(0 to CFG_SPW_NUM-1);
88
    spw_txsp    : out std_logic_vector(0 to CFG_SPW_NUM-1);
89
    spw_txsn    : out std_logic_vector(0 to CFG_SPW_NUM-1);
90
    lvdsref     : in  std_ulogic;
91
 
92
    roen        : in  std_ulogic;
93
    roout       : out std_ulogic;
94
    nandout     : out std_ulogic;
95
 
96
    testen              : in  std_ulogic
97
        );
98
end;
99
 
100
architecture rtl of leon3mp is
101
 
102
signal lresetn  : std_ulogic;
103
signal lclksel  : std_logic_vector (1 downto 0);
104
signal lclk     : std_ulogic;
105
signal lerrorn  : std_ulogic;
106
signal laddress : std_logic_vector(27 downto 0);
107
signal datain   : std_logic_vector(31 downto 0);
108
signal dataout  : std_logic_vector(31 downto 0);
109
signal dataen   : std_logic_vector(31 downto 0);
110
signal cbin     : std_logic_vector(7 downto 0);
111
signal cbout    : std_logic_vector(7 downto 0);
112
signal cben     : std_logic_vector(7 downto 0);
113
signal lsdclk   : std_ulogic;
114
--signal sdclk          : std_ulogic;
115
signal lsdcsn   : std_logic_vector (1 downto 0);    -- sdram chip select
116
signal lsdwen   : std_ulogic;                       -- sdram write enable
117
signal lsdrasn  : std_ulogic;                       -- sdram ras
118
signal lsdcasn  : std_ulogic;                       -- sdram cas
119
signal lsddqm   : std_logic_vector (3 downto 0);    -- sdram dqm
120
signal ldsutx   : std_ulogic;                   -- DSU tx data
121
signal ldsurx   : std_ulogic;                   -- DSU rx data
122
signal ldsuen   : std_ulogic;
123
signal ldsubre  : std_ulogic;
124
signal ldsuact  : std_ulogic;
125
signal ltxd1    : std_ulogic;                   -- UART1 tx data
126
signal lrxd1    : std_ulogic;                   -- UART1 rx data
127
signal ltxd2    : std_ulogic;                   -- UART1 tx data
128
signal lrxd2    : std_ulogic;                   -- UART1 rx data
129
signal lramsn   : std_logic_vector (4 downto 0);
130
signal lramoen  : std_logic_vector (4 downto 0);
131
signal lrwen    : std_logic_vector (3 downto 0);
132
signal loen     : std_ulogic;
133
signal lwriten  : std_ulogic;
134
signal lread    : std_ulogic;
135
signal liosn    : std_ulogic;
136
signal lromsn   : std_logic_vector (1 downto 0);
137
signal lbrdyn   : std_ulogic;
138
signal lbexcn   : std_ulogic;
139
signal lwdogn   : std_ulogic;
140
signal lnandout : std_ulogic;
141
signal gpioin   : std_logic_vector(CFG_GRGPIO_WIDTH-1 downto 0);         -- I/O port
142
signal gpioout  : std_logic_vector(CFG_GRGPIO_WIDTH-1 downto 0);         -- I/O port
143
signal gpioen   : std_logic_vector(CFG_GRGPIO_WIDTH-1 downto 0);         -- I/O port
144
signal lprom32 : std_ulogic;
145
signal lpromedac : std_ulogic;
146
 
147
signal lspw_clksel : std_logic_vector (1 downto 0);
148
signal lspw_clk : std_ulogic;
149
signal lspw_rxd  : std_logic_vector(0 to CFG_SPW_NUM-1);
150
signal lspw_rxs  : std_logic_vector(0 to CFG_SPW_NUM-1);
151
signal lspw_txd  : std_logic_vector(0 to CFG_SPW_NUM-1);
152
signal lspw_txs  : std_logic_vector(0 to CFG_SPW_NUM-1);
153
signal lspw_ten  : std_logic_vector(0 to CFG_SPW_NUM-1);
154
 
155
signal llock, lroen, lroout : std_ulogic;
156
 
157
signal ltest, gnd : std_ulogic;
158
signal lclk2x, lclk4x, lclkdis, lclklock : std_ulogic;
159
constant OEPOL  : integer := padoen_polarity(padtech);
160
--attribute DONT_TOUCH : boolean;
161
--attribute DONT_TOUCH of pads0 : label is TRUE;
162
begin
163
 
164
  pads0 : entity work.pads
165
    generic map (clktech, padtech)
166
    port map (
167
      resetn, clksel, clka, lock, errorn, address, data, cb, sdclk, sdcsn,
168
      sdwen, sdrasn, sdcasn, sddqm, dsutx, dsurx,
169
      dsuen, dsubre, dsuact, txd1, rxd1, txd2, rxd2,
170
      ramsn, ramoen, rwen, oen, writen, read, iosn,
171
      romsn, brdyn, bexcn, wdogn, gpio, prom32, promedac,
172
      spw_clksel, clkb, spw_rxdp, spw_rxdn, spw_rxsp, spw_rxsn, spw_txdp, spw_txdn,
173
      spw_txsp, spw_txsn, lvdsref, roen, roout, nandout, testen,
174
      lresetn, lclksel, lclk, lerrorn, laddress, datain,
175
      dataout, dataen, cbin, cbout, cben, lsdclk, lsdcsn,
176
      lsdwen, lsdrasn, lsdcasn, lsddqm, ldsutx, ldsurx,
177
      ldsuen, ldsubre, ldsuact, ltxd1, lrxd1, ltxd2, lrxd2,
178
      lramsn, lramoen, lrwen, loen, lwriten, lread, liosn,
179
      lromsn, lbrdyn, lbexcn, lwdogn, gpioin, gpioout, gpioen, lprom32, lpromedac,
180
      lspw_clksel, lspw_clk, lspw_rxd, lspw_rxs, lspw_txd, lspw_txs, lspw_ten,
181
      lclk2x, lclk4x, lclkdis, lclklock, llock, lroen, lroout, lnandout, ltest, gnd);
182
 
183
  core0 : entity work.core
184
    generic map (fabtech, memtech, padtech, clktech, disas, dbguart, pclow, scantest)
185
    port map (lresetn, lclksel, lclk, lerrorn, laddress, datain,
186
      dataout, dataen, cbin, cbout, cben, lsdclk, lsdcsn,
187
      lsdwen, lsdrasn, lsdcasn, lsddqm, ldsutx, ldsurx,
188
      ldsuen, ldsubre, ldsuact, ltxd1, lrxd1, ltxd2, lrxd2,
189
      lramsn, lramoen, lrwen, loen, lwriten, lread, liosn,
190
      lromsn, lbrdyn, lbexcn, lwdogn, gpioin, gpioout, gpioen, lprom32, lpromedac,
191
      lspw_clksel, lspw_clk, lspw_rxd, lspw_rxs, lspw_txd, lspw_txs, lspw_ten,
192
      lclk2x, lclk4x, lclkdis, lclklock, llock, lroen, lroout, lnandout, ltest, gnd);
193
 
194
end;

powered by: WebSVN 2.1.0

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