1 |
2 |
dimamali |
----------------------------------------------------------------------------
|
2 |
|
|
-- This file is a part of the GRLIB VHDL IP LIBRARY
|
3 |
|
|
-- Copyright (C) 2004 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 |
|
|
-- See the file COPYING for the full details of the license.
|
11 |
|
|
--
|
12 |
|
|
-----------------------------------------------------------------------------
|
13 |
|
|
-- Package: components
|
14 |
|
|
-- File: components.vhd
|
15 |
|
|
-- Author: Jiri Gaisler, Gaisler Research
|
16 |
|
|
-- Description: Component declaration of Cypress sync-sram
|
17 |
|
|
------------------------------------------------------------------------------
|
18 |
|
|
|
19 |
|
|
-- pragma translate_off
|
20 |
|
|
|
21 |
|
|
library ieee;
|
22 |
|
|
use ieee.std_logic_1164.all;
|
23 |
|
|
use std.textio.all;
|
24 |
|
|
|
25 |
|
|
package components is
|
26 |
|
|
|
27 |
|
|
component cy7c1354
|
28 |
|
|
|
29 |
|
|
generic (
|
30 |
|
|
|
31 |
|
|
fname : string := "sram.srec"; -- File to read from
|
32 |
|
|
|
33 |
|
|
-- Constant parameters
|
34 |
|
|
addr_bits : INTEGER := 18;
|
35 |
|
|
data_bits : INTEGER := 36;
|
36 |
|
|
|
37 |
|
|
-- Timing parameters for -5 (225 Mhz)
|
38 |
|
|
tCYC : TIME := 4.4 ns;
|
39 |
|
|
tCH : TIME := 1.8 ns;
|
40 |
|
|
tCL : TIME := 1.8 ns;
|
41 |
|
|
tCO : TIME := 2.8 ns;
|
42 |
|
|
tAS : TIME := 1.4 ns;
|
43 |
|
|
tCENS : TIME := 1.4 ns;
|
44 |
|
|
tWES : TIME := 1.4 ns;
|
45 |
|
|
tDS : TIME := 1.4 ns;
|
46 |
|
|
tAH : TIME := 0.4 ns;
|
47 |
|
|
tCENH : TIME := 0.4 ns;
|
48 |
|
|
tWEH : TIME := 0.4 ns;
|
49 |
|
|
tDH : TIME := 0.4 ns
|
50 |
|
|
|
51 |
|
|
|
52 |
|
|
|
53 |
|
|
-- Timing parameters for -5 (200 Mhz)
|
54 |
|
|
--tCYC : TIME := 5.0 ns;
|
55 |
|
|
--tCH : TIME := 2.0 ns;
|
56 |
|
|
--tCL : TIME := 2.0 ns;
|
57 |
|
|
--tCO : TIME := 3.2 ns;
|
58 |
|
|
--tAS : TIME := 1.5 ns;
|
59 |
|
|
--tCENS : TIME := 1.5 ns;
|
60 |
|
|
--tWES : TIME := 1.5 ns;
|
61 |
|
|
--tDS : TIME := 1.5 ns;
|
62 |
|
|
--tAH : TIME := 0.5 ns;
|
63 |
|
|
--tCENH : TIME := 0.5 ns;
|
64 |
|
|
--tWEH : TIME := 0.5 ns;
|
65 |
|
|
--tDH : TIME := 0.5 ns
|
66 |
|
|
|
67 |
|
|
|
68 |
|
|
-- Timing parameters for -5 (166 Mhz)
|
69 |
|
|
--tCYC : TIME := 6.0 ns;
|
70 |
|
|
--tCH : TIME := 2.4 ns;
|
71 |
|
|
--tCL : TIME := 2.4 ns;
|
72 |
|
|
--tCO : TIME := 3.5 ns;
|
73 |
|
|
--tAS : TIME := 1.5 ns;
|
74 |
|
|
--tCENS : TIME := 1.5 ns;
|
75 |
|
|
--tWES : TIME := 1.5 ns;
|
76 |
|
|
--tDS : TIME := 1.5 ns;
|
77 |
|
|
--tAH : TIME := 0.5 ns;
|
78 |
|
|
--tCENH : TIME := 0.5 ns;
|
79 |
|
|
--tWEH : TIME := 0.5 ns;
|
80 |
|
|
--tDH : TIME := 0.5 ns
|
81 |
|
|
|
82 |
|
|
);
|
83 |
|
|
-- Port Declarations
|
84 |
|
|
PORT (
|
85 |
|
|
Dq : INOUT STD_LOGIC_VECTOR ((data_bits - 1) DOWNTO 0); -- Data I/O
|
86 |
|
|
Addr : IN STD_LOGIC_VECTOR ((addr_bits - 1) DOWNTO 0); -- Address
|
87 |
|
|
Mode : IN STD_LOGIC := '1'; -- Burst Mode
|
88 |
|
|
Clk : IN STD_LOGIC; -- Clk
|
89 |
|
|
CEN_n : IN STD_LOGIC; -- CEN#
|
90 |
|
|
AdvLd_n : IN STD_LOGIC; -- Adv/Ld#
|
91 |
|
|
Bwa_n : IN STD_LOGIC; -- Bwa#
|
92 |
|
|
Bwb_n : IN STD_LOGIC; -- BWb#
|
93 |
|
|
Bwc_n : IN STD_LOGIC; -- Bwc#
|
94 |
|
|
Bwd_n : IN STD_LOGIC; -- BWd#
|
95 |
|
|
Rw_n : IN STD_LOGIC; -- RW#
|
96 |
|
|
Oe_n : IN STD_LOGIC; -- OE#
|
97 |
|
|
Ce1_n : IN STD_LOGIC; -- CE1#
|
98 |
|
|
Ce2 : IN STD_LOGIC; -- CE2
|
99 |
|
|
Ce3_n : IN STD_LOGIC; -- CE3#
|
100 |
|
|
Zz : IN STD_LOGIC -- Snooze Mode
|
101 |
|
|
);
|
102 |
|
|
|
103 |
|
|
end component;
|
104 |
|
|
|
105 |
|
|
component CY7C1380D
|
106 |
|
|
GENERIC (
|
107 |
|
|
fname : string := "sram.srec"; -- File to read from
|
108 |
|
|
-- Constant Parameters
|
109 |
|
|
addr_bits : INTEGER := 19; -- This is external address
|
110 |
|
|
data_bits : INTEGER := 36;
|
111 |
|
|
|
112 |
|
|
--Clock timings for 250Mhz
|
113 |
|
|
Cyp_tCO : TIME := 2.6 ns; -- Data Output Valid After CLK Rise
|
114 |
|
|
|
115 |
|
|
Cyp_tCYC : TIME := 4.0 ns; -- Clock cycle time
|
116 |
|
|
Cyp_tCH : TIME := 1.7 ns; -- Clock HIGH time
|
117 |
|
|
Cyp_tCL : TIME := 1.7 ns; -- Clock LOW time
|
118 |
|
|
|
119 |
|
|
Cyp_tCHZ : TIME := 2.6 ns; -- Clock to High-Z
|
120 |
|
|
Cyp_tCLZ : TIME := 1.0 ns; -- Clock to Low-Z
|
121 |
|
|
Cyp_tOEHZ : TIME := 2.6 ns; -- OE# HIGH to Output High-Z
|
122 |
|
|
Cyp_tOELZ : TIME := 0.0 ns; -- OE# LOW to Output Low-Z
|
123 |
|
|
Cyp_tOEV : TIME := 2.6 ns; -- OE# LOW to Output Valid
|
124 |
|
|
|
125 |
|
|
Cyp_tAS : TIME := 1.2 ns; -- Address Set-up Before CLK Rise
|
126 |
|
|
Cyp_tADS : TIME := 1.2 ns; -- ADSC#, ADSP# Set-up Before CLK Rise
|
127 |
|
|
Cyp_tADVS : TIME := 1.2 ns; -- ADV# Set-up Before CLK Rise
|
128 |
|
|
Cyp_tWES : TIME := 1.2 ns; -- BWx#, GW#, BWE# Set-up Before CLK Rise
|
129 |
|
|
Cyp_tDS : TIME := 1.2 ns; -- Data Input Set-up Before CLK Rise
|
130 |
|
|
Cyp_tCES : TIME := 1.2 ns; -- Chip Enable Set-up
|
131 |
|
|
|
132 |
|
|
Cyp_tAH : TIME := 0.3 ns; -- Address Hold After CLK Rise
|
133 |
|
|
Cyp_tADH : TIME := 0.3 ns; -- ADSC#, ADSP# Hold After CLK Rise
|
134 |
|
|
Cyp_tADVH : TIME := 0.3 ns; -- ADV# Hold After CLK Rise
|
135 |
|
|
Cyp_tWEH : TIME := 0.3 ns; -- BWx#, GW#, BWE# Hold After CLK Rise
|
136 |
|
|
Cyp_tDH : TIME := 0.3 ns; -- Data Input Hold After CLK Rise
|
137 |
|
|
Cyp_tCEH : TIME := 0.3 ns -- Chip Enable Hold After CLK Rise
|
138 |
|
|
|
139 |
|
|
);
|
140 |
|
|
PORT (iZZ : IN STD_LOGIC;
|
141 |
|
|
iMode : IN STD_LOGIC;
|
142 |
|
|
iADDR : IN STD_LOGIC_VECTOR ((addr_bits -1) downto 0);
|
143 |
|
|
inGW : IN STD_LOGIC;
|
144 |
|
|
inBWE : IN STD_LOGIC;
|
145 |
|
|
inBWd : IN STD_LOGIC;
|
146 |
|
|
inBWc : IN STD_LOGIC;
|
147 |
|
|
inBWb : IN STD_LOGIC;
|
148 |
|
|
inBWa : IN STD_LOGIC;
|
149 |
|
|
inCE1 : IN STD_LOGIC;
|
150 |
|
|
iCE2 : IN STD_LOGIC;
|
151 |
|
|
inCE3 : IN STD_LOGIC;
|
152 |
|
|
inADSP : IN STD_LOGIC;
|
153 |
|
|
inADSC : IN STD_LOGIC;
|
154 |
|
|
inADV : IN STD_LOGIC;
|
155 |
|
|
inOE : IN STD_LOGIC;
|
156 |
|
|
ioDQ : INOUT STD_LOGIC_VECTOR ((data_bits-1) downto 0);
|
157 |
|
|
iCLK : IN STD_LOGIC);
|
158 |
|
|
|
159 |
|
|
end component;
|
160 |
|
|
|
161 |
|
|
end;
|
162 |
|
|
|
163 |
|
|
-- pragma translate_on
|