1 |
627 |
stekern |
/*******************************************************************************
|
2 |
|
|
* (c) Copyright 1995 - 2010 Xilinx, Inc. All rights reserved. *
|
3 |
|
|
* *
|
4 |
|
|
* This file contains confidential and proprietary information *
|
5 |
|
|
* of Xilinx, Inc. and is protected under U.S. and *
|
6 |
|
|
* international copyright and other intellectual property *
|
7 |
|
|
* laws. *
|
8 |
|
|
* *
|
9 |
|
|
* DISCLAIMER *
|
10 |
|
|
* This disclaimer is not a license and does not grant any *
|
11 |
|
|
* rights to the materials distributed herewith. Except as *
|
12 |
|
|
* otherwise provided in a valid license issued to you by *
|
13 |
|
|
* Xilinx, and to the maximum extent permitted by applicable *
|
14 |
|
|
* law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND *
|
15 |
|
|
* WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES *
|
16 |
|
|
* AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING *
|
17 |
|
|
* BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- *
|
18 |
|
|
* INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and *
|
19 |
|
|
* (2) Xilinx shall not be liable (whether in contract or tort, *
|
20 |
|
|
* including negligence, or under any other theory of *
|
21 |
|
|
* liability) for any loss or damage of any kind or nature *
|
22 |
|
|
* related to, arising under or in connection with these *
|
23 |
|
|
* materials, including for any direct, or any indirect, *
|
24 |
|
|
* special, incidental, or consequential loss or damage *
|
25 |
|
|
* (including loss of data, profits, goodwill, or any type of *
|
26 |
|
|
* loss or damage suffered as a result of any action brought *
|
27 |
|
|
* by a third party) even if such damage or loss was *
|
28 |
|
|
* reasonably foreseeable or Xilinx had been advised of the *
|
29 |
|
|
* possibility of the same. *
|
30 |
|
|
* *
|
31 |
|
|
* CRITICAL APPLICATIONS *
|
32 |
|
|
* Xilinx products are not designed or intended to be fail- *
|
33 |
|
|
* safe, or for use in any application requiring fail-safe *
|
34 |
|
|
* performance, such as life-support or safety devices or *
|
35 |
|
|
* systems, Class III medical devices, nuclear facilities, *
|
36 |
|
|
* applications related to the deployment of airbags, or any *
|
37 |
|
|
* other applications that could lead to death, personal *
|
38 |
|
|
* injury, or severe property or environmental damage *
|
39 |
|
|
* (individually and collectively, "Critical *
|
40 |
|
|
* Applications"). Customer assumes the sole risk and *
|
41 |
|
|
* liability of any use of Xilinx products in Critical *
|
42 |
|
|
* Applications, subject only to applicable laws and *
|
43 |
|
|
* regulations governing limitations on product liability. *
|
44 |
|
|
* *
|
45 |
|
|
* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS *
|
46 |
|
|
* PART OF THIS FILE AT ALL TIMES. *
|
47 |
|
|
*******************************************************************************/
|
48 |
|
|
// The synthesis directives "translate_off/translate_on" specified below are
|
49 |
|
|
// supported by Xilinx, Mentor Graphics and Synplicity synthesis
|
50 |
|
|
// tools. Ensure they are correct for your synthesis tool(s).
|
51 |
|
|
|
52 |
|
|
// You must compile the wrapper file xilinx_ddr2_if_cache.v when simulating
|
53 |
|
|
// the core, xilinx_ddr2_if_cache. When compiling the wrapper file, be sure to
|
54 |
|
|
// reference the XilinxCoreLib Verilog simulation library. For detailed
|
55 |
|
|
// instructions, please refer to the "CORE Generator Help".
|
56 |
|
|
|
57 |
|
|
`timescale 1ns/1ps
|
58 |
|
|
|
59 |
|
|
module xilinx_ddr2_if_cache(
|
60 |
|
|
clka,
|
61 |
|
|
ena,
|
62 |
|
|
wea,
|
63 |
|
|
addra,
|
64 |
|
|
dina,
|
65 |
|
|
douta,
|
66 |
|
|
clkb,
|
67 |
|
|
enb,
|
68 |
|
|
web,
|
69 |
|
|
addrb,
|
70 |
|
|
dinb,
|
71 |
|
|
doutb);
|
72 |
|
|
|
73 |
|
|
|
74 |
|
|
input clka;
|
75 |
|
|
input ena;
|
76 |
|
|
input [3 : 0] wea;
|
77 |
|
|
input [11 : 0] addra;
|
78 |
|
|
input [31 : 0] dina;
|
79 |
|
|
output [31 : 0] douta;
|
80 |
|
|
input clkb;
|
81 |
|
|
input enb;
|
82 |
|
|
input [15 : 0] web;
|
83 |
|
|
input [9 : 0] addrb;
|
84 |
|
|
input [127 : 0] dinb;
|
85 |
|
|
output [127 : 0] doutb;
|
86 |
|
|
|
87 |
|
|
// synthesis translate_off
|
88 |
|
|
|
89 |
|
|
BLK_MEM_GEN_V4_3 #(
|
90 |
|
|
.C_ADDRA_WIDTH(12),
|
91 |
|
|
.C_ADDRB_WIDTH(10),
|
92 |
|
|
.C_ALGORITHM(1),
|
93 |
|
|
.C_BYTE_SIZE(8),
|
94 |
|
|
.C_COMMON_CLK(0),
|
95 |
|
|
.C_DEFAULT_DATA("0"),
|
96 |
|
|
.C_DISABLE_WARN_BHV_COLL(0),
|
97 |
|
|
.C_DISABLE_WARN_BHV_RANGE(0),
|
98 |
|
|
.C_FAMILY("spartan6"),
|
99 |
|
|
.C_HAS_ENA(1),
|
100 |
|
|
.C_HAS_ENB(1),
|
101 |
|
|
.C_HAS_INJECTERR(0),
|
102 |
|
|
.C_HAS_MEM_OUTPUT_REGS_A(0),
|
103 |
|
|
.C_HAS_MEM_OUTPUT_REGS_B(0),
|
104 |
|
|
.C_HAS_MUX_OUTPUT_REGS_A(0),
|
105 |
|
|
.C_HAS_MUX_OUTPUT_REGS_B(0),
|
106 |
|
|
.C_HAS_REGCEA(0),
|
107 |
|
|
.C_HAS_REGCEB(0),
|
108 |
|
|
.C_HAS_RSTA(0),
|
109 |
|
|
.C_HAS_RSTB(0),
|
110 |
|
|
.C_HAS_SOFTECC_INPUT_REGS_A(0),
|
111 |
|
|
.C_HAS_SOFTECC_OUTPUT_REGS_B(0),
|
112 |
|
|
.C_INITA_VAL("0"),
|
113 |
|
|
.C_INITB_VAL("0"),
|
114 |
|
|
.C_INIT_FILE_NAME("no_coe_file_loaded"),
|
115 |
|
|
.C_LOAD_INIT_FILE(0),
|
116 |
|
|
.C_MEM_TYPE(2),
|
117 |
|
|
.C_MUX_PIPELINE_STAGES(0),
|
118 |
|
|
.C_PRIM_TYPE(1),
|
119 |
|
|
.C_READ_DEPTH_A(4096),
|
120 |
|
|
.C_READ_DEPTH_B(1024),
|
121 |
|
|
.C_READ_WIDTH_A(32),
|
122 |
|
|
.C_READ_WIDTH_B(128),
|
123 |
|
|
.C_RSTRAM_A(0),
|
124 |
|
|
.C_RSTRAM_B(0),
|
125 |
|
|
.C_RST_PRIORITY_A("CE"),
|
126 |
|
|
.C_RST_PRIORITY_B("CE"),
|
127 |
|
|
.C_RST_TYPE("SYNC"),
|
128 |
|
|
.C_SIM_COLLISION_CHECK("ALL"),
|
129 |
|
|
.C_USE_BYTE_WEA(1),
|
130 |
|
|
.C_USE_BYTE_WEB(1),
|
131 |
|
|
.C_USE_DEFAULT_DATA(0),
|
132 |
|
|
.C_USE_ECC(0),
|
133 |
|
|
.C_USE_SOFTECC(0),
|
134 |
|
|
.C_WEA_WIDTH(4),
|
135 |
|
|
.C_WEB_WIDTH(16),
|
136 |
|
|
.C_WRITE_DEPTH_A(4096),
|
137 |
|
|
.C_WRITE_DEPTH_B(1024),
|
138 |
|
|
.C_WRITE_MODE_A("WRITE_FIRST"),
|
139 |
|
|
.C_WRITE_MODE_B("WRITE_FIRST"),
|
140 |
|
|
.C_WRITE_WIDTH_A(32),
|
141 |
|
|
.C_WRITE_WIDTH_B(128),
|
142 |
|
|
.C_XDEVICEFAMILY("spartan6"))
|
143 |
|
|
inst (
|
144 |
|
|
.CLKA(clka),
|
145 |
|
|
.ENA(ena),
|
146 |
|
|
.WEA(wea),
|
147 |
|
|
.ADDRA(addra),
|
148 |
|
|
.DINA(dina),
|
149 |
|
|
.DOUTA(douta),
|
150 |
|
|
.CLKB(clkb),
|
151 |
|
|
.ENB(enb),
|
152 |
|
|
.WEB(web),
|
153 |
|
|
.ADDRB(addrb),
|
154 |
|
|
.DINB(dinb),
|
155 |
|
|
.DOUTB(doutb),
|
156 |
|
|
.RSTA(),
|
157 |
|
|
.REGCEA(),
|
158 |
|
|
.RSTB(),
|
159 |
|
|
.REGCEB(),
|
160 |
|
|
.INJECTSBITERR(),
|
161 |
|
|
.INJECTDBITERR(),
|
162 |
|
|
.SBITERR(),
|
163 |
|
|
.DBITERR(),
|
164 |
|
|
.RDADDRECC());
|
165 |
|
|
|
166 |
|
|
|
167 |
|
|
// synthesis translate_on
|
168 |
|
|
|
169 |
|
|
// XST black box declaration
|
170 |
|
|
// box_type "black_box"
|
171 |
|
|
// synthesis attribute box_type of xilinx_ddr2_if_cache is "black_box"
|
172 |
|
|
|
173 |
|
|
endmodule
|
174 |
|
|
|