1 |
2 |
dimamali |
-- Copyright 2000. GSI Technology
|
2 |
|
|
-- GSI Appications
|
3 |
|
|
-- apps@gsitechnology.com
|
4 |
|
|
-- v 1.0 4/23/2002 Jeff Duagherty 1) based on G16272
|
5 |
|
|
LIBRARY ieee;
|
6 |
|
|
USE ieee.std_logic_1164.all;
|
7 |
|
|
ENTITY G880E18BT IS
|
8 |
|
|
GENERIC (
|
9 |
|
|
CONSTANT A_size : integer := 19;
|
10 |
|
|
CONSTANT DQ_size : integer := 9;
|
11 |
|
|
CONSTANT bank_size : integer := 1024 * 512;-- *8M /4 bytes in parallel
|
12 |
|
|
--250MHZ
|
13 |
|
|
-- CONSTANT tKQpipe : time := 2.5 ns ;
|
14 |
|
|
-- CONSTANT tKQflow : time := 5.5 ns ;
|
15 |
|
|
-- CONSTANT tKQXpipe : time := 1.5 ns ;
|
16 |
|
|
-- CONSTANT tKQXflow : time := 3.0 ns );
|
17 |
|
|
--225MHZ
|
18 |
|
|
-- CONSTANT tKQpipe : time := 2.7 ns ;
|
19 |
|
|
-- CONSTANT tKQflow : time := 6.0 ns ;
|
20 |
|
|
-- CONSTANT tKQXpipe : time := 1.5 ns ;
|
21 |
|
|
-- CONSTANT tKQXflow : time := 3.0 ns );
|
22 |
|
|
--200MHZ
|
23 |
|
|
-- CONSTANT tKQpipe : time := 3.0 ns ;
|
24 |
|
|
-- CONSTANT tKQflow : time := 6.5 ns ;
|
25 |
|
|
-- CONSTANT tKQXpipe : time := 1.5 ns ;
|
26 |
|
|
-- CONSTANT tKQXflow : time := 3.0 ns );
|
27 |
|
|
--166MHZ
|
28 |
|
|
CONSTANT tKQpipe : time := 3.4 ns ;
|
29 |
|
|
CONSTANT tKQflow : time := 7.0 ns ;
|
30 |
|
|
CONSTANT tKQXpipe : time := 1.5 ns ;
|
31 |
|
|
CONSTANT tKQXflow : time := 3.0 ns );
|
32 |
|
|
--150MHZ
|
33 |
|
|
-- CONSTANT tKQpipe : time := 3.8 ns ;
|
34 |
|
|
-- CONSTANT tKQflow : time := 6.7 ns ;
|
35 |
|
|
-- CONSTANT tKQXpipe : time := 1.5 ns ;
|
36 |
|
|
-- CONSTANT tKQXflow : time := 3.0 ns );
|
37 |
|
|
--133MHZ
|
38 |
|
|
-- CONSTANT tKQpipe : time := 4.0 ns ;
|
39 |
|
|
-- CONSTANT tKQflow : time := 8.5 ns ;
|
40 |
|
|
-- CONSTANT tKQXpipe : time := 1.5 ns ;
|
41 |
|
|
-- CONSTANT tKQXflow : time := 3.0 ns );
|
42 |
|
|
PORT (
|
43 |
|
|
SIGNAL A88 : IN std_logic_vector(A_size - 1 DOWNTO 0);-- address
|
44 |
|
|
SIGNAL DQa : INOUT std_logic_vector(DQ_size DOWNTO 1) BUS;-- byte A data
|
45 |
|
|
SIGNAL DQb : INOUT std_logic_vector(DQ_size DOWNTO 1) BUS;-- byte B data
|
46 |
|
|
SIGNAL nBa : IN std_logic;-- bank A write enable
|
47 |
|
|
SIGNAL nBb : IN std_logic;-- bank B write enable
|
48 |
|
|
SIGNAL CK : IN std_logic;-- clock
|
49 |
|
|
SIGNAL nBW : IN std_logic;-- byte write enable
|
50 |
|
|
SIGNAL nGW : IN std_logic;-- Global write enable
|
51 |
|
|
SIGNAL nE1 : IN std_logic;-- chip enable 1
|
52 |
|
|
SIGNAL E2 : IN std_logic;-- chip enable 1
|
53 |
|
|
SIGNAL nE3 : IN std_logic;-- chip enable 1
|
54 |
|
|
SIGNAL nG : IN std_logic;-- output enable
|
55 |
|
|
SIGNAL nADV : IN std_logic;-- Advance not / load
|
56 |
|
|
SIGNAL nADSC : IN std_logic; -- ONLY FOR BURST DEVICES
|
57 |
|
|
SIGNAL nADSP : IN std_logic; -- ONLY FOR BURST DEVICES
|
58 |
|
|
SIGNAL ZZ : IN std_logic;-- power down
|
59 |
|
|
SIGNAL nFT : IN std_logic;-- Pipeline / Flow through
|
60 |
|
|
SIGNAL nLBO : IN std_logic);-- Linear Burst Order not
|
61 |
|
|
|
62 |
|
|
END G880E18BT;
|
63 |
|
|
|
64 |
|
|
LIBRARY GSI;
|
65 |
|
|
LIBRARY Std;
|
66 |
|
|
ARCHITECTURE BURST_8MEG_x18 OF G880E18BT IS
|
67 |
|
|
USE GSI.FUNCTIONS.ALL;
|
68 |
|
|
USE Std.textio.ALL;
|
69 |
|
|
component VHDL_BURST_CORE
|
70 |
|
|
generic (
|
71 |
|
|
CONSTANT bank_size : integer := 1024 * 512;-- *8M /4 bytes in parallel
|
72 |
|
|
CONSTANT A_size : integer := 19;
|
73 |
|
|
CONSTANT DQ_size : integer := 9);
|
74 |
|
|
port (
|
75 |
|
|
signal A : in std_logic_vector(A_size - 1 downto 0); -- address
|
76 |
|
|
signal DQa : inout std_logic_vector(DQ_size downto 1) bus; -- byte A data
|
77 |
|
|
signal DQb : inout std_logic_vector(DQ_size downto 1) bus; -- byte B data
|
78 |
|
|
signal DQc : inout std_logic_vector(DQ_size downto 1) bus; -- byte C data
|
79 |
|
|
signal DQd : inout std_logic_vector(DQ_size downto 1) bus; -- byte D data
|
80 |
|
|
signal DQe : inout std_logic_vector(DQ_size downto 1) bus; -- byte E data
|
81 |
|
|
signal DQf : inout std_logic_vector(DQ_size downto 1) bus; -- byte F data
|
82 |
|
|
signal DQg : inout std_logic_vector(DQ_size downto 1) bus; -- byte G data
|
83 |
|
|
signal DQh : inout std_logic_vector(DQ_size downto 1) bus; -- byte H data
|
84 |
|
|
signal nBa : in std_logic; -- bank A write enable
|
85 |
|
|
signal nBb : in std_logic; -- bank B write enable
|
86 |
|
|
signal nBc : in std_logic; -- bank C write enable
|
87 |
|
|
signal nBd : in std_logic; -- bank D write enable
|
88 |
|
|
signal nBe : in std_logic;
|
89 |
|
|
signal nBf : in std_logic;
|
90 |
|
|
signal nBg : in std_logic;
|
91 |
|
|
signal nBh : in std_logic;
|
92 |
|
|
signal CK : in std_logic; -- clock
|
93 |
|
|
signal nBW : in std_logic; -- byte write enable
|
94 |
|
|
signal nGW : in std_logic; -- Global write enable
|
95 |
|
|
signal nE1 : in std_logic; -- chip enable 1
|
96 |
|
|
signal E2 : in std_logic; -- chip enable 2
|
97 |
|
|
signal nE3 : in std_logic; -- chip enable 3
|
98 |
|
|
signal nG : in std_logic; -- output enable
|
99 |
|
|
signal nADV : in std_logic; -- Advance not / load
|
100 |
|
|
signal nADSC : in std_logic; -- ONLY FOR BURST DEVICES
|
101 |
|
|
signal nADSP : in std_logic; -- ONLY FOR BURST DEVICES
|
102 |
|
|
signal ZZ : in std_logic; -- power down
|
103 |
|
|
signal nFT : in std_logic; -- Pipeline / Flow through
|
104 |
|
|
signal nLBO : in std_logic; -- Linear Burst Order not
|
105 |
|
|
signal SCD : in std_logic; -- ONLY FOR BURST DEVICES
|
106 |
|
|
SIGNAL HighZ : std_logic_vector(DQ_size downto 1) ;
|
107 |
|
|
signal tKQ : time;
|
108 |
|
|
signal tKQX : time);
|
109 |
|
|
end component;
|
110 |
|
|
|
111 |
|
|
SIGNAL HighZ : std_logic_vector(DQ_size downto 1);
|
112 |
|
|
SIGNAL nBc : std_logic := '1';
|
113 |
|
|
SIGNAL nBd : std_logic := '1';
|
114 |
|
|
SIGNAL nBe : std_logic := '1';
|
115 |
|
|
SIGNAL nBf : std_logic := '1';
|
116 |
|
|
SIGNAL nBg : std_logic := '1';
|
117 |
|
|
SIGNAL nBh : std_logic := '1';
|
118 |
|
|
SIGNAL SCD : std_logic := '0';-- ONLY FOR BURST DEVICES
|
119 |
|
|
SIGNAL DQc : std_logic_vector(DQ_size DOWNTO 1);-- byte C data
|
120 |
|
|
SIGNAL DQd : std_logic_vector(DQ_size DOWNTO 1);-- byte D data
|
121 |
|
|
SIGNAL DQe : std_logic_vector(DQ_size DOWNTO 1);-- byte E data
|
122 |
|
|
SIGNAL DQf : std_logic_vector(DQ_size DOWNTO 1);-- byte F data
|
123 |
|
|
SIGNAL DQg : std_logic_vector(DQ_size DOWNTO 1);-- byte G data
|
124 |
|
|
SIGNAL DQh : std_logic_vector(DQ_size DOWNTO 1);-- byte H data
|
125 |
|
|
signal A : std_logic_vector(A_size - 1 downto 0);
|
126 |
|
|
signal tKQ : time;
|
127 |
|
|
signal tKQX : time;
|
128 |
|
|
begin
|
129 |
|
|
tKQ <= TERNARY(nFT, tKQpipe, tKQflow);
|
130 |
|
|
tKQX <= TERNARY(nFT, tKQXpipe, tKQXflow);
|
131 |
|
|
HighZ <= to_stdlogicvector( "ZZZZZZZZZZ" ,DQ_size);
|
132 |
|
|
A <= to_stdlogicvector(A88, A_size);
|
133 |
|
|
CORE_CALL : VHDL_BURST_CORE port map (
|
134 |
|
|
A, DQA, DQB, DQC, DQD, DQE, DQF, DQG, DQH, NBA, NBB, NBC, NBD, NBE, NBF, NBG, NBH, CK, NBW, NGW, NE1, E2, NE3, NG, NADV, NADSC, NADSP, ZZ, NFT, NLBO, SCD, HighZ, tKQ, tKQX);
|
135 |
|
|
|
136 |
|
|
END BURST_8MEG_x18;
|