| 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 |
|
|
|