| 1 |
62 |
olivier.gi |
/*******************************************************************************
|
| 2 |
|
|
* This file is owned and controlled by Xilinx and must be used *
|
| 3 |
|
|
* solely for design, simulation, implementation and creation of *
|
| 4 |
|
|
* design files limited to Xilinx devices or technologies. Use *
|
| 5 |
|
|
* with non-Xilinx devices or technologies is expressly prohibited *
|
| 6 |
|
|
* and immediately terminates your license. *
|
| 7 |
|
|
* *
|
| 8 |
|
|
* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" *
|
| 9 |
|
|
* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR *
|
| 10 |
|
|
* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION *
|
| 11 |
|
|
* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION *
|
| 12 |
|
|
* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS *
|
| 13 |
|
|
* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, *
|
| 14 |
|
|
* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE *
|
| 15 |
|
|
* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY *
|
| 16 |
|
|
* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE *
|
| 17 |
|
|
* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR *
|
| 18 |
|
|
* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF *
|
| 19 |
|
|
* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *
|
| 20 |
|
|
* FOR A PARTICULAR PURPOSE. *
|
| 21 |
|
|
* *
|
| 22 |
|
|
* Xilinx products are not intended for use in life support *
|
| 23 |
|
|
* appliances, devices, or systems. Use in such applications are *
|
| 24 |
|
|
* expressly prohibited. *
|
| 25 |
|
|
* *
|
| 26 |
|
|
* (c) Copyright 1995-2009 Xilinx, Inc. *
|
| 27 |
|
|
* All rights reserved. *
|
| 28 |
|
|
*******************************************************************************/
|
| 29 |
|
|
// The synthesis directives "translate_off/translate_on" specified below are
|
| 30 |
|
|
// supported by Xilinx, Mentor Graphics and Synplicity synthesis
|
| 31 |
|
|
// tools. Ensure they are correct for your synthesis tool(s).
|
| 32 |
|
|
|
| 33 |
|
|
// You must compile the wrapper file spartan3adsp_dmem.v when simulating
|
| 34 |
|
|
// the core, spartan3adsp_dmem. When compiling the wrapper file, be sure to
|
| 35 |
|
|
// reference the XilinxCoreLib Verilog simulation library. For detailed
|
| 36 |
|
|
// instructions, please refer to the "CORE Generator Help".
|
| 37 |
|
|
|
| 38 |
|
|
`timescale 1ns/1ps
|
| 39 |
|
|
|
| 40 |
|
|
module spartan3adsp_dmem(
|
| 41 |
|
|
clka,
|
| 42 |
|
|
ena,
|
| 43 |
|
|
wea,
|
| 44 |
|
|
addra,
|
| 45 |
|
|
dina,
|
| 46 |
|
|
douta);
|
| 47 |
|
|
|
| 48 |
|
|
|
| 49 |
|
|
input clka;
|
| 50 |
|
|
input ena;
|
| 51 |
|
|
input [1 : 0] wea;
|
| 52 |
|
|
input [9 : 0] addra;
|
| 53 |
|
|
input [15 : 0] dina;
|
| 54 |
|
|
output [15 : 0] douta;
|
| 55 |
|
|
|
| 56 |
|
|
// synthesis translate_off
|
| 57 |
|
|
|
| 58 |
|
|
BLK_MEM_GEN_V3_3 #(
|
| 59 |
|
|
.C_ADDRA_WIDTH(10),
|
| 60 |
|
|
.C_ADDRB_WIDTH(10),
|
| 61 |
|
|
.C_ALGORITHM(1),
|
| 62 |
|
|
.C_BYTE_SIZE(8),
|
| 63 |
|
|
.C_COMMON_CLK(0),
|
| 64 |
|
|
.C_DEFAULT_DATA("0"),
|
| 65 |
|
|
.C_DISABLE_WARN_BHV_COLL(0),
|
| 66 |
|
|
.C_DISABLE_WARN_BHV_RANGE(0),
|
| 67 |
|
|
.C_FAMILY("spartan3"),
|
| 68 |
|
|
.C_HAS_ENA(1),
|
| 69 |
|
|
.C_HAS_ENB(0),
|
| 70 |
|
|
.C_HAS_INJECTERR(0),
|
| 71 |
|
|
.C_HAS_MEM_OUTPUT_REGS_A(0),
|
| 72 |
|
|
.C_HAS_MEM_OUTPUT_REGS_B(0),
|
| 73 |
|
|
.C_HAS_MUX_OUTPUT_REGS_A(0),
|
| 74 |
|
|
.C_HAS_MUX_OUTPUT_REGS_B(0),
|
| 75 |
|
|
.C_HAS_REGCEA(0),
|
| 76 |
|
|
.C_HAS_REGCEB(0),
|
| 77 |
|
|
.C_HAS_RSTA(0),
|
| 78 |
|
|
.C_HAS_RSTB(0),
|
| 79 |
|
|
.C_INITA_VAL("0"),
|
| 80 |
|
|
.C_INITB_VAL("0"),
|
| 81 |
|
|
.C_INIT_FILE_NAME("no_coe_file_loaded"),
|
| 82 |
|
|
.C_LOAD_INIT_FILE(0),
|
| 83 |
|
|
.C_MEM_TYPE(0),
|
| 84 |
|
|
.C_MUX_PIPELINE_STAGES(0),
|
| 85 |
|
|
.C_PRIM_TYPE(1),
|
| 86 |
|
|
.C_READ_DEPTH_A(1024),
|
| 87 |
|
|
.C_READ_DEPTH_B(1024),
|
| 88 |
|
|
.C_READ_WIDTH_A(16),
|
| 89 |
|
|
.C_READ_WIDTH_B(16),
|
| 90 |
|
|
.C_RSTRAM_A(0),
|
| 91 |
|
|
.C_RSTRAM_B(0),
|
| 92 |
|
|
.C_RST_PRIORITY_A("CE"),
|
| 93 |
|
|
.C_RST_PRIORITY_B("CE"),
|
| 94 |
|
|
.C_RST_TYPE("SYNC"),
|
| 95 |
|
|
.C_SIM_COLLISION_CHECK("ALL"),
|
| 96 |
|
|
.C_USE_BYTE_WEA(1),
|
| 97 |
|
|
.C_USE_BYTE_WEB(1),
|
| 98 |
|
|
.C_USE_DEFAULT_DATA(0),
|
| 99 |
|
|
.C_USE_ECC(0),
|
| 100 |
|
|
.C_WEA_WIDTH(2),
|
| 101 |
|
|
.C_WEB_WIDTH(2),
|
| 102 |
|
|
.C_WRITE_DEPTH_A(1024),
|
| 103 |
|
|
.C_WRITE_DEPTH_B(1024),
|
| 104 |
|
|
.C_WRITE_MODE_A("WRITE_FIRST"),
|
| 105 |
|
|
.C_WRITE_MODE_B("WRITE_FIRST"),
|
| 106 |
|
|
.C_WRITE_WIDTH_A(16),
|
| 107 |
|
|
.C_WRITE_WIDTH_B(16),
|
| 108 |
|
|
.C_XDEVICEFAMILY("spartan3adsp"))
|
| 109 |
|
|
inst (
|
| 110 |
|
|
.CLKA(clka),
|
| 111 |
|
|
.ENA(ena),
|
| 112 |
|
|
.WEA(wea),
|
| 113 |
|
|
.ADDRA(addra),
|
| 114 |
|
|
.DINA(dina),
|
| 115 |
|
|
.DOUTA(douta),
|
| 116 |
|
|
.RSTA(),
|
| 117 |
|
|
.REGCEA(),
|
| 118 |
|
|
.CLKB(),
|
| 119 |
|
|
.RSTB(),
|
| 120 |
|
|
.ENB(),
|
| 121 |
|
|
.REGCEB(),
|
| 122 |
|
|
.WEB(),
|
| 123 |
|
|
.ADDRB(),
|
| 124 |
|
|
.DINB(),
|
| 125 |
|
|
.DOUTB(),
|
| 126 |
|
|
.INJECTSBITERR(),
|
| 127 |
|
|
.INJECTDBITERR(),
|
| 128 |
|
|
.SBITERR(),
|
| 129 |
|
|
.DBITERR(),
|
| 130 |
|
|
.RDADDRECC());
|
| 131 |
|
|
|
| 132 |
|
|
|
| 133 |
|
|
// synthesis translate_on
|
| 134 |
|
|
|
| 135 |
|
|
// XST black box declaration
|
| 136 |
|
|
// box_type "black_box"
|
| 137 |
|
|
// synthesis attribute box_type of spartan3adsp_dmem is "black_box"
|
| 138 |
|
|
|
| 139 |
|
|
endmodule
|
| 140 |
|
|
|