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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.7/] [rtl/] [bplib/] [s3board/] [s3boardlib.vhd] - Blame information for rev 9

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 wfjm
-- $Id: s3boardlib.vhd 351 2010-12-30 21:50:54Z mueller $
2 2 wfjm
--
3
-- Copyright 2007-2010 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
--
5
-- This program is free software; you may redistribute and/or modify it under
6
-- the terms of the GNU General Public License as published by the Free
7
-- Software Foundation, either version 2, or at your option any later version.
8
--
9
-- This program is distributed in the hope that it will be useful, but
10
-- WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY
11
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12
-- for complete details.
13
--
14
------------------------------------------------------------------------------
15
-- Package Name:   s3boardlib
16
-- Description:    S3BOARD components
17
-- 
18
-- Dependencies:   -
19 9 wfjm
-- Tool versions:  xst 8.1, 8.2, 9.1, 9.2, 11.4, 12.1; ghdl 0.18-0.29
20 2 wfjm
-- Revision History: 
21
-- Date         Rev Version  Comment
22 9 wfjm
-- 2010-12-30   351   1.3.2  use rblib; rename human s3_humanio_rri -> _rbus
23 8 wfjm
-- 2010-11-06   336   1.3.1  rename input pin CLK -> I_CLK50
24 2 wfjm
-- 2010-06-03   300   1.3    add s3_humanio_rri (now needs rrilib)
25
-- 2010-05-21   292   1.2.2  rename _PM1_ -> _FUSP_
26
-- 2010-05-16   291   1.2.1  rename memctl_s3sram -> s3_sram_memctl; _usp->_fusp
27
-- 2010-05-01   286   1.2    added s3board_usp_aif (base+pm1_rs232)
28
-- 2010-04-17   278   1.1.6  rename, prefix dispdrv,sram_summy with s3_;
29
--                           add s3_rs232_iob_(int|ext|int_ext)
30
-- 2010-04-11   276   1.1.5  add DEBOUNCE for s3_humanio
31
-- 2010-04-10   275   1.1.4  add s3_humanio
32
-- 2008-02-17   117   1.1.3  memctl_s3sram: use req,we interface
33
-- 2008-01-20   113   1.1.2  rename memdrv -> memctl_s3sram
34
-- 2007-12-16   101   1.1.1  use _N for active low
35
-- 2007-12-09   100   1.1    add sram memory signals; sram_dummy; memdrv
36
-- 2007-09-23    84   1.0    Initial version 
37
------------------------------------------------------------------------------
38
 
39
library ieee;
40
use ieee.std_logic_1164.all;
41
use ieee.std_logic_arith.all;
42
 
43
use work.slvtypes.all;
44 9 wfjm
use work.rblib.all;
45 2 wfjm
 
46
package s3boardlib is
47
 
48
component s3board_aif is                -- S3BOARD, abstract iface, base
49
  port (
50 8 wfjm
    I_CLK50 : in slbit;                 -- 50 MHz board clock
51 2 wfjm
    I_RXD : in slbit;                   -- receive data (board view)
52
    O_TXD : out slbit;                  -- transmit data (board view)
53
    I_SWI : in slv8;                    -- s3 switches
54
    I_BTN : in slv4;                    -- s3 buttons
55
    O_LED : out slv8;                   -- s3 leds
56
    O_ANO_N : out slv4;                 -- 7 segment disp: anodes   (act.low)
57
    O_SEG_N : out slv8;                 -- 7 segment disp: segments (act.low)
58
    O_MEM_CE_N : out slv2;              -- sram: chip enables  (act.low)
59
    O_MEM_BE_N : out slv4;              -- sram: byte enables  (act.low)
60
    O_MEM_WE_N : out slbit;             -- sram: write enable  (act.low)
61
    O_MEM_OE_N : out slbit;             -- sram: output enable (act.low)
62
    O_MEM_ADDR  : out slv18;            -- sram: address lines
63
    IO_MEM_DATA : inout slv32           -- sram: data lines
64
  );
65
end component;
66
 
67
component s3board_fusp_aif is           -- S3BOARD, abstract iface, base+fusp
68
  port (
69 8 wfjm
    I_CLK50 : in slbit;                 -- 50 MHz board clock
70 2 wfjm
    I_RXD : in slbit;                   -- receive data (board view)
71
    O_TXD : out slbit;                  -- transmit data (board view)
72
    I_SWI : in slv8;                    -- s3 switches
73
    I_BTN : in slv4;                    -- s3 buttons
74
    O_LED : out slv8;                   -- s3 leds
75
    O_ANO_N : out slv4;                 -- 7 segment disp: anodes   (act.low)
76
    O_SEG_N : out slv8;                 -- 7 segment disp: segments (act.low)
77
    O_MEM_CE_N : out slv2;              -- sram: chip enables  (act.low)
78
    O_MEM_BE_N : out slv4;              -- sram: byte enables  (act.low)
79
    O_MEM_WE_N : out slbit;             -- sram: write enable  (act.low)
80
    O_MEM_OE_N : out slbit;             -- sram: output enable (act.low)
81
    O_MEM_ADDR  : out slv18;            -- sram: address lines
82
    IO_MEM_DATA : inout slv32;          -- sram: data lines
83
    O_FUSP_RTS_N : out slbit;           -- fusp: rs232 rts_n
84
    I_FUSP_CTS_N : in slbit;            -- fusp: rs232 cts_n
85
    I_FUSP_RXD : in slbit;              -- fusp: rs232 rx
86
    O_FUSP_TXD : out slbit              -- fusp: rs232 tx
87
  );
88
end component;
89
 
90
component s3_dispdrv is                 -- 7 segment display driver
91
  generic (
92
    CDWIDTH : positive := 6);           -- clk divider width (must be >= 5)
93
  port (
94
    CLK : in slbit;                     -- clock
95
    DIN : in slv16;                     -- data
96
    DP : in slv4;                       -- decimal points
97
    ANO_N : out slv4;                   -- anodes    (act.low)
98
    SEG_N : out slv8                    -- segements (act.low)
99
  );
100
end component;
101
 
102
component s3_humanio is                 -- human i/o handling: swi,btn,led,dsp
103
  generic (
104
    DEBOUNCE : boolean := true);        -- instantiate debouncer for SWI,BTN
105
  port (
106
    CLK : in slbit;                     -- clock
107
    RESET : in slbit;                   -- reset
108
    CE_MSEC : in slbit;                 -- 1 ms clock enable
109
    SWI : out slv8;                     -- switch settings, debounced
110
    BTN : out slv4;                     -- button settings, debounced
111
    LED : in slv8;                      -- led data
112
    DSP_DAT : in slv16;                 -- display data
113
    DSP_DP : in slv4;                   -- display decimal points
114
    I_SWI : in slv8;                    -- pad-i: switches
115
    I_BTN : in slv4;                    -- pad-i: buttons
116
    O_LED : out slv8;                   -- pad-o: leds
117
    O_ANO_N : out slv4;                 -- pad-o: 7 seg disp: anodes   (act.low)
118
    O_SEG_N : out slv8                  -- pad-o: 7 seg disp: segments (act.low)
119
  );
120
end component;
121
 
122 9 wfjm
component s3_humanio_rbus is            -- human i/o handling /w rbus intercept
123 2 wfjm
  generic (
124
    DEBOUNCE : boolean := true;         -- instantiate debouncer for SWI,BTN
125
    RB_ADDR : slv8 := conv_std_logic_vector(2#10000000#,8));
126
  port (
127
    CLK : in slbit;                     -- clock
128
    RESET : in slbit;                   -- reset
129
    CE_MSEC : in slbit;                 -- 1 ms clock enable
130
    RB_MREQ : in rb_mreq_type;          -- rbus: request
131
    RB_SRES : out rb_sres_type;         -- rbus: response
132
    SWI : out slv8;                     -- switch settings, debounced
133
    BTN : out slv4;                     -- button settings, debounced
134
    LED : in slv8;                      -- led data
135
    DSP_DAT : in slv16;                 -- display data
136
    DSP_DP : in slv4;                   -- display decimal points
137
    I_SWI : in slv8;                    -- pad-i: switches
138
    I_BTN : in slv4;                    -- pad-i: buttons
139
    O_LED : out slv8;                   -- pad-o: leds
140
    O_ANO_N : out slv4;                 -- pad-o: 7 seg disp: anodes   (act.low)
141
    O_SEG_N : out slv8                  -- pad-o: 7 seg disp: segments (act.low)
142
  );
143
end component;
144
 
145
component s3_rs232_iob_int is           -- iob's for internal rs232
146
  port (
147
    CLK : in slbit;                     -- clock
148
    RXD : out slbit;                    -- receive data (board view)
149
    TXD : in slbit;                     -- transmit data (board view)
150
    I_RXD : in slbit;                   -- pad-i: receive data (board view)
151
    O_TXD : out slbit                   -- pad-o: transmit data (board view)
152
  );
153
end component;
154
 
155
component s3_rs232_iob_ext is           -- iob's for external rs232 (Pmod)
156
  port (
157
    CLK : in slbit;                     -- clock
158
    RXD : out slbit;                    -- receive data (board view)
159
    TXD : in slbit;                     -- transmit data (board view)
160
    CTS_N : out slbit;                  -- clear to send   (act. low)
161
    RTS_N : in slbit;                   -- request to send (act. low)
162
    I_RXD : in slbit;                   -- pad-i: receive data (board view)
163
    O_TXD : out slbit;                  -- pad-o: transmit data (board view)
164
    I_CTS_N : in slbit;                 -- pad-i: clear to send   (act. low)
165
    O_RTS_N : out slbit                 -- pad-o: request to send (act. low)
166
  );
167
end component;
168
 
169
component s3_rs232_iob_int_ext is       -- iob's for int+ext rs232, with select
170
  port (
171
    CLK : in slbit;                     -- clock
172
    SEL : in slbit;                     -- select, '0' for port 0
173
    RXD : out slbit;                    -- receive data (board view)
174
    TXD : in slbit;                     -- transmit data (board view)
175
    CTS_N : out slbit;                  -- clear to send   (act. low)
176
    RTS_N : in slbit;                   -- request to send (act. low)
177
    I_RXD0 : in slbit;                  -- pad-i: p0: receive data (board view)
178
    O_TXD0 : out slbit;                 -- pad-o: p0: transmit data (board view)
179
    I_RXD1 : in slbit;                  -- pad-i: p1: receive data (board view)
180
    O_TXD1 : out slbit;                 -- pad-o: p1: transmit data (board view)
181
    I_CTS1_N : in slbit;                -- pad-i: p1: clear to send   (act. low)
182
    O_RTS1_N : out slbit                -- pad-o: p1: request to send (act. low)
183
  );
184
end component;
185
 
186
component s3_sram_dummy is              -- SRAM protection dummy 
187
  port (
188
    O_MEM_CE_N : out slv2;              -- sram: chip enables  (act.low)
189
    O_MEM_BE_N : out slv4;              -- sram: byte enables  (act.low)
190
    O_MEM_WE_N : out slbit;             -- sram: write enable  (act.low)
191
    O_MEM_OE_N : out slbit;             -- sram: output enable (act.low)
192
    O_MEM_ADDR  : out slv18;            -- sram: address lines
193
    IO_MEM_DATA : inout slv32           -- sram: data lines
194
  );
195
end component;
196
 
197
component s3_sram_memctl is             -- SRAM driver
198
  port (
199
    CLK : in slbit;                     -- clock
200
    RESET : in slbit;                   -- reset
201
    REQ   : in slbit;                   -- request
202
    WE    : in slbit;                   -- write enable
203
    BUSY : out slbit;                   -- controller busy
204
    ACK_R : out slbit;                  -- acknowledge read
205
    ACK_W : out slbit;                  -- acknowledge write
206
    ACT_R : out slbit;                  -- signal active read
207
    ACT_W : out slbit;                  -- signal active write
208
    ADDR : in slv18;                    -- address
209
    BE : in slv4;                       -- byte enable
210
    DI : in slv32;                      -- data in  (memory view)
211
    DO : out slv32;                     -- data out (memory view)
212
    O_MEM_CE_N : out slv2;              -- sram: chip enables  (act.low)
213
    O_MEM_BE_N : out slv4;              -- sram: byte enables  (act.low)
214
    O_MEM_WE_N : out slbit;             -- sram: write enable  (act.low)
215
    O_MEM_OE_N : out slbit;             -- sram: output enable (act.low)
216
    O_MEM_ADDR  : out slv18;            -- sram: address lines
217
    IO_MEM_DATA : inout slv32           -- sram: data lines
218
  );
219
end component;
220
 
221
end s3boardlib;

powered by: WebSVN 2.1.0

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