source: PlatformSupport/CustomPeripherals/pcores/w3_clock_controller_axi_v4_00_a/hdl/verilog/prog_clk_config_boot.v

Last change on this file was 4295, checked in by murphpo, 9 years ago

First working version of eeprom-enabled cm-pll-supporting clock config core

File size: 254.6 KB
Line 
1//
2///////////////////////////////////////////////////////////////////////////////////////////
3// Copyright © 2010-2013, Xilinx, Inc.
4// This file contains confidential and proprietary information of Xilinx, Inc. and is
5// protected under U.S. and international copyright and other intellectual property laws.
6///////////////////////////////////////////////////////////////////////////////////////////
7//
8// Disclaimer:
9// This disclaimer is not a license and does not grant any rights to the materials
10// distributed herewith. Except as otherwise provided in a valid license issued to
11// you by Xilinx, and to the maximum extent permitted by applicable law: (1) THESE
12// MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL FAULTS, AND XILINX HEREBY
13// DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY,
14// INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
15// OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable
16// (whether in contract or tort, including negligence, or under any other theory
17// of liability) for any loss or damage of any kind or nature related to, arising
18// under or in connection with these materials, including for any direct, or any
19// indirect, special, incidental, or consequential loss or damage (including loss
20// of data, profits, goodwill, or any type of loss or damage suffered as a result
21// of any action brought by a third party) even if such damage or loss was
22// reasonably foreseeable or Xilinx had been advised of the possibility of the same.
23//
24// CRITICAL APPLICATIONS
25// Xilinx products are not designed or intended to be fail-safe, or for use in any
26// application requiring fail-safe performance, such as life-support or safety
27// devices or systems, Class III medical devices, nuclear facilities, applications
28// related to the deployment of airbags, or any other applications that could lead
29// to death, personal injury, or severe property or environmental damage
30// (individually and collectively, "Critical Applications"). Customer assumes the
31// sole risk and liability of any use of Xilinx products in Critical Applications,
32// subject only to applicable laws and regulations governing limitations on product
33// liability.
34//
35// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE AT ALL TIMES.
36//
37///////////////////////////////////////////////////////////////////////////////////////////
38//
39//
40// Definition of a program memory for KCPSM6 including generic parameters for the
41// convenient selection of device family, program memory size and the ability to include
42// the JTAG Loader hardware for rapid software development.
43//
44// This file is primarily for use during code development and it is recommended that the
45// appropriate simplified program memory definition be used in a final production design.
46//
47//
48//    Generic                  Values             Comments
49//    Parameter                Supported
50// 
51//    C_FAMILY                 "S6"               Spartan-6 device
52//                             "V6"               Virtex-6 device
53//                             "7S"               7-Series device
54//                                                  (Artix-7, Kintex-7, Virtex-7 or Zynq)
55//
56//    C_RAM_SIZE_KWORDS        1, 2 or 4          Size of program memory in K-instructions
57//
58//    C_JTAG_LOADER_ENABLE     0 or 1             Set to '1' to include JTAG Loader
59//
60// Notes
61//
62// If your design contains MULTIPLE KCPSM6 instances then only one should have the
63// JTAG Loader enabled at a time (i.e. make sure that C_JTAG_LOADER_ENABLE is only set to
64// '1' on one instance of the program memory). Advanced users may be interested to know
65// that it is possible to connect JTAG Loader to multiple memories and then to use the
66// JTAG Loader utility to specify which memory contents are to be modified. However,
67// this scheme does require some effort to set up and the additional connectivity of the
68// multiple BRAMs can impact the placement, routing and performance of the complete
69// design. Please contact the author at Xilinx for more detailed information.
70//
71// Regardless of the size of program memory specified by C_RAM_SIZE_KWORDS, the complete
72// 12-bit address bus is connected to KCPSM6. This enables the generic to be modified
73// without requiring changes to the fundamental hardware definition. However, when the
74// program memory is 1K then only the lower 10-bits of the address are actually used and
75// the valid address range is 000 to 3FF hex. Likewise, for a 2K program only the lower
76// 11-bits of the address are actually used and the valid address range is 000 to 7FF hex.
77//
78// Programs are stored in Block Memory (BRAM) and the number of BRAM used depends on the
79// size of the program and the device family.
80//
81// In a Spartan-6 device a BRAM is capable of holding 1K instructions. Hence a 2K program
82// will require 2 BRAMs to be used and a 4K program will require 4 BRAMs to be used. It
83// should be noted that a 4K program is not such a natural fit in a Spartan-6 device and
84// the implementation also requires a small amount of logic resulting in slightly lower
85// performance. A Spartan-6 BRAM can also be split into two 9k-bit memories suggesting
86// that a program containing up to 512 instructions could be implemented. However, there
87// is a silicon errata which makes this unsuitable and therefore it is not supported by
88// this file.
89//
90// In a Virtex-6 or any 7-Series device a BRAM is capable of holding 2K instructions so
91// obviously a 2K program requires only a single BRAM. Each BRAM can also be divided into
92// 2 smaller memories supporting programs of 1K in half of a 36k-bit BRAM (generally
93// reported as being an 18k-bit BRAM). For a program of 4K instructions, 2 BRAMs are used.
94//
95//
96// Program defined by 'S:\work\picoblaze\picoblaze_test_v2_iic\src\pb_dev\prog_clk_config_boot.psm'.
97//
98// Generated by KCPSM6 Assembler: 24 Jan 2015 - 15:50:53.
99//
100// Assembler used ROM_form template: ROM_form_JTAGLoader_14March13.v
101//
102//
103`timescale 1ps/1ps
104module prog_clk_config_boot (address, instruction, enable, rdl, clk);
105//
106parameter integer C_JTAG_LOADER_ENABLE = 1;                       
107parameter         C_FAMILY = "S6";                       
108parameter integer C_RAM_SIZE_KWORDS = 1;                       
109//
110input         clk;       
111input  [11:0] address;       
112input         enable;       
113output [17:0] instruction;       
114output        rdl;
115//
116//
117wire [15:0] address_a;
118wire        pipe_a11;
119wire [35:0] data_in_a;
120wire [35:0] data_out_a;
121wire [35:0] data_out_a_l;
122wire [35:0] data_out_a_h;
123wire [35:0] data_out_a_ll;
124wire [35:0] data_out_a_lh;
125wire [35:0] data_out_a_hl;
126wire [35:0] data_out_a_hh;
127wire [15:0] address_b;
128wire [35:0] data_in_b;
129wire [35:0] data_in_b_l;
130wire [35:0] data_in_b_ll;
131wire [35:0] data_in_b_hl;
132wire [35:0] data_out_b;
133wire [35:0] data_out_b_l;
134wire [35:0] data_out_b_ll;
135wire [35:0] data_out_b_hl;
136wire [35:0] data_in_b_h;
137wire [35:0] data_in_b_lh;
138wire [35:0] data_in_b_hh;
139wire [35:0] data_out_b_h;
140wire [35:0] data_out_b_lh;
141wire [35:0] data_out_b_hh;
142wire        enable_b;
143wire        clk_b;
144wire [7:0]  we_b;
145wire [3:0]  we_b_l;
146wire [3:0]  we_b_h;
147//
148wire [11:0] jtag_addr;
149wire        jtag_we;
150wire        jtag_clk;
151wire [17:0] jtag_din;
152wire [17:0] jtag_dout;
153wire [17:0] jtag_dout_1;
154wire [0:0]  jtag_en;
155//
156wire [0:0]  picoblaze_reset;
157wire [0:0]  rdl_bus;
158//
159parameter integer BRAM_ADDRESS_WIDTH = addr_width_calc(C_RAM_SIZE_KWORDS);
160//
161//
162function integer addr_width_calc;
163  input integer size_in_k;
164    if (size_in_k == 1) begin addr_width_calc = 10; end
165      else if (size_in_k == 2) begin addr_width_calc = 11; end
166      else if (size_in_k == 4) begin addr_width_calc = 12; end
167      else begin
168        if (C_RAM_SIZE_KWORDS != 1 && C_RAM_SIZE_KWORDS != 2 && C_RAM_SIZE_KWORDS != 4) begin
169          //#0;
170          $display("Invalid BlockRAM size. Please set to 1, 2 or 4 K words..\n");
171          $finish;
172        end
173    end
174endfunction
175//
176//
177generate
178  if (C_RAM_SIZE_KWORDS == 1) begin : ram_1k_generate
179    //
180    if (C_FAMILY == "S6") begin: s6
181      //
182      assign address_a[13:0] = {address[9:0], 4'b0000};
183      assign instruction = {data_out_a[33:32], data_out_a[15:0]};
184      assign data_in_a = {34'b0000000000000000000000000000000000, address[11:10]};
185      assign jtag_dout = {data_out_b[33:32], data_out_b[15:0]};
186      //
187      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
188        assign data_in_b = {2'b00, data_out_b[33:32], 16'b0000000000000000, data_out_b[15:0]};
189        assign address_b[13:0] = 14'b00000000000000;
190        assign we_b[3:0] = 4'b0000;
191        assign enable_b = 1'b0;
192        assign rdl = 1'b0;
193        assign clk_b = 1'b0;
194      end // no_loader;
195      //
196      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
197        assign data_in_b = {2'b00, jtag_din[17:16], 16'b0000000000000000, jtag_din[15:0]};
198        assign address_b[13:0] = {jtag_addr[9:0], 4'b0000};
199        assign we_b[3:0] = {jtag_we, jtag_we, jtag_we, jtag_we};
200        assign enable_b = jtag_en[0];
201        assign rdl = rdl_bus[0];
202        assign clk_b = jtag_clk;
203      end // loader;
204      //
205      RAMB16BWER #(.DATA_WIDTH_A        (18),
206                   .DOA_REG             (0),
207                   .EN_RSTRAM_A         ("FALSE"),
208                   .INIT_A              (9'b000000000),
209                   .RST_PRIORITY_A      ("CE"),
210                   .SRVAL_A             (9'b000000000),
211                   .WRITE_MODE_A        ("WRITE_FIRST"),
212                   .DATA_WIDTH_B        (18),
213                   .DOB_REG             (0),
214                   .EN_RSTRAM_B         ("FALSE"),
215                   .INIT_B              (9'b000000000),
216                   .RST_PRIORITY_B      ("CE"),
217                   .SRVAL_B             (9'b000000000),
218                   .WRITE_MODE_B        ("WRITE_FIRST"),
219                   .RSTTYPE             ("SYNC"),
220                   .INIT_FILE           ("NONE"),
221                   .SIM_COLLISION_CHECK ("ALL"),
222                   .SIM_DEVICE          ("SPARTAN6"),
223                   .INIT_00             (256'hDDCD01C13800170160AADDA501C1183A1798B01501F81AE71B02B00601BB01EE),
224                   .INIT_01             (256'h01F81A341B042061201DD0042096D103310301003007900201F81A6E1B0360AA),
225                   .INIT_02             (256'h1910183B175A01A312101900183A17DA01F81AD01B0320252039D101204DD100),
226                   .INIT_03             (256'h12101900183A17EA01F81AE91B0321671F0101A312281920183B17EA01A31210),
227                   .INIT_04             (256'h01F81A021B0421671F0101A312281920183C173A01A312101910183B176A01A3),
228                   .INIT_05             (256'h1F0101A312281920183C178A01A312101910183B177A01A312101900183A17FA),
229                   .INIT_06             (256'h12101900183A17AA01F81AD01B0320692078D1012087D10001F81A1B1B042167),
230                   .INIT_07             (256'h01A312101900183A17BA01F81AE91B0321671F0001A312101910183B172A01A3),
231                   .INIT_08             (256'h174A01A312101900183A17CA01F81A021B0421671F0001A312101910183B173A),
232                   .INIT_09             (256'h183B171A01A312101900183A179A01F81AB61B0321671F0001A312101910183B),
233                   .INIT_0A             (256'h01003007900201F81A8B1B0321671F0001A312281920183B179A01A312101910),
234                   .INIT_0B             (256'h01AB151016001A0219081802170701F81AB61B0320D02111D00420B6D1033103),
235                   .INIT_0C             (256'h21671F0001AB152816201A0219601802175701AB151016101A0219231802171F),
236                   .INIT_0D             (256'h16001A02190A1802170901F81AD01B0320D820EBD10120FED10001F81A1B1B04),
237                   .INIT_0E             (256'h1802170B01F81AE91B0321671F0001AB151016101A02192B1802172701AB1510),
238                   .INIT_0F             (256'h1A021B0421671F0001AB151016101A0219331802172F01AB151016001A02190C),
239                   .INIT_10             (256'h1F0001AB151016101A02193B1802173701AB151016001A02190E1802170D01F8),
240                   .INIT_11             (256'h1A0219151802170F01F81AD01B0321192133D101214DD10001F81A341B042167),
241                   .INIT_12             (256'h152816201A02197E1802176901AB151016101A0219431802173F01AB15101600),
242                   .INIT_13             (256'h194B1802174701AB151016001A02191C1802171B01F81AE91B0321671F0101AB),
243                   .INIT_14             (256'h01F81A021B0421671F0101AB152816201A0219A81802179301AB151016101A02),
244                   .INIT_15             (256'h180217BD01AB151016101A0219531802174F01AB151016001A02191E1802171D),
245                   .INIT_16             (256'hDF0001921B101A10100101921B101A00100221671F0101AB152816201A0219D2),
246                   .INIT_17             (256'hB001B00001F81AAD1B04019C01F81A801B04217BDF0001921B281A2010044187),
247                   .INIT_18             (256'h1A701B04218BD1109102B02601F81A4C1B0421862186B016B005B004B003B002),
248                   .INIT_19             (256'h1B04219C3008900221921A0110009B0101DBA1A01A011000D2FFA2A0500001F8),
249                   .INIT_1A             (256'h4A9016010320E260487021A338001701190110009201ED9001C1500001F81A9F),
250                   .INIT_1B             (256'h61BD9001E10011FF107F21AB3A001901380017011601100095011000D3FFE260),
251                   .INIT_1C             (256'h90000537052005709000053705200580900005370520450615500513050F5000),
252                   .INIT_1D             (256'h01E4032001E41300D0035000051A05350D50052A900005370520450715500513),
253                   .INIT_1E             (256'h110D1203500061E5B00100009401BFF14300D502053014085000B00301E40310),
254                   .INIT_1F             (256'hB04621F83B001A0102021000D9004BA0500061F2B200B1009001000021F21040),
255                   .INIT_20             (256'h124512FF12FF12FF12FF12FF12FF12FF12FF5000D9006202D00490005000B006),
256                   .INIT_21             (256'h124512FF12FF12FF12FF12FF1201120812001233120112FF125A123D124B124A),
257                   .INIT_22             (256'h124512FF12011280120112FF125A1251124512FF12011280120112FF125A1251),
258                   .INIT_23             (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
259                   .INIT_24             (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
260                   .INIT_25             (256'h12FF12411240123F123E123D120A1200120012FF12011280120012FF125A1251),
261                   .INIT_26             (256'h120C120B1206120512041200120012FF12011201120312031203121112101230),
262                   .INIT_27             (256'h1210123012FF125A12451253125112411240123F123E123D120A120912081207),
263                   .INIT_28             (256'h1280128012021201120312031203120812701247120012011200120312001202),
264                   .INIT_29             (256'h123E123D120A120912081207120C120B1206120512041200120012FF12011202),
265                   .INIT_2A             (256'h1200120112001203120012021210123012FF125A12451253125112411240123F),
266                   .INIT_2B             (256'h12041200120012FF120112021280128012021202120312031203120812701247),
267                   .INIT_2C             (256'h12451253125112411240123F123E123D120A120912081207120C120B12061205),
268                   .INIT_2D             (256'h1203120312031240127012471200120112001203120012021210123012FF125A),
269                   .INIT_2E             (256'h192A192A192A192A192A192A192A192A190D12FF120112021280128012021202),
270                   .INIT_2F             (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
271                   .INIT_30             (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
272                   .INIT_31             (256'h192A192A192A19201920192019201920190D192A192A192A192A192A192A192A),
273                   .INIT_32             (256'h196B1963196F196C1943192019331976192019501952194119571920192A192A),
274                   .INIT_33             (256'h192A192A192A192019651972196F19431920196719691966196E196F19431920),
275                   .INIT_34             (256'h196D196119721967196F19721950192019201920192019201920190D192A192A),
276                   .INIT_35             (256'h1920193A196519741961194419201979196C1962196D19651973197319411920),
277                   .INIT_36             (256'h196F19461900190D190D19351931193019321920196E1961194A192019341932),
278                   .INIT_37             (256'h192019611974196119641920196719691966196E196F196319201964196E1975),
279                   .INIT_38             (256'h196F19631920196F194E1900190D194D194F19521950194519451920196E1969),
280                   .INIT_39             (256'h1950194519451920196E1969192019611974196119641920196719691966196E),
281                   .INIT_3A             (256'h196119661965194419201967196E1969197319551920192D1920194D194F1952),
282                   .INIT_3B             (256'h194D1920196B1963196F196C19431920196F194E1900190D19731974196C1975),
283                   .INIT_3C             (256'h1900190D1964196519741963196519741965194419201965196C19751964196F),
284                   .INIT_3D             (256'h19721975196719691966196E196F196319201967196E196919641961196F194C),
285                   .INIT_3E             (256'h1967196E196919641961196F194C1900190D19411920196E196F196919741961),
286                   .INIT_3F             (256'h19421920196E196F19691974196119721975196719691966196E196F19631920),
287                   .INITP_00            (256'h802088020082DD82200802008220080200822008020082DD82CD008365D8282A),
288                   .INITP_01            (256'h08800200082200080020B7608800200080020B34020880200802088020082200),
289                   .INITP_02            (256'hA828360360202200080020008220008002000822000800200082DD8220008002),
290                   .INITP_03            (256'hA5B6B5480B8660A888AA2E92E8E8E92AD825577692A576A8309D874A0C282AAA),
291                   .INITP_04            (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0A),
292                   .INITP_05            (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
293                   .INITP_06            (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
294                   .INITP_07            (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA))
295       kcpsm6_rom( .ADDRA               (address_a[13:0]),
296                   .ENA                 (enable),
297                   .CLKA                (clk),
298                   .DOA                 (data_out_a[31:0]),
299                   .DOPA                (data_out_a[35:32]), 
300                   .DIA                 (data_in_a[31:0]),
301                   .DIPA                (data_in_a[35:32]), 
302                   .WEA                 (4'b0000),
303                   .REGCEA              (1'b0),
304                   .RSTA                (1'b0),
305                   .ADDRB               (address_b[13:0]),
306                   .ENB                 (enable_b),
307                   .CLKB                (clk_b),
308                   .DOB                 (data_out_b[31:0]),
309                   .DOPB                (data_out_b[35:32]), 
310                   .DIB                 (data_in_b[31:0]),
311                   .DIPB                (data_in_b[35:32]), 
312                   .WEB                 (we_b[3:0]),
313                   .REGCEB              (1'b0),
314                   .RSTB                (1'b0));
315    end // s6;
316    //
317    //
318    if (C_FAMILY == "V6") begin: v6
319      //
320      assign address_a[13:0] = {address[9:0], 4'b1111};
321      assign instruction = data_out_a[17:0];
322      assign data_in_a[17:0] = {16'b0000000000000000, address[11:10]};
323      assign jtag_dout = data_out_b[17:0];
324      //
325      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
326        assign data_in_b[17:0] = data_out_b[17:0];
327        assign address_b[13:0] = 14'b11111111111111;
328        assign we_b[3:0] = 4'b0000;
329        assign enable_b = 1'b0;
330        assign rdl = 1'b0;
331        assign clk_b = 1'b0;
332      end // no_loader;
333      //
334      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
335        assign data_in_b[17:0] = jtag_din[17:0];
336        assign address_b[13:0] = {jtag_addr[9:0], 4'b1111};
337        assign we_b[3:0] = {jtag_we, jtag_we, jtag_we, jtag_we};
338        assign enable_b = jtag_en[0];
339        assign rdl = rdl_bus[0];
340        assign clk_b = jtag_clk;
341      end // loader;
342      //
343      RAMB18E1 #(.READ_WIDTH_A              (18),
344                 .WRITE_WIDTH_A             (18),
345                 .DOA_REG                   (0),
346                 .INIT_A                    (18'b000000000000000000),
347                 .RSTREG_PRIORITY_A         ("REGCE"),
348                 .SRVAL_A                   (18'b000000000000000000),
349                 .WRITE_MODE_A              ("WRITE_FIRST"),
350                 .READ_WIDTH_B              (18),
351                 .WRITE_WIDTH_B             (18),
352                 .DOB_REG                   (0),
353                 .INIT_B                    (18'b000000000000000000),
354                 .RSTREG_PRIORITY_B         ("REGCE"),
355                 .SRVAL_B                   (18'b000000000000000000),
356                 .WRITE_MODE_B              ("WRITE_FIRST"),
357                 .INIT_FILE                 ("NONE"),
358                 .SIM_COLLISION_CHECK       ("ALL"),
359                 .RAM_MODE                  ("TDP"),
360                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
361                 .SIM_DEVICE                ("VIRTEX6"),
362                 .INIT_00                   (256'hDDCD01C13800170160AADDA501C1183A1798B01501F81AE71B02B00601BB01EE),
363                 .INIT_01                   (256'h01F81A341B042061201DD0042096D103310301003007900201F81A6E1B0360AA),
364                 .INIT_02                   (256'h1910183B175A01A312101900183A17DA01F81AD01B0320252039D101204DD100),
365                 .INIT_03                   (256'h12101900183A17EA01F81AE91B0321671F0101A312281920183B17EA01A31210),
366                 .INIT_04                   (256'h01F81A021B0421671F0101A312281920183C173A01A312101910183B176A01A3),
367                 .INIT_05                   (256'h1F0101A312281920183C178A01A312101910183B177A01A312101900183A17FA),
368                 .INIT_06                   (256'h12101900183A17AA01F81AD01B0320692078D1012087D10001F81A1B1B042167),
369                 .INIT_07                   (256'h01A312101900183A17BA01F81AE91B0321671F0001A312101910183B172A01A3),
370                 .INIT_08                   (256'h174A01A312101900183A17CA01F81A021B0421671F0001A312101910183B173A),
371                 .INIT_09                   (256'h183B171A01A312101900183A179A01F81AB61B0321671F0001A312101910183B),
372                 .INIT_0A                   (256'h01003007900201F81A8B1B0321671F0001A312281920183B179A01A312101910),
373                 .INIT_0B                   (256'h01AB151016001A0219081802170701F81AB61B0320D02111D00420B6D1033103),
374                 .INIT_0C                   (256'h21671F0001AB152816201A0219601802175701AB151016101A0219231802171F),
375                 .INIT_0D                   (256'h16001A02190A1802170901F81AD01B0320D820EBD10120FED10001F81A1B1B04),
376                 .INIT_0E                   (256'h1802170B01F81AE91B0321671F0001AB151016101A02192B1802172701AB1510),
377                 .INIT_0F                   (256'h1A021B0421671F0001AB151016101A0219331802172F01AB151016001A02190C),
378                 .INIT_10                   (256'h1F0001AB151016101A02193B1802173701AB151016001A02190E1802170D01F8),
379                 .INIT_11                   (256'h1A0219151802170F01F81AD01B0321192133D101214DD10001F81A341B042167),
380                 .INIT_12                   (256'h152816201A02197E1802176901AB151016101A0219431802173F01AB15101600),
381                 .INIT_13                   (256'h194B1802174701AB151016001A02191C1802171B01F81AE91B0321671F0101AB),
382                 .INIT_14                   (256'h01F81A021B0421671F0101AB152816201A0219A81802179301AB151016101A02),
383                 .INIT_15                   (256'h180217BD01AB151016101A0219531802174F01AB151016001A02191E1802171D),
384                 .INIT_16                   (256'hDF0001921B101A10100101921B101A00100221671F0101AB152816201A0219D2),
385                 .INIT_17                   (256'hB001B00001F81AAD1B04019C01F81A801B04217BDF0001921B281A2010044187),
386                 .INIT_18                   (256'h1A701B04218BD1109102B02601F81A4C1B0421862186B016B005B004B003B002),
387                 .INIT_19                   (256'h1B04219C3008900221921A0110009B0101DBA1A01A011000D2FFA2A0500001F8),
388                 .INIT_1A                   (256'h4A9016010320E260487021A338001701190110009201ED9001C1500001F81A9F),
389                 .INIT_1B                   (256'h61BD9001E10011FF107F21AB3A001901380017011601100095011000D3FFE260),
390                 .INIT_1C                   (256'h90000537052005709000053705200580900005370520450615500513050F5000),
391                 .INIT_1D                   (256'h01E4032001E41300D0035000051A05350D50052A900005370520450715500513),
392                 .INIT_1E                   (256'h110D1203500061E5B00100009401BFF14300D502053014085000B00301E40310),
393                 .INIT_1F                   (256'hB04621F83B001A0102021000D9004BA0500061F2B200B1009001000021F21040),
394                 .INIT_20                   (256'h124512FF12FF12FF12FF12FF12FF12FF12FF5000D9006202D00490005000B006),
395                 .INIT_21                   (256'h124512FF12FF12FF12FF12FF1201120812001233120112FF125A123D124B124A),
396                 .INIT_22                   (256'h124512FF12011280120112FF125A1251124512FF12011280120112FF125A1251),
397                 .INIT_23                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
398                 .INIT_24                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
399                 .INIT_25                   (256'h12FF12411240123F123E123D120A1200120012FF12011280120012FF125A1251),
400                 .INIT_26                   (256'h120C120B1206120512041200120012FF12011201120312031203121112101230),
401                 .INIT_27                   (256'h1210123012FF125A12451253125112411240123F123E123D120A120912081207),
402                 .INIT_28                   (256'h1280128012021201120312031203120812701247120012011200120312001202),
403                 .INIT_29                   (256'h123E123D120A120912081207120C120B1206120512041200120012FF12011202),
404                 .INIT_2A                   (256'h1200120112001203120012021210123012FF125A12451253125112411240123F),
405                 .INIT_2B                   (256'h12041200120012FF120112021280128012021202120312031203120812701247),
406                 .INIT_2C                   (256'h12451253125112411240123F123E123D120A120912081207120C120B12061205),
407                 .INIT_2D                   (256'h1203120312031240127012471200120112001203120012021210123012FF125A),
408                 .INIT_2E                   (256'h192A192A192A192A192A192A192A192A190D12FF120112021280128012021202),
409                 .INIT_2F                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
410                 .INIT_30                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
411                 .INIT_31                   (256'h192A192A192A19201920192019201920190D192A192A192A192A192A192A192A),
412                 .INIT_32                   (256'h196B1963196F196C1943192019331976192019501952194119571920192A192A),
413                 .INIT_33                   (256'h192A192A192A192019651972196F19431920196719691966196E196F19431920),
414                 .INIT_34                   (256'h196D196119721967196F19721950192019201920192019201920190D192A192A),
415                 .INIT_35                   (256'h1920193A196519741961194419201979196C1962196D19651973197319411920),
416                 .INIT_36                   (256'h196F19461900190D190D19351931193019321920196E1961194A192019341932),
417                 .INIT_37                   (256'h192019611974196119641920196719691966196E196F196319201964196E1975),
418                 .INIT_38                   (256'h196F19631920196F194E1900190D194D194F19521950194519451920196E1969),
419                 .INIT_39                   (256'h1950194519451920196E1969192019611974196119641920196719691966196E),
420                 .INIT_3A                   (256'h196119661965194419201967196E1969197319551920192D1920194D194F1952),
421                 .INIT_3B                   (256'h194D1920196B1963196F196C19431920196F194E1900190D19731974196C1975),
422                 .INIT_3C                   (256'h1900190D1964196519741963196519741965194419201965196C19751964196F),
423                 .INIT_3D                   (256'h19721975196719691966196E196F196319201967196E196919641961196F194C),
424                 .INIT_3E                   (256'h1967196E196919641961196F194C1900190D19411920196E196F196919741961),
425                 .INIT_3F                   (256'h19421920196E196F19691974196119721975196719691966196E196F19631920),
426                 .INITP_00                  (256'h802088020082DD82200802008220080200822008020082DD82CD008365D8282A),
427                 .INITP_01                  (256'h08800200082200080020B7608800200080020B34020880200802088020082200),
428                 .INITP_02                  (256'hA828360360202200080020008220008002000822000800200082DD8220008002),
429                 .INITP_03                  (256'hA5B6B5480B8660A888AA2E92E8E8E92AD825577692A576A8309D874A0C282AAA),
430                 .INITP_04                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0A),
431                 .INITP_05                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
432                 .INITP_06                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
433                 .INITP_07                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA))
434     kcpsm6_rom( .ADDRARDADDR               (address_a[13:0]),
435                 .ENARDEN                   (enable),
436                 .CLKARDCLK                 (clk),
437                 .DOADO                     (data_out_a[15:0]),
438                 .DOPADOP                   (data_out_a[17:16]), 
439                 .DIADI                     (data_in_a[15:0]),
440                 .DIPADIP                   (data_in_a[17:16]), 
441                 .WEA                       (2'b00),
442                 .REGCEAREGCE               (1'b0),
443                 .RSTRAMARSTRAM             (1'b0),
444                 .RSTREGARSTREG             (1'b0),
445                 .ADDRBWRADDR               (address_b[13:0]),
446                 .ENBWREN                   (enable_b),
447                 .CLKBWRCLK                 (clk_b),
448                 .DOBDO                     (data_out_b[15:0]),
449                 .DOPBDOP                   (data_out_b[17:16]), 
450                 .DIBDI                     (data_in_b[15:0]),
451                 .DIPBDIP                   (data_in_b[17:16]), 
452                 .WEBWE                     (we_b[3:0]),
453                 .REGCEB                    (1'b0),
454                 .RSTRAMB                   (1'b0),
455                 .RSTREGB                   (1'b0));
456    end // v6; 
457    //
458    //
459    if (C_FAMILY == "7S") begin: akv7
460      //
461      assign address_a[13:0] = {address[9:0], 4'b1111};
462      assign instruction = data_out_a[17:0];
463      assign data_in_a[17:0] = {16'b0000000000000000, address[11:10]};
464      assign jtag_dout = data_out_b[17:0];
465      //
466      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
467        assign data_in_b[17:0] = data_out_b[17:0];
468        assign address_b[13:0] = 14'b11111111111111;
469        assign we_b[3:0] = 4'b0000;
470        assign enable_b = 1'b0;
471        assign rdl = 1'b0;
472        assign clk_b = 1'b0;
473      end // no_loader;
474      //
475      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
476        assign data_in_b[17:0] = jtag_din[17:0];
477        assign address_b[13:0] = {jtag_addr[9:0], 4'b1111};
478        assign we_b[3:0] = {jtag_we, jtag_we, jtag_we, jtag_we};
479        assign enable_b = jtag_en[0];
480        assign rdl = rdl_bus[0];
481        assign clk_b = jtag_clk;
482      end // loader;
483      //
484      RAMB18E1 #(.READ_WIDTH_A              (18),
485                 .WRITE_WIDTH_A             (18),
486                 .DOA_REG                   (0),
487                 .INIT_A                    (18'b000000000000000000),
488                 .RSTREG_PRIORITY_A         ("REGCE"),
489                 .SRVAL_A                   (18'b000000000000000000),
490                 .WRITE_MODE_A              ("WRITE_FIRST"),
491                 .READ_WIDTH_B              (18),
492                 .WRITE_WIDTH_B             (18),
493                 .DOB_REG                   (0),
494                 .INIT_B                    (18'b000000000000000000),
495                 .RSTREG_PRIORITY_B         ("REGCE"),
496                 .SRVAL_B                   (18'b000000000000000000),
497                 .WRITE_MODE_B              ("WRITE_FIRST"),
498                 .INIT_FILE                 ("NONE"),
499                 .SIM_COLLISION_CHECK       ("ALL"),
500                 .RAM_MODE                  ("TDP"),
501                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
502                 .SIM_DEVICE                ("7SERIES"),
503                 .INIT_00                   (256'hDDCD01C13800170160AADDA501C1183A1798B01501F81AE71B02B00601BB01EE),
504                 .INIT_01                   (256'h01F81A341B042061201DD0042096D103310301003007900201F81A6E1B0360AA),
505                 .INIT_02                   (256'h1910183B175A01A312101900183A17DA01F81AD01B0320252039D101204DD100),
506                 .INIT_03                   (256'h12101900183A17EA01F81AE91B0321671F0101A312281920183B17EA01A31210),
507                 .INIT_04                   (256'h01F81A021B0421671F0101A312281920183C173A01A312101910183B176A01A3),
508                 .INIT_05                   (256'h1F0101A312281920183C178A01A312101910183B177A01A312101900183A17FA),
509                 .INIT_06                   (256'h12101900183A17AA01F81AD01B0320692078D1012087D10001F81A1B1B042167),
510                 .INIT_07                   (256'h01A312101900183A17BA01F81AE91B0321671F0001A312101910183B172A01A3),
511                 .INIT_08                   (256'h174A01A312101900183A17CA01F81A021B0421671F0001A312101910183B173A),
512                 .INIT_09                   (256'h183B171A01A312101900183A179A01F81AB61B0321671F0001A312101910183B),
513                 .INIT_0A                   (256'h01003007900201F81A8B1B0321671F0001A312281920183B179A01A312101910),
514                 .INIT_0B                   (256'h01AB151016001A0219081802170701F81AB61B0320D02111D00420B6D1033103),
515                 .INIT_0C                   (256'h21671F0001AB152816201A0219601802175701AB151016101A0219231802171F),
516                 .INIT_0D                   (256'h16001A02190A1802170901F81AD01B0320D820EBD10120FED10001F81A1B1B04),
517                 .INIT_0E                   (256'h1802170B01F81AE91B0321671F0001AB151016101A02192B1802172701AB1510),
518                 .INIT_0F                   (256'h1A021B0421671F0001AB151016101A0219331802172F01AB151016001A02190C),
519                 .INIT_10                   (256'h1F0001AB151016101A02193B1802173701AB151016001A02190E1802170D01F8),
520                 .INIT_11                   (256'h1A0219151802170F01F81AD01B0321192133D101214DD10001F81A341B042167),
521                 .INIT_12                   (256'h152816201A02197E1802176901AB151016101A0219431802173F01AB15101600),
522                 .INIT_13                   (256'h194B1802174701AB151016001A02191C1802171B01F81AE91B0321671F0101AB),
523                 .INIT_14                   (256'h01F81A021B0421671F0101AB152816201A0219A81802179301AB151016101A02),
524                 .INIT_15                   (256'h180217BD01AB151016101A0219531802174F01AB151016001A02191E1802171D),
525                 .INIT_16                   (256'hDF0001921B101A10100101921B101A00100221671F0101AB152816201A0219D2),
526                 .INIT_17                   (256'hB001B00001F81AAD1B04019C01F81A801B04217BDF0001921B281A2010044187),
527                 .INIT_18                   (256'h1A701B04218BD1109102B02601F81A4C1B0421862186B016B005B004B003B002),
528                 .INIT_19                   (256'h1B04219C3008900221921A0110009B0101DBA1A01A011000D2FFA2A0500001F8),
529                 .INIT_1A                   (256'h4A9016010320E260487021A338001701190110009201ED9001C1500001F81A9F),
530                 .INIT_1B                   (256'h61BD9001E10011FF107F21AB3A001901380017011601100095011000D3FFE260),
531                 .INIT_1C                   (256'h90000537052005709000053705200580900005370520450615500513050F5000),
532                 .INIT_1D                   (256'h01E4032001E41300D0035000051A05350D50052A900005370520450715500513),
533                 .INIT_1E                   (256'h110D1203500061E5B00100009401BFF14300D502053014085000B00301E40310),
534                 .INIT_1F                   (256'hB04621F83B001A0102021000D9004BA0500061F2B200B1009001000021F21040),
535                 .INIT_20                   (256'h124512FF12FF12FF12FF12FF12FF12FF12FF5000D9006202D00490005000B006),
536                 .INIT_21                   (256'h124512FF12FF12FF12FF12FF1201120812001233120112FF125A123D124B124A),
537                 .INIT_22                   (256'h124512FF12011280120112FF125A1251124512FF12011280120112FF125A1251),
538                 .INIT_23                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
539                 .INIT_24                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
540                 .INIT_25                   (256'h12FF12411240123F123E123D120A1200120012FF12011280120012FF125A1251),
541                 .INIT_26                   (256'h120C120B1206120512041200120012FF12011201120312031203121112101230),
542                 .INIT_27                   (256'h1210123012FF125A12451253125112411240123F123E123D120A120912081207),
543                 .INIT_28                   (256'h1280128012021201120312031203120812701247120012011200120312001202),
544                 .INIT_29                   (256'h123E123D120A120912081207120C120B1206120512041200120012FF12011202),
545                 .INIT_2A                   (256'h1200120112001203120012021210123012FF125A12451253125112411240123F),
546                 .INIT_2B                   (256'h12041200120012FF120112021280128012021202120312031203120812701247),
547                 .INIT_2C                   (256'h12451253125112411240123F123E123D120A120912081207120C120B12061205),
548                 .INIT_2D                   (256'h1203120312031240127012471200120112001203120012021210123012FF125A),
549                 .INIT_2E                   (256'h192A192A192A192A192A192A192A192A190D12FF120112021280128012021202),
550                 .INIT_2F                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
551                 .INIT_30                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
552                 .INIT_31                   (256'h192A192A192A19201920192019201920190D192A192A192A192A192A192A192A),
553                 .INIT_32                   (256'h196B1963196F196C1943192019331976192019501952194119571920192A192A),
554                 .INIT_33                   (256'h192A192A192A192019651972196F19431920196719691966196E196F19431920),
555                 .INIT_34                   (256'h196D196119721967196F19721950192019201920192019201920190D192A192A),
556                 .INIT_35                   (256'h1920193A196519741961194419201979196C1962196D19651973197319411920),
557                 .INIT_36                   (256'h196F19461900190D190D19351931193019321920196E1961194A192019341932),
558                 .INIT_37                   (256'h192019611974196119641920196719691966196E196F196319201964196E1975),
559                 .INIT_38                   (256'h196F19631920196F194E1900190D194D194F19521950194519451920196E1969),
560                 .INIT_39                   (256'h1950194519451920196E1969192019611974196119641920196719691966196E),
561                 .INIT_3A                   (256'h196119661965194419201967196E1969197319551920192D1920194D194F1952),
562                 .INIT_3B                   (256'h194D1920196B1963196F196C19431920196F194E1900190D19731974196C1975),
563                 .INIT_3C                   (256'h1900190D1964196519741963196519741965194419201965196C19751964196F),
564                 .INIT_3D                   (256'h19721975196719691966196E196F196319201967196E196919641961196F194C),
565                 .INIT_3E                   (256'h1967196E196919641961196F194C1900190D19411920196E196F196919741961),
566                 .INIT_3F                   (256'h19421920196E196F19691974196119721975196719691966196E196F19631920),
567                 .INITP_00                  (256'h802088020082DD82200802008220080200822008020082DD82CD008365D8282A),
568                 .INITP_01                  (256'h08800200082200080020B7608800200080020B34020880200802088020082200),
569                 .INITP_02                  (256'hA828360360202200080020008220008002000822000800200082DD8220008002),
570                 .INITP_03                  (256'hA5B6B5480B8660A888AA2E92E8E8E92AD825577692A576A8309D874A0C282AAA),
571                 .INITP_04                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0A),
572                 .INITP_05                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
573                 .INITP_06                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
574                 .INITP_07                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA))
575     kcpsm6_rom( .ADDRARDADDR               (address_a[13:0]),
576                 .ENARDEN                   (enable),
577                 .CLKARDCLK                 (clk),
578                 .DOADO                     (data_out_a[15:0]),
579                 .DOPADOP                   (data_out_a[17:16]), 
580                 .DIADI                     (data_in_a[15:0]),
581                 .DIPADIP                   (data_in_a[17:16]), 
582                 .WEA                       (2'b00),
583                 .REGCEAREGCE               (1'b0),
584                 .RSTRAMARSTRAM             (1'b0),
585                 .RSTREGARSTREG             (1'b0),
586                 .ADDRBWRADDR               (address_b[13:0]),
587                 .ENBWREN                   (enable_b),
588                 .CLKBWRCLK                 (clk_b),
589                 .DOBDO                     (data_out_b[15:0]),
590                 .DOPBDOP                   (data_out_b[17:16]), 
591                 .DIBDI                     (data_in_b[15:0]),
592                 .DIPBDIP                   (data_in_b[17:16]), 
593                 .WEBWE                     (we_b[3:0]),
594                 .REGCEB                    (1'b0),
595                 .RSTRAMB                   (1'b0),
596                 .RSTREGB                   (1'b0));
597    end // akv7; 
598    //
599  end // ram_1k_generate;
600endgenerate
601// 
602generate
603  if (C_RAM_SIZE_KWORDS == 2) begin : ram_2k_generate
604    //
605    if (C_FAMILY == "S6") begin: s6
606      //
607      assign address_a[13:0] = {address[10:0], 3'b000};
608      assign instruction = {data_out_a_h[32], data_out_a_h[7:0], data_out_a_l[32], data_out_a_l[7:0]};
609      assign data_in_a = {35'b00000000000000000000000000000000000, address[11]};
610      assign jtag_dout = {data_out_b_h[32], data_out_b_h[7:0], data_out_b_l[32], data_out_b_l[7:0]};
611      //
612      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
613        assign data_in_b_l = {3'b000, data_out_b_l[32], 24'b000000000000000000000000, data_out_b_l[7:0]};
614        assign data_in_b_h = {3'b000, data_out_b_h[32], 24'b000000000000000000000000, data_out_b_h[7:0]};
615        assign address_b[13:0] = 14'b00000000000000;
616        assign we_b[3:0] = 4'b0000;
617        assign enable_b = 1'b0;
618        assign rdl = 1'b0;
619        assign clk_b = 1'b0;
620      end // no_loader;
621      //
622      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
623        assign data_in_b_h = {3'b000, jtag_din[17], 24'b000000000000000000000000, jtag_din[16:9]};
624        assign data_in_b_l = {3'b000, jtag_din[8],  24'b000000000000000000000000, jtag_din[7:0]};
625        assign address_b[13:0] = {jtag_addr[10:0], 3'b000};
626        assign we_b[3:0] = {jtag_we, jtag_we, jtag_we, jtag_we};
627        assign enable_b = jtag_en[0];
628        assign rdl = rdl_bus[0];
629        assign clk_b = jtag_clk;
630      end // loader;
631      //
632      RAMB16BWER #(.DATA_WIDTH_A        (9),
633                   .DOA_REG             (0),
634                   .EN_RSTRAM_A         ("FALSE"),
635                   .INIT_A              (9'b000000000),
636                   .RST_PRIORITY_A      ("CE"),
637                   .SRVAL_A             (9'b000000000),
638                   .WRITE_MODE_A        ("WRITE_FIRST"),
639                   .DATA_WIDTH_B        (9),
640                   .DOB_REG             (0),
641                   .EN_RSTRAM_B         ("FALSE"),
642                   .INIT_B              (9'b000000000),
643                   .RST_PRIORITY_B      ("CE"),
644                   .SRVAL_B             (9'b000000000),
645                   .WRITE_MODE_B        ("WRITE_FIRST"),
646                   .RSTTYPE             ("SYNC"),
647                   .INIT_FILE           ("NONE"),
648                   .SIM_COLLISION_CHECK ("ALL"),
649                   .SIM_DEVICE          ("SPARTAN6"),
650                   .INIT_00             (256'hF83404611D04960303000702F86E03AACDC10001AAA5C13A9815F8E70206BBEE),
651                   .INIT_01             (256'h10003AEAF8E9036701A328203BEAA310103B5AA310003ADAF8D0032539014D00),
652                   .INIT_02             (256'h01A328203C8AA310103B7AA310003AFAF802046701A328203C3AA310103B6AA3),
653                   .INIT_03             (256'hA310003ABAF8E9036700A310103B2AA310003AAAF8D0036978018700F81B0467),
654                   .INIT_04             (256'h3B1AA310003A9AF8B6036700A310103B4AA310003ACAF802046700A310103B3A),
655                   .INIT_05             (256'hAB100002080207F8B603D01104B60303000702F88B036700A328203B9AA31010),
656                   .INIT_06             (256'h00020A0209F8D003D8EB01FE00F81B046700AB282002600257AB10100223021F),
657                   .INIT_07             (256'h02046700AB10100233022FAB1000020C020BF8E9036700AB1010022B0227AB10),
658                   .INIT_08             (256'h0215020FF8D0031933014D00F834046700AB1010023B0237AB1000020E020DF8),
659                   .INIT_09             (256'h4B0247AB1000021C021BF8E9036701AB2820027E0269AB10100243023FAB1000),
660                   .INIT_0A             (256'h02BDAB10100253024FAB1000021E021DF802046701AB282002A80293AB101002),
661                   .INIT_0B             (256'h0100F8AD049CF880047B0092282004870092101001921000026701AB282002D2),
662                   .INIT_0C             (256'h049C080292010001DBA00100FFA000F870048B100226F84C0486861605040302),
663                   .INIT_0D             (256'hBD0100FF7FAB0001000101000100FF609001206070A3000101000190C100F89F),
664                   .INIT_0E             (256'hE420E40003001A35502A00372007501300372070003720800037200650130F00),
665                   .INIT_0F             (256'h46F80001020000A000F200000100F2400D0300E5010001F1000230080003E410),
666                   .INIT_10             (256'h45FFFFFFFFFF0108003301FF5A3D4B4A45FFFFFFFFFFFFFFFF00000204000006),
667                   .INIT_11             (256'h45FF018000FF5A5145FF018000FF5A5145FF018001FF5A5145FF018001FF5A51),
668                   .INIT_12             (256'hFF41403F3E3D0A0000FF018000FF5A5145FF018000FF5A5145FF018000FF5A51),
669                   .INIT_13             (256'h1030FF5A45535141403F3E3D0A0908070C0B0605040000FF0101030303111030),
670                   .INIT_14             (256'h3E3D0A0908070C0B0605040000FF010280800201030303087047000100030002),
671                   .INIT_15             (256'h040000FF0102808002020303030870470001000300021030FF5A45535141403F),
672                   .INIT_16             (256'h0303034070470001000300021030FF5A45535141403F3E3D0A0908070C0B0605),
673                   .INIT_17             (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A0DFF010280800202),
674                   .INIT_18             (256'h2A2A2A20202020200D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
675                   .INIT_19             (256'h2A2A2A2065726F43206769666E6F43206B636F6C432033762050524157202A2A),
676                   .INIT_1A             (256'h203A6574614420796C626D65737341206D6172676F72502020202020200D2A2A),
677                   .INIT_1B             (256'h2061746164206769666E6F6320646E756F46000D0D35313032206E614A203432),
678                   .INIT_1C             (256'h504545206E692061746164206769666E6F63206F4E000D4D4F52504545206E69),
679                   .INIT_1D             (256'h4D206B636F6C43206F4E000D73746C756166654420676E697355202D204D4F52),
680                   .INIT_1E             (256'h72756769666E6F6320676E6964616F4C000D646574636574654420656C75646F),
681                   .INIT_1F             (256'h42206E6F69746172756769666E6F6320676E6964616F4C000D41206E6F697461),
682                   .INIT_20             (256'h6365746544000D43206E6F69746172756769666E6F6320676E6964616F4C000D),
683                   .INIT_21             (256'h2D4D43206465746365746544000D656C75646F4D2058434D4D2D4D4320646574),
684                   .INIT_22             (256'h4C502064696C617620726F6620676E6974696157000D656C75646F4D204C4C50),
685                   .INIT_23             (256'h000D2164696C6176206B6C6320666572002E2E2E2E2E2E6B6C6320666572204C),
686                   .INIT_24             (256'h50002E2E2E6B636F6C204C4C502031313539444120726F6620676E6974696157),
687                   .INIT_25             (256'h656C706D6F43206769666E6F43206B636F6C43000D0D2164656B636F6C204C4C),
688                   .INIT_26             (256'h2A2A2A0D737365636F725020746F6F4220676E69756E69746E6F43202D206574),
689                   .INIT_27             (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
690                   .INIT_28             (256'h0047553E5444003A5544543E4700040201000D0D2A2A2A2A2A2A2A2A2A2A2A2A),
691                   .INIT_29             (256'h0401005404FE00014A3047003A553E5444002B014A0821000E30472644251080),
692                   .INIT_2A             (256'h0000005B0131005A5A5A5A5A003A57000203573E54470004020004FD00400103),
693                   .INIT_2B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
694                   .INIT_2C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
695                   .INIT_2D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
696                   .INIT_2E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
697                   .INIT_2F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
698                   .INIT_30             (256'h0000000000000000000000000000000000000000000000000000000000000000),
699                   .INIT_31             (256'h0000000000000000000000000000000000000000000000000000000000000000),
700                   .INIT_32             (256'h0000000000000000000000000000000000000000000000000000000000000000),
701                   .INIT_33             (256'h0000000000000000000000000000000000000000000000000000000000000000),
702                   .INIT_34             (256'h0000000000000000000000000000000000000000000000000000000000000000),
703                   .INIT_35             (256'h0000000000000000000000000000000000000000000000000000000000000000),
704                   .INIT_36             (256'h0000000000000000000000000000000000000000000000000000000000000000),
705                   .INIT_37             (256'h0000000000000000000000000000000000000000000000000000000000000000),
706                   .INIT_38             (256'h0000000000000000000000000000000000000000000000000000000000000000),
707                   .INIT_39             (256'h0000000000000000000000000000000000000000000000000000000000000000),
708                   .INIT_3A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
709                   .INIT_3B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
710                   .INIT_3C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
711                   .INIT_3D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
712                   .INIT_3E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
713                   .INIT_3F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
714                   .INITP_00            (256'h7CB96F972D2DF2E5CB5397AD6B7AD6F5ADEB5A5BD6B5BD6B5BD6B5A5A1CAD6AB),
715                   .INITP_01            (256'h635291E3F3DF777EB54A259AC9C17AE02EF9E67972E5BE5CB96F972E5BFBE5CB),
716                   .INITP_02            (256'hFFFFFF8000000000000000000000000000000000000000000000000000000020),
717                   .INITP_03            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
718                   .INITP_04            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
719                   .INITP_05            (256'h000000000000000000000000000000000000000011F73DB4DDEFBEFF7DFBFFFF),
720                   .INITP_06            (256'h0000000000000000000000000000000000000000000000000000000000000000),
721                   .INITP_07            (256'h0000000000000000000000000000000000000000000000000000000000000000))
722     kcpsm6_rom_l( .ADDRA               (address_a[13:0]),
723                   .ENA                 (enable),
724                   .CLKA                (clk),
725                   .DOA                 (data_out_a_l[31:0]),
726                   .DOPA                (data_out_a_l[35:32]), 
727                   .DIA                 (data_in_a[31:0]),
728                   .DIPA                (data_in_a[35:32]), 
729                   .WEA                 (4'b0000),
730                   .REGCEA              (1'b0),
731                   .RSTA                (1'b0),
732                   .ADDRB               (address_b[13:0]),
733                   .ENB                 (enable_b),
734                   .CLKB                (clk_b),
735                   .DOB                 (data_out_b_l[31:0]),
736                   .DOPB                (data_out_b_l[35:32]), 
737                   .DIB                 (data_in_b_l[31:0]),
738                   .DIPB                (data_in_b_l[35:32]), 
739                   .WEB                 (we_b[3:0]),
740                   .REGCEB              (1'b0),
741                   .RSTB                (1'b0));
742      //
743      RAMB16BWER #(.DATA_WIDTH_A        (9),
744                   .DOA_REG             (0),
745                   .EN_RSTRAM_A         ("FALSE"),
746                   .INIT_A              (9'b000000000),
747                   .RST_PRIORITY_A      ("CE"),
748                   .SRVAL_A             (9'b000000000),
749                   .WRITE_MODE_A        ("WRITE_FIRST"),
750                   .DATA_WIDTH_B        (9),
751                   .DOB_REG             (0),
752                   .EN_RSTRAM_B         ("FALSE"),
753                   .INIT_B              (9'b000000000),
754                   .RST_PRIORITY_B      ("CE"),
755                   .SRVAL_B             (9'b000000000),
756                   .WRITE_MODE_B        ("WRITE_FIRST"),
757                   .RSTTYPE             ("SYNC"),
758                   .INIT_FILE           ("NONE"),
759                   .SIM_COLLISION_CHECK ("ALL"),
760                   .SIM_DEVICE          ("SPARTAN6"),
761                   .INIT_00             (256'h000D0D10906890E818001848000D0DB0EE009C8BB0EE000C0B58000D0D580000),
762                   .INIT_01             (256'h090C0C0B000D0D100F00090C0C0B00090C0C0B00090C0C0B000D0D1090E890E8),
763                   .INIT_02             (256'h0F00090C0C0B00090C0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B00),
764                   .INIT_03             (256'h00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D1090E890E8000D0D10),
765                   .INIT_04             (256'h0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D100F00090C0C0B),
766                   .INIT_05             (256'h000A0B0D0C0C0B000D0D10906890E818001848000D0D100F00090C0C0B00090C),
767                   .INIT_06             (256'h0B0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B),
768                   .INIT_07             (256'h0D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A),
769                   .INIT_08             (256'h0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B00),
770                   .INIT_09             (256'h0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000A0B),
771                   .INIT_0A             (256'h0C0B000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D),
772                   .INIT_0B             (256'h5858000D0D00000D0D90EF000D0D08A0EF000D0D08000D0D08100F000A0B0D0C),
773                   .INIT_0C             (256'h0D901848108D88CD00508D88E95128000D0D90684858000D0D10105858585858),
774                   .INIT_0D             (256'hB0C8700808109D8C9C8B8B88CA88E971258B017124109C8B8C88C9760028000D),
775                   .INIT_0E             (256'h00010009682802020602C80202A20A02C8020202C8020202C80202A20A020228),
776                   .INIT_0F             (256'h58109D8D0188EC2528B0D9D8C8001008080928B05800CA5FA16A020A28580001),
777                   .INIT_10             (256'h09090909090909090909090909090909090909090909090909286CB168482858),
778                   .INIT_11             (256'h0909090909090909090909090909090909090909090909090909090909090909),
779                   .INIT_12             (256'h0909090909090909090909090909090909090909090909090909090909090909),
780                   .INIT_13             (256'h0909090909090909090909090909090909090909090909090909090909090909),
781                   .INIT_14             (256'h0909090909090909090909090909090909090909090909090909090909090909),
782                   .INIT_15             (256'h0909090909090909090909090909090909090909090909090909090909090909),
783                   .INIT_16             (256'h0909090909090909090909090909090909090909090909090909090909090909),
784                   .INIT_17             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09090909090909),
785                   .INIT_18             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
786                   .INIT_19             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
787                   .INIT_1A             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
788                   .INIT_1B             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
789                   .INIT_1C             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
790                   .INIT_1D             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
791                   .INIT_1E             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
792                   .INIT_1F             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
793                   .INIT_20             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
794                   .INIT_21             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
795                   .INIT_22             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
796                   .INIT_23             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
797                   .INIT_24             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
798                   .INIT_25             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
799                   .INIT_26             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
800                   .INIT_27             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
801                   .INIT_28             (256'h28020202020228020202020202286F2F0F0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
802                   .INIT_29             (256'h6F2F28026F1F286A02120228020202020228B2C8020812C8A002021202B26208),
803                   .INIT_2A             (256'h000028B2C808280202020202280202A2684802020202286F2F286F1F28926848),
804                   .INIT_2B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
805                   .INIT_2C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
806                   .INIT_2D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
807                   .INIT_2E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
808                   .INIT_2F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
809                   .INIT_30             (256'h0000000000000000000000000000000000000000000000000000000000000000),
810                   .INIT_31             (256'h0000000000000000000000000000000000000000000000000000000000000000),
811                   .INIT_32             (256'h0000000000000000000000000000000000000000000000000000000000000000),
812                   .INIT_33             (256'h0000000000000000000000000000000000000000000000000000000000000000),
813                   .INIT_34             (256'h0000000000000000000000000000000000000000000000000000000000000000),
814                   .INIT_35             (256'h0000000000000000000000000000000000000000000000000000000000000000),
815                   .INIT_36             (256'h0000000000000000000000000000000000000000000000000000000000000000),
816                   .INIT_37             (256'h0000000000000000000000000000000000000000000000000000000000000000),
817                   .INIT_38             (256'h0000000000000000000000000000000000000000000000000000000000000000),
818                   .INIT_39             (256'h0000000000000000000000000000000000000000000000000000000000000000),
819                   .INIT_3A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
820                   .INIT_3B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
821                   .INIT_3C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
822                   .INIT_3D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
823                   .INIT_3E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
824                   .INIT_3F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
825                   .INITP_00            (256'h2810250204D4A040813412842128425084A109A9421094210942109A9A094A67),
826                   .INITP_01            (256'hCDC2394EAF79EEE7A4159C5E4A93267FE6514450204094081025020409A94081),
827                   .INITP_02            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3),
828                   .INITP_03            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
829                   .INITP_04            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
830                   .INITP_05            (256'h000000000000000000000000000000000000000033FE3F6CBAFFEB7CFFFE7FFF),
831                   .INITP_06            (256'h0000000000000000000000000000000000000000000000000000000000000000),
832                   .INITP_07            (256'h0000000000000000000000000000000000000000000000000000000000000000))
833     kcpsm6_rom_h( .ADDRA               (address_a[13:0]),
834                   .ENA                 (enable),
835                   .CLKA                (clk),
836                   .DOA                 (data_out_a_h[31:0]),
837                   .DOPA                (data_out_a_h[35:32]), 
838                   .DIA                 (data_in_a[31:0]),
839                   .DIPA                (data_in_a[35:32]), 
840                   .WEA                 (4'b0000),
841                   .REGCEA              (1'b0),
842                   .RSTA                (1'b0),
843                   .ADDRB               (address_b[13:0]),
844                   .ENB                 (enable_b),
845                   .CLKB                (clk_b),
846                   .DOB                 (data_out_b_h[31:0]),
847                   .DOPB                (data_out_b_h[35:32]), 
848                   .DIB                 (data_in_b_h[31:0]),
849                   .DIPB                (data_in_b_h[35:32]), 
850                   .WEB                 (we_b[3:0]),
851                   .REGCEB              (1'b0),
852                   .RSTB                (1'b0));
853    end // s6;
854    //
855    //
856    if (C_FAMILY == "V6") begin: v6
857      //
858      assign address_a = {1'b1, address[10:0], 4'b1111};
859      assign instruction = {data_out_a[33:32], data_out_a[15:0]};
860      assign data_in_a = {35'b00000000000000000000000000000000000, address[11]};
861      assign jtag_dout = {data_out_b[33:32], data_out_b[15:0]};
862      //
863      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
864        assign data_in_b = {2'b00, data_out_b[33:32], 16'b0000000000000000, data_out_b[15:0]};
865        assign address_b = 16'b1111111111111111;
866        assign we_b = 8'b00000000;
867        assign enable_b = 1'b0;
868        assign rdl = 1'b0;
869        assign clk_b = 1'b0;
870      end // no_loader;
871      //
872      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
873        assign data_in_b = {2'b00, jtag_din[17:16], 16'b0000000000000000, jtag_din[15:0]};
874        assign address_b = {1'b1, jtag_addr[10:0], 4'b1111};
875        assign we_b = {jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we};
876        assign enable_b = jtag_en[0];
877        assign rdl = rdl_bus[0];
878        assign clk_b = jtag_clk;
879      end // loader;
880      //
881      RAMB36E1 #(.READ_WIDTH_A              (18),
882                 .WRITE_WIDTH_A             (18),
883                 .DOA_REG                   (0),
884                 .INIT_A                    (36'h000000000),
885                 .RSTREG_PRIORITY_A         ("REGCE"),
886                 .SRVAL_A                   (36'h000000000),
887                 .WRITE_MODE_A              ("WRITE_FIRST"),
888                 .READ_WIDTH_B              (18),
889                 .WRITE_WIDTH_B             (18),
890                 .DOB_REG                   (0),
891                 .INIT_B                    (36'h000000000),
892                 .RSTREG_PRIORITY_B         ("REGCE"),
893                 .SRVAL_B                   (36'h000000000),
894                 .WRITE_MODE_B              ("WRITE_FIRST"),
895                 .INIT_FILE                 ("NONE"),
896                 .SIM_COLLISION_CHECK       ("ALL"),
897                 .RAM_MODE                  ("TDP"),
898                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
899                 .EN_ECC_READ               ("FALSE"),
900                 .EN_ECC_WRITE              ("FALSE"),
901                 .RAM_EXTENSION_A           ("NONE"),
902                 .RAM_EXTENSION_B           ("NONE"),
903                 .SIM_DEVICE                ("VIRTEX6"),
904                 .INIT_00                   (256'hDDCD01C13800170160AADDA501C1183A1798B01501F81AE71B02B00601BB01EE),
905                 .INIT_01                   (256'h01F81A341B042061201DD0042096D103310301003007900201F81A6E1B0360AA),
906                 .INIT_02                   (256'h1910183B175A01A312101900183A17DA01F81AD01B0320252039D101204DD100),
907                 .INIT_03                   (256'h12101900183A17EA01F81AE91B0321671F0101A312281920183B17EA01A31210),
908                 .INIT_04                   (256'h01F81A021B0421671F0101A312281920183C173A01A312101910183B176A01A3),
909                 .INIT_05                   (256'h1F0101A312281920183C178A01A312101910183B177A01A312101900183A17FA),
910                 .INIT_06                   (256'h12101900183A17AA01F81AD01B0320692078D1012087D10001F81A1B1B042167),
911                 .INIT_07                   (256'h01A312101900183A17BA01F81AE91B0321671F0001A312101910183B172A01A3),
912                 .INIT_08                   (256'h174A01A312101900183A17CA01F81A021B0421671F0001A312101910183B173A),
913                 .INIT_09                   (256'h183B171A01A312101900183A179A01F81AB61B0321671F0001A312101910183B),
914                 .INIT_0A                   (256'h01003007900201F81A8B1B0321671F0001A312281920183B179A01A312101910),
915                 .INIT_0B                   (256'h01AB151016001A0219081802170701F81AB61B0320D02111D00420B6D1033103),
916                 .INIT_0C                   (256'h21671F0001AB152816201A0219601802175701AB151016101A0219231802171F),
917                 .INIT_0D                   (256'h16001A02190A1802170901F81AD01B0320D820EBD10120FED10001F81A1B1B04),
918                 .INIT_0E                   (256'h1802170B01F81AE91B0321671F0001AB151016101A02192B1802172701AB1510),
919                 .INIT_0F                   (256'h1A021B0421671F0001AB151016101A0219331802172F01AB151016001A02190C),
920                 .INIT_10                   (256'h1F0001AB151016101A02193B1802173701AB151016001A02190E1802170D01F8),
921                 .INIT_11                   (256'h1A0219151802170F01F81AD01B0321192133D101214DD10001F81A341B042167),
922                 .INIT_12                   (256'h152816201A02197E1802176901AB151016101A0219431802173F01AB15101600),
923                 .INIT_13                   (256'h194B1802174701AB151016001A02191C1802171B01F81AE91B0321671F0101AB),
924                 .INIT_14                   (256'h01F81A021B0421671F0101AB152816201A0219A81802179301AB151016101A02),
925                 .INIT_15                   (256'h180217BD01AB151016101A0219531802174F01AB151016001A02191E1802171D),
926                 .INIT_16                   (256'hDF0001921B101A10100101921B101A00100221671F0101AB152816201A0219D2),
927                 .INIT_17                   (256'hB001B00001F81AAD1B04019C01F81A801B04217BDF0001921B281A2010044187),
928                 .INIT_18                   (256'h1A701B04218BD1109102B02601F81A4C1B0421862186B016B005B004B003B002),
929                 .INIT_19                   (256'h1B04219C3008900221921A0110009B0101DBA1A01A011000D2FFA2A0500001F8),
930                 .INIT_1A                   (256'h4A9016010320E260487021A338001701190110009201ED9001C1500001F81A9F),
931                 .INIT_1B                   (256'h61BD9001E10011FF107F21AB3A001901380017011601100095011000D3FFE260),
932                 .INIT_1C                   (256'h90000537052005709000053705200580900005370520450615500513050F5000),
933                 .INIT_1D                   (256'h01E4032001E41300D0035000051A05350D50052A900005370520450715500513),
934                 .INIT_1E                   (256'h110D1203500061E5B00100009401BFF14300D502053014085000B00301E40310),
935                 .INIT_1F                   (256'hB04621F83B001A0102021000D9004BA0500061F2B200B1009001000021F21040),
936                 .INIT_20                   (256'h124512FF12FF12FF12FF12FF12FF12FF12FF5000D9006202D00490005000B006),
937                 .INIT_21                   (256'h124512FF12FF12FF12FF12FF1201120812001233120112FF125A123D124B124A),
938                 .INIT_22                   (256'h124512FF12011280120112FF125A1251124512FF12011280120112FF125A1251),
939                 .INIT_23                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
940                 .INIT_24                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
941                 .INIT_25                   (256'h12FF12411240123F123E123D120A1200120012FF12011280120012FF125A1251),
942                 .INIT_26                   (256'h120C120B1206120512041200120012FF12011201120312031203121112101230),
943                 .INIT_27                   (256'h1210123012FF125A12451253125112411240123F123E123D120A120912081207),
944                 .INIT_28                   (256'h1280128012021201120312031203120812701247120012011200120312001202),
945                 .INIT_29                   (256'h123E123D120A120912081207120C120B1206120512041200120012FF12011202),
946                 .INIT_2A                   (256'h1200120112001203120012021210123012FF125A12451253125112411240123F),
947                 .INIT_2B                   (256'h12041200120012FF120112021280128012021202120312031203120812701247),
948                 .INIT_2C                   (256'h12451253125112411240123F123E123D120A120912081207120C120B12061205),
949                 .INIT_2D                   (256'h1203120312031240127012471200120112001203120012021210123012FF125A),
950                 .INIT_2E                   (256'h192A192A192A192A192A192A192A192A190D12FF120112021280128012021202),
951                 .INIT_2F                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
952                 .INIT_30                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
953                 .INIT_31                   (256'h192A192A192A19201920192019201920190D192A192A192A192A192A192A192A),
954                 .INIT_32                   (256'h196B1963196F196C1943192019331976192019501952194119571920192A192A),
955                 .INIT_33                   (256'h192A192A192A192019651972196F19431920196719691966196E196F19431920),
956                 .INIT_34                   (256'h196D196119721967196F19721950192019201920192019201920190D192A192A),
957                 .INIT_35                   (256'h1920193A196519741961194419201979196C1962196D19651973197319411920),
958                 .INIT_36                   (256'h196F19461900190D190D19351931193019321920196E1961194A192019341932),
959                 .INIT_37                   (256'h192019611974196119641920196719691966196E196F196319201964196E1975),
960                 .INIT_38                   (256'h196F19631920196F194E1900190D194D194F19521950194519451920196E1969),
961                 .INIT_39                   (256'h1950194519451920196E1969192019611974196119641920196719691966196E),
962                 .INIT_3A                   (256'h196119661965194419201967196E1969197319551920192D1920194D194F1952),
963                 .INIT_3B                   (256'h194D1920196B1963196F196C19431920196F194E1900190D19731974196C1975),
964                 .INIT_3C                   (256'h1900190D1964196519741963196519741965194419201965196C19751964196F),
965                 .INIT_3D                   (256'h19721975196719691966196E196F196319201967196E196919641961196F194C),
966                 .INIT_3E                   (256'h1967196E196919641961196F194C1900190D19411920196E196F196919741961),
967                 .INIT_3F                   (256'h19421920196E196F19691974196119721975196719691966196E196F19631920),
968                 .INIT_40                   (256'h196719691966196E196F196319201967196E196919641961196F194C1900190D),
969                 .INIT_41                   (256'h196319651974196519441900190D19431920196E196F19691974196119721975),
970                 .INIT_42                   (256'h19751964196F194D192019581943194D194D192D194D19431920196419651974),
971                 .INIT_43                   (256'h192D194D19431920196419651974196319651974196519441900190D1965196C),
972                 .INIT_44                   (256'h19741969196119571900190D1965196C19751964196F194D1920194C194C1950),
973                 .INIT_45                   (256'h194C1950192019641969196C1961197619201972196F196619201967196E1969),
974                 .INIT_46                   (256'h1900192E192E192E192E192E192E196B196C196319201966196519721920194C),
975                 .INIT_47                   (256'h1900190D192119641969196C196119761920196B196C19631920196619651972),
976                 .INIT_48                   (256'h193519391944194119201972196F196619201967196E19691974196919611957),
977                 .INIT_49                   (256'h19501900192E192E192E196B1963196F196C1920194C194C1950192019311931),
978                 .INIT_4A                   (256'h196F196C19431900190D190D192119641965196B1963196F196C1920194C194C),
979                 .INIT_4B                   (256'h1965196C1970196D196F19431920196719691966196E196F19431920196B1963),
980                 .INIT_4C                   (256'h19201967196E19691975196E19691974196E196F19431920192D192019651974),
981                 .INIT_4D                   (256'h192A192A192A190D1973197319651963196F1972195019201974196F196F1942),
982                 .INIT_4E                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
983                 .INIT_4F                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
984                 .INIT_50                   (256'h1F011900190D190D192A192A192A192A192A192A192A192A192A192A192A192A),
985                 .INIT_51                   (256'h500005470555053E055405445000053A055505440554053E05475000DF045F02),
986                 .INIT_52                   (256'h05445000652B9101054A110825219000410E05300547252605446525C5101180),
987                 .INIT_53                   (256'hDF045F0150000554DF043FFE5000D501054A253005475000053A0555053E0554),
988                 .INIT_54                   (256'hD00290030557053E055405475000DF045F025000DF043FFD50002540D0019003),
989                 .INIT_55                   (256'h000000005000655B900110315000055A055A055A055A055A5000053A05574500),
990                 .INIT_56                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
991                 .INIT_57                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
992                 .INIT_58                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
993                 .INIT_59                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
994                 .INIT_5A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
995                 .INIT_5B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
996                 .INIT_5C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
997                 .INIT_5D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
998                 .INIT_5E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
999                 .INIT_5F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1000                 .INIT_60                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1001                 .INIT_61                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1002                 .INIT_62                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1003                 .INIT_63                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1004                 .INIT_64                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1005                 .INIT_65                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1006                 .INIT_66                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1007                 .INIT_67                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1008                 .INIT_68                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1009                 .INIT_69                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1010                 .INIT_6A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1011                 .INIT_6B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1012                 .INIT_6C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1013                 .INIT_6D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1014                 .INIT_6E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1015                 .INIT_6F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1016                 .INIT_70                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1017                 .INIT_71                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1018                 .INIT_72                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1019                 .INIT_73                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1020                 .INIT_74                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1021                 .INIT_75                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1022                 .INIT_76                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1023                 .INIT_77                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1024                 .INIT_78                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1025                 .INIT_79                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1026                 .INIT_7A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1027                 .INIT_7B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1028                 .INIT_7C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1029                 .INIT_7D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1030                 .INIT_7E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1031                 .INIT_7F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1032                 .INITP_00                  (256'h802088020082DD82200802008220080200822008020082DD82CD008365D8282A),
1033                 .INITP_01                  (256'h08800200082200080020B7608800200080020B34020880200802088020082200),
1034                 .INITP_02                  (256'hA828360360202200080020008220008002000822000800200082DD8220008002),
1035                 .INITP_03                  (256'hA5B6B5480B8660A888AA2E92E8E8E92AD825577692A576A8309D874A0C282AAA),
1036                 .INITP_04                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0A),
1037                 .INITP_05                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1038                 .INITP_06                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1039                 .INITP_07                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1040                 .INITP_08                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1041                 .INITP_09                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1042                 .INITP_0A                  (256'h00000000000000000B4AAAA90AAA28B08A88AAAAAD8B6AB0AAAAAAA82AAAAAAA),
1043                 .INITP_0B                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1044                 .INITP_0C                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1045                 .INITP_0D                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1046                 .INITP_0E                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1047                 .INITP_0F                  (256'h0000000000000000000000000000000000000000000000000000000000000000))
1048     kcpsm6_rom( .ADDRARDADDR               (address_a),
1049                 .ENARDEN                   (enable),
1050                 .CLKARDCLK                 (clk),
1051                 .DOADO                     (data_out_a[31:0]),
1052                 .DOPADOP                   (data_out_a[35:32]), 
1053                 .DIADI                     (data_in_a[31:0]),
1054                 .DIPADIP                   (data_in_a[35:32]), 
1055                 .WEA                       (4'b0000),
1056                 .REGCEAREGCE               (1'b0),
1057                 .RSTRAMARSTRAM             (1'b0),
1058                 .RSTREGARSTREG             (1'b0),
1059                 .ADDRBWRADDR               (address_b),
1060                 .ENBWREN                   (enable_b),
1061                 .CLKBWRCLK                 (clk_b),
1062                 .DOBDO                     (data_out_b[31:0]),
1063                 .DOPBDOP                   (data_out_b[35:32]), 
1064                 .DIBDI                     (data_in_b[31:0]),
1065                 .DIPBDIP                   (data_in_b[35:32]), 
1066                 .WEBWE                     (we_b),
1067                 .REGCEB                    (1'b0),
1068                 .RSTRAMB                   (1'b0),
1069                 .RSTREGB                   (1'b0),
1070                 .CASCADEINA                (1'b0),
1071                 .CASCADEINB                (1'b0),
1072                 .CASCADEOUTA               (),
1073                 .CASCADEOUTB               (),
1074                 .DBITERR                   (),
1075                 .ECCPARITY                 (),
1076                 .RDADDRECC                 (),
1077                 .SBITERR                   (),
1078                 .INJECTDBITERR             (1'b0),       
1079                 .INJECTSBITERR             (1'b0));   
1080    end // v6; 
1081    //
1082    //
1083    if (C_FAMILY == "7S") begin: akv7
1084      //
1085      assign address_a = {1'b1, address[10:0], 4'b1111};
1086      assign instruction = {data_out_a[33:32], data_out_a[15:0]};
1087      assign data_in_a = {35'b00000000000000000000000000000000000, address[11]};
1088      assign jtag_dout = {data_out_b[33:32], data_out_b[15:0]};
1089      //
1090      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
1091        assign data_in_b = {2'b00, data_out_b[33:32], 16'b0000000000000000, data_out_b[15:0]};
1092        assign address_b = 16'b1111111111111111;
1093        assign we_b = 8'b00000000;
1094        assign enable_b = 1'b0;
1095        assign rdl = 1'b0;
1096        assign clk_b = 1'b0;
1097      end // no_loader;
1098      //
1099      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
1100        assign data_in_b = {2'b00, jtag_din[17:16], 16'b0000000000000000, jtag_din[15:0]};
1101        assign address_b = {1'b1, jtag_addr[10:0], 4'b1111};
1102        assign we_b = {jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we};
1103        assign enable_b = jtag_en[0];
1104        assign rdl = rdl_bus[0];
1105        assign clk_b = jtag_clk;
1106      end // loader;
1107      //
1108      RAMB36E1 #(.READ_WIDTH_A              (18),
1109                 .WRITE_WIDTH_A             (18),
1110                 .DOA_REG                   (0),
1111                 .INIT_A                    (36'h000000000),
1112                 .RSTREG_PRIORITY_A         ("REGCE"),
1113                 .SRVAL_A                   (36'h000000000),
1114                 .WRITE_MODE_A              ("WRITE_FIRST"),
1115                 .READ_WIDTH_B              (18),
1116                 .WRITE_WIDTH_B             (18),
1117                 .DOB_REG                   (0),
1118                 .INIT_B                    (36'h000000000),
1119                 .RSTREG_PRIORITY_B         ("REGCE"),
1120                 .SRVAL_B                   (36'h000000000),
1121                 .WRITE_MODE_B              ("WRITE_FIRST"),
1122                 .INIT_FILE                 ("NONE"),
1123                 .SIM_COLLISION_CHECK       ("ALL"),
1124                 .RAM_MODE                  ("TDP"),
1125                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
1126                 .EN_ECC_READ               ("FALSE"),
1127                 .EN_ECC_WRITE              ("FALSE"),
1128                 .RAM_EXTENSION_A           ("NONE"),
1129                 .RAM_EXTENSION_B           ("NONE"),
1130                 .SIM_DEVICE                ("7SERIES"),
1131                 .INIT_00                   (256'hDDCD01C13800170160AADDA501C1183A1798B01501F81AE71B02B00601BB01EE),
1132                 .INIT_01                   (256'h01F81A341B042061201DD0042096D103310301003007900201F81A6E1B0360AA),
1133                 .INIT_02                   (256'h1910183B175A01A312101900183A17DA01F81AD01B0320252039D101204DD100),
1134                 .INIT_03                   (256'h12101900183A17EA01F81AE91B0321671F0101A312281920183B17EA01A31210),
1135                 .INIT_04                   (256'h01F81A021B0421671F0101A312281920183C173A01A312101910183B176A01A3),
1136                 .INIT_05                   (256'h1F0101A312281920183C178A01A312101910183B177A01A312101900183A17FA),
1137                 .INIT_06                   (256'h12101900183A17AA01F81AD01B0320692078D1012087D10001F81A1B1B042167),
1138                 .INIT_07                   (256'h01A312101900183A17BA01F81AE91B0321671F0001A312101910183B172A01A3),
1139                 .INIT_08                   (256'h174A01A312101900183A17CA01F81A021B0421671F0001A312101910183B173A),
1140                 .INIT_09                   (256'h183B171A01A312101900183A179A01F81AB61B0321671F0001A312101910183B),
1141                 .INIT_0A                   (256'h01003007900201F81A8B1B0321671F0001A312281920183B179A01A312101910),
1142                 .INIT_0B                   (256'h01AB151016001A0219081802170701F81AB61B0320D02111D00420B6D1033103),
1143                 .INIT_0C                   (256'h21671F0001AB152816201A0219601802175701AB151016101A0219231802171F),
1144                 .INIT_0D                   (256'h16001A02190A1802170901F81AD01B0320D820EBD10120FED10001F81A1B1B04),
1145                 .INIT_0E                   (256'h1802170B01F81AE91B0321671F0001AB151016101A02192B1802172701AB1510),
1146                 .INIT_0F                   (256'h1A021B0421671F0001AB151016101A0219331802172F01AB151016001A02190C),
1147                 .INIT_10                   (256'h1F0001AB151016101A02193B1802173701AB151016001A02190E1802170D01F8),
1148                 .INIT_11                   (256'h1A0219151802170F01F81AD01B0321192133D101214DD10001F81A341B042167),
1149                 .INIT_12                   (256'h152816201A02197E1802176901AB151016101A0219431802173F01AB15101600),
1150                 .INIT_13                   (256'h194B1802174701AB151016001A02191C1802171B01F81AE91B0321671F0101AB),
1151                 .INIT_14                   (256'h01F81A021B0421671F0101AB152816201A0219A81802179301AB151016101A02),
1152                 .INIT_15                   (256'h180217BD01AB151016101A0219531802174F01AB151016001A02191E1802171D),
1153                 .INIT_16                   (256'hDF0001921B101A10100101921B101A00100221671F0101AB152816201A0219D2),
1154                 .INIT_17                   (256'hB001B00001F81AAD1B04019C01F81A801B04217BDF0001921B281A2010044187),
1155                 .INIT_18                   (256'h1A701B04218BD1109102B02601F81A4C1B0421862186B016B005B004B003B002),
1156                 .INIT_19                   (256'h1B04219C3008900221921A0110009B0101DBA1A01A011000D2FFA2A0500001F8),
1157                 .INIT_1A                   (256'h4A9016010320E260487021A338001701190110009201ED9001C1500001F81A9F),
1158                 .INIT_1B                   (256'h61BD9001E10011FF107F21AB3A001901380017011601100095011000D3FFE260),
1159                 .INIT_1C                   (256'h90000537052005709000053705200580900005370520450615500513050F5000),
1160                 .INIT_1D                   (256'h01E4032001E41300D0035000051A05350D50052A900005370520450715500513),
1161                 .INIT_1E                   (256'h110D1203500061E5B00100009401BFF14300D502053014085000B00301E40310),
1162                 .INIT_1F                   (256'hB04621F83B001A0102021000D9004BA0500061F2B200B1009001000021F21040),
1163                 .INIT_20                   (256'h124512FF12FF12FF12FF12FF12FF12FF12FF5000D9006202D00490005000B006),
1164                 .INIT_21                   (256'h124512FF12FF12FF12FF12FF1201120812001233120112FF125A123D124B124A),
1165                 .INIT_22                   (256'h124512FF12011280120112FF125A1251124512FF12011280120112FF125A1251),
1166                 .INIT_23                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
1167                 .INIT_24                   (256'h124512FF12011280120012FF125A1251124512FF12011280120012FF125A1251),
1168                 .INIT_25                   (256'h12FF12411240123F123E123D120A1200120012FF12011280120012FF125A1251),
1169                 .INIT_26                   (256'h120C120B1206120512041200120012FF12011201120312031203121112101230),
1170                 .INIT_27                   (256'h1210123012FF125A12451253125112411240123F123E123D120A120912081207),
1171                 .INIT_28                   (256'h1280128012021201120312031203120812701247120012011200120312001202),
1172                 .INIT_29                   (256'h123E123D120A120912081207120C120B1206120512041200120012FF12011202),
1173                 .INIT_2A                   (256'h1200120112001203120012021210123012FF125A12451253125112411240123F),
1174                 .INIT_2B                   (256'h12041200120012FF120112021280128012021202120312031203120812701247),
1175                 .INIT_2C                   (256'h12451253125112411240123F123E123D120A120912081207120C120B12061205),
1176                 .INIT_2D                   (256'h1203120312031240127012471200120112001203120012021210123012FF125A),
1177                 .INIT_2E                   (256'h192A192A192A192A192A192A192A192A190D12FF120112021280128012021202),
1178                 .INIT_2F                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
1179                 .INIT_30                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
1180                 .INIT_31                   (256'h192A192A192A19201920192019201920190D192A192A192A192A192A192A192A),
1181                 .INIT_32                   (256'h196B1963196F196C1943192019331976192019501952194119571920192A192A),
1182                 .INIT_33                   (256'h192A192A192A192019651972196F19431920196719691966196E196F19431920),
1183                 .INIT_34                   (256'h196D196119721967196F19721950192019201920192019201920190D192A192A),
1184                 .INIT_35                   (256'h1920193A196519741961194419201979196C1962196D19651973197319411920),
1185                 .INIT_36                   (256'h196F19461900190D190D19351931193019321920196E1961194A192019341932),
1186                 .INIT_37                   (256'h192019611974196119641920196719691966196E196F196319201964196E1975),
1187                 .INIT_38                   (256'h196F19631920196F194E1900190D194D194F19521950194519451920196E1969),
1188                 .INIT_39                   (256'h1950194519451920196E1969192019611974196119641920196719691966196E),
1189                 .INIT_3A                   (256'h196119661965194419201967196E1969197319551920192D1920194D194F1952),
1190                 .INIT_3B                   (256'h194D1920196B1963196F196C19431920196F194E1900190D19731974196C1975),
1191                 .INIT_3C                   (256'h1900190D1964196519741963196519741965194419201965196C19751964196F),
1192                 .INIT_3D                   (256'h19721975196719691966196E196F196319201967196E196919641961196F194C),
1193                 .INIT_3E                   (256'h1967196E196919641961196F194C1900190D19411920196E196F196919741961),
1194                 .INIT_3F                   (256'h19421920196E196F19691974196119721975196719691966196E196F19631920),
1195                 .INIT_40                   (256'h196719691966196E196F196319201967196E196919641961196F194C1900190D),
1196                 .INIT_41                   (256'h196319651974196519441900190D19431920196E196F19691974196119721975),
1197                 .INIT_42                   (256'h19751964196F194D192019581943194D194D192D194D19431920196419651974),
1198                 .INIT_43                   (256'h192D194D19431920196419651974196319651974196519441900190D1965196C),
1199                 .INIT_44                   (256'h19741969196119571900190D1965196C19751964196F194D1920194C194C1950),
1200                 .INIT_45                   (256'h194C1950192019641969196C1961197619201972196F196619201967196E1969),
1201                 .INIT_46                   (256'h1900192E192E192E192E192E192E196B196C196319201966196519721920194C),
1202                 .INIT_47                   (256'h1900190D192119641969196C196119761920196B196C19631920196619651972),
1203                 .INIT_48                   (256'h193519391944194119201972196F196619201967196E19691974196919611957),
1204                 .INIT_49                   (256'h19501900192E192E192E196B1963196F196C1920194C194C1950192019311931),
1205                 .INIT_4A                   (256'h196F196C19431900190D190D192119641965196B1963196F196C1920194C194C),
1206                 .INIT_4B                   (256'h1965196C1970196D196F19431920196719691966196E196F19431920196B1963),
1207                 .INIT_4C                   (256'h19201967196E19691975196E19691974196E196F19431920192D192019651974),
1208                 .INIT_4D                   (256'h192A192A192A190D1973197319651963196F1972195019201974196F196F1942),
1209                 .INIT_4E                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
1210                 .INIT_4F                   (256'h192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A192A),
1211                 .INIT_50                   (256'h1F011900190D190D192A192A192A192A192A192A192A192A192A192A192A192A),
1212                 .INIT_51                   (256'h500005470555053E055405445000053A055505440554053E05475000DF045F02),
1213                 .INIT_52                   (256'h05445000652B9101054A110825219000410E05300547252605446525C5101180),
1214                 .INIT_53                   (256'hDF045F0150000554DF043FFE5000D501054A253005475000053A0555053E0554),
1215                 .INIT_54                   (256'hD00290030557053E055405475000DF045F025000DF043FFD50002540D0019003),
1216                 .INIT_55                   (256'h000000005000655B900110315000055A055A055A055A055A5000053A05574500),
1217                 .INIT_56                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1218                 .INIT_57                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1219                 .INIT_58                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1220                 .INIT_59                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1221                 .INIT_5A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1222                 .INIT_5B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1223                 .INIT_5C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1224                 .INIT_5D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1225                 .INIT_5E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1226                 .INIT_5F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1227                 .INIT_60                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1228                 .INIT_61                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1229                 .INIT_62                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1230                 .INIT_63                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1231                 .INIT_64                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1232                 .INIT_65                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1233                 .INIT_66                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1234                 .INIT_67                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1235                 .INIT_68                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1236                 .INIT_69                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1237                 .INIT_6A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1238                 .INIT_6B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1239                 .INIT_6C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1240                 .INIT_6D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1241                 .INIT_6E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1242                 .INIT_6F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1243                 .INIT_70                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1244                 .INIT_71                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1245                 .INIT_72                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1246                 .INIT_73                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1247                 .INIT_74                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1248                 .INIT_75                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1249                 .INIT_76                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1250                 .INIT_77                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1251                 .INIT_78                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1252                 .INIT_79                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1253                 .INIT_7A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1254                 .INIT_7B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1255                 .INIT_7C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1256                 .INIT_7D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1257                 .INIT_7E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1258                 .INIT_7F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
1259                 .INITP_00                  (256'h802088020082DD82200802008220080200822008020082DD82CD008365D8282A),
1260                 .INITP_01                  (256'h08800200082200080020B7608800200080020B34020880200802088020082200),
1261                 .INITP_02                  (256'hA828360360202200080020008220008002000822000800200082DD8220008002),
1262                 .INITP_03                  (256'hA5B6B5480B8660A888AA2E92E8E8E92AD825577692A576A8309D874A0C282AAA),
1263                 .INITP_04                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0A),
1264                 .INITP_05                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1265                 .INITP_06                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1266                 .INITP_07                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1267                 .INITP_08                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1268                 .INITP_09                  (256'hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
1269                 .INITP_0A                  (256'h00000000000000000B4AAAA90AAA28B08A88AAAAAD8B6AB0AAAAAAA82AAAAAAA),
1270                 .INITP_0B                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1271                 .INITP_0C                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1272                 .INITP_0D                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1273                 .INITP_0E                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
1274                 .INITP_0F                  (256'h0000000000000000000000000000000000000000000000000000000000000000))
1275     kcpsm6_rom( .ADDRARDADDR               (address_a),
1276                 .ENARDEN                   (enable),
1277                 .CLKARDCLK                 (clk),
1278                 .DOADO                     (data_out_a[31:0]),
1279                 .DOPADOP                   (data_out_a[35:32]), 
1280                 .DIADI                     (data_in_a[31:0]),
1281                 .DIPADIP                   (data_in_a[35:32]), 
1282                 .WEA                       (4'b0000),
1283                 .REGCEAREGCE               (1'b0),
1284                 .RSTRAMARSTRAM             (1'b0),
1285                 .RSTREGARSTREG             (1'b0),
1286                 .ADDRBWRADDR               (address_b),
1287                 .ENBWREN                   (enable_b),
1288                 .CLKBWRCLK                 (clk_b),
1289                 .DOBDO                     (data_out_b[31:0]),
1290                 .DOPBDOP                   (data_out_b[35:32]), 
1291                 .DIBDI                     (data_in_b[31:0]),
1292                 .DIPBDIP                   (data_in_b[35:32]), 
1293                 .WEBWE                     (we_b),
1294                 .REGCEB                    (1'b0),
1295                 .RSTRAMB                   (1'b0),
1296                 .RSTREGB                   (1'b0),
1297                 .CASCADEINA                (1'b0),
1298                 .CASCADEINB                (1'b0),
1299                 .CASCADEOUTA               (),
1300                 .CASCADEOUTB               (),
1301                 .DBITERR                   (),
1302                 .ECCPARITY                 (),
1303                 .RDADDRECC                 (),
1304                 .SBITERR                   (),
1305                 .INJECTDBITERR             (1'b0),       
1306                 .INJECTSBITERR             (1'b0));   
1307    end // akv7; 
1308    //
1309  end // ram_2k_generate;
1310endgenerate             
1311//
1312generate
1313  if (C_RAM_SIZE_KWORDS == 4) begin : ram_4k_generate
1314    if (C_FAMILY == "S6") begin: s6
1315      //
1316      assign address_a[13:0] = {address[10:0], 3'b000};
1317      assign data_in_a = 36'b000000000000000000000000000000000000;
1318      //
1319      FD s6_a11_flop ( .D      (address[11]),
1320                       .Q      (pipe_a11),
1321                       .C      (clk));
1322      //
1323      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1324       s6_4k_mux0_lut( .I0     (data_out_a_ll[0]),
1325                       .I1     (data_out_a_hl[0]),
1326                       .I2     (data_out_a_ll[1]),
1327                       .I3     (data_out_a_hl[1]),
1328                       .I4     (pipe_a11),
1329                       .I5     (1'b1),
1330                       .O5     (instruction[0]),
1331                       .O6     (instruction[1]));
1332      //
1333      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1334       s6_4k_mux2_lut( .I0     (data_out_a_ll[2]),
1335                       .I1     (data_out_a_hl[2]),
1336                       .I2     (data_out_a_ll[3]),
1337                       .I3     (data_out_a_hl[3]),
1338                       .I4     (pipe_a11),
1339                       .I5     (1'b1),
1340                       .O5     (instruction[2]),
1341                       .O6     (instruction[3]));
1342      //
1343      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1344       s6_4k_mux4_lut( .I0     (data_out_a_ll[4]),
1345                       .I1     (data_out_a_hl[4]),
1346                       .I2     (data_out_a_ll[5]),
1347                       .I3     (data_out_a_hl[5]),
1348                       .I4     (pipe_a11),
1349                       .I5     (1'b1),
1350                       .O5     (instruction[4]),
1351                       .O6     (instruction[5]));
1352      //
1353      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1354       s6_4k_mux6_lut( .I0     (data_out_a_ll[6]),
1355                       .I1     (data_out_a_hl[6]),
1356                       .I2     (data_out_a_ll[7]),
1357                       .I3     (data_out_a_hl[7]),
1358                       .I4     (pipe_a11),
1359                       .I5     (1'b1),
1360                       .O5     (instruction[6]),
1361                       .O6     (instruction[7]));
1362      //
1363      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1364       s6_4k_mux8_lut( .I0     (data_out_a_ll[32]),
1365                       .I1     (data_out_a_hl[32]),
1366                       .I2     (data_out_a_lh[0]),
1367                       .I3     (data_out_a_hh[0]),
1368                       .I4     (pipe_a11),
1369                       .I5     (1'b1),
1370                       .O5     (instruction[8]),
1371                       .O6     (instruction[9]));
1372      //
1373      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1374      s6_4k_mux10_lut( .I0     (data_out_a_lh[1]),
1375                       .I1     (data_out_a_hh[1]),
1376                       .I2     (data_out_a_lh[2]),
1377                       .I3     (data_out_a_hh[2]),
1378                       .I4     (pipe_a11),
1379                       .I5     (1'b1),
1380                       .O5     (instruction[10]),
1381                       .O6     (instruction[11]));
1382      //
1383      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1384      s6_4k_mux12_lut( .I0     (data_out_a_lh[3]),
1385                       .I1     (data_out_a_hh[3]),
1386                       .I2     (data_out_a_lh[4]),
1387                       .I3     (data_out_a_hh[4]),
1388                       .I4     (pipe_a11),
1389                       .I5     (1'b1),
1390                       .O5     (instruction[12]),
1391                       .O6     (instruction[13]));
1392      //
1393      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1394      s6_4k_mux14_lut( .I0     (data_out_a_lh[5]),
1395                       .I1     (data_out_a_hh[5]),
1396                       .I2     (data_out_a_lh[6]),
1397                       .I3     (data_out_a_hh[6]),
1398                       .I4     (pipe_a11),
1399                       .I5     (1'b1),
1400                       .O5     (instruction[14]),
1401                       .O6     (instruction[15]));
1402      //
1403      LUT6_2 # (       .INIT   (64'hFF00F0F0CCCCAAAA))
1404      s6_4k_mux16_lut( .I0     (data_out_a_lh[7]),
1405                       .I1     (data_out_a_hh[7]),
1406                       .I2     (data_out_a_lh[32]),
1407                       .I3     (data_out_a_hh[32]),
1408                       .I4     (pipe_a11),
1409                       .I5     (1'b1),
1410                       .O5     (instruction[16]),
1411                       .O6     (instruction[17]));
1412      //
1413      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
1414        assign data_in_b_ll = {3'b000, data_out_b_ll[32], 24'b000000000000000000000000, data_out_b_ll[7:0]};
1415        assign data_in_b_lh = {3'b000, data_out_b_lh[32], 24'b000000000000000000000000, data_out_b_lh[7:0]};
1416        assign data_in_b_hl = {3'b000, data_out_b_hl[32], 24'b000000000000000000000000, data_out_b_hl[7:0]};
1417        assign data_in_b_hh = {3'b000, data_out_b_hh[32], 24'b000000000000000000000000, data_out_b_hh[7:0]};
1418        assign address_b[13:0] = 14'b00000000000000;
1419        assign we_b_l[3:0] = 4'b0000;
1420        assign we_b_h[3:0] = 4'b0000;
1421        assign enable_b = 1'b0;
1422        assign rdl = 1'b0;
1423        assign clk_b = 1'b0;
1424        assign jtag_dout = {data_out_b_h[32], data_out_b_h[7:0], data_out_b_l[32], data_out_b_l[7:0]};
1425      end // no_loader;
1426      //
1427      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
1428        assign data_in_b_lh = {3'b000, jtag_din[17], 24'b000000000000000000000000, jtag_din[16:9]};
1429        assign data_in_b_ll = {3'b000, jtag_din[8],  24'b000000000000000000000000, jtag_din[7:0]};
1430        assign data_in_b_hh = {3'b000, jtag_din[17], 24'b000000000000000000000000, jtag_din[16:9]};
1431        assign data_in_b_hl = {3'b000, jtag_din[8],  24'b000000000000000000000000, jtag_din[7:0]};
1432        assign address_b[13:0] = {jtag_addr[10:0], 3'b000};
1433        //
1434        LUT6_2 # (         .INIT   (64'h8000000020000000))
1435        s6_4k_jtag_we_lut( .I0     (jtag_we),
1436                           .I1     (jtag_addr[11]),
1437                           .I2     (1'b1),
1438                           .I3     (1'b1),
1439                           .I4     (1'b1),
1440                           .I5     (1'b1),
1441                           .O5     (jtag_we_l),
1442                           .O6     (jtag_we_h));
1443        //
1444        assign we_b_l[3:0] = {jtag_we_l, jtag_we_l, jtag_we_l, jtag_we_l};
1445        assign we_b_h[3:0] = {jtag_we_h, jtag_we_h, jtag_we_h, jtag_we_h};
1446        //
1447        assign enable_b = jtag_en[0];
1448        assign rdl = rdl_bus[0];
1449        assign clk_b = jtag_clk;
1450        //
1451        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1452         s6_4k_jtag_mux0_lut( .I0     (data_out_b_ll[0]),
1453                              .I1     (data_out_b_hl[0]),
1454                              .I2     (data_out_b_ll[1]),
1455                              .I3     (data_out_b_hl[1]),
1456                              .I4     (jtag_addr[11]),
1457                              .I5     (1'b1),
1458                              .O5     (jtag_dout[0]),
1459                              .O6     (jtag_dout[1]));
1460        //
1461        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1462         s6_4k_jtag_mux2_lut( .I0     (data_out_b_ll[2]),
1463                              .I1     (data_out_b_hl[2]),
1464                              .I2     (data_out_b_ll[3]),
1465                              .I3     (data_out_b_hl[3]),
1466                              .I4     (jtag_addr[11]),
1467                              .I5     (1'b1),
1468                              .O5     (jtag_dout[2]),
1469                              .O6     (jtag_dout[3]));
1470        //
1471        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1472         s6_4k_jtag_mux4_lut( .I0     (data_out_b_ll[4]),
1473                              .I1     (data_out_b_hl[4]),
1474                              .I2     (data_out_b_ll[5]),
1475                              .I3     (data_out_b_hl[5]),
1476                              .I4     (jtag_addr[11]),
1477                              .I5     (1'b1),
1478                              .O5     (jtag_dout[4]),
1479                              .O6     (jtag_dout[5]));
1480        //
1481        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1482         s6_4k_jtag_mux6_lut( .I0     (data_out_b_ll[6]),
1483                              .I1     (data_out_b_hl[6]),
1484                              .I2     (data_out_b_ll[7]),
1485                              .I3     (data_out_b_hl[7]),
1486                              .I4     (jtag_addr[11]),
1487                              .I5     (1'b1),
1488                              .O5     (jtag_dout[6]),
1489                              .O6     (jtag_dout[7]));
1490        //
1491        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1492         s6_4k_jtag_mux8_lut( .I0     (data_out_b_ll[32]),
1493                              .I1     (data_out_b_hl[32]),
1494                              .I2     (data_out_b_lh[0]),
1495                              .I3     (data_out_b_hh[0]),
1496                              .I4     (jtag_addr[11]),
1497                              .I5     (1'b1),
1498                              .O5     (jtag_dout[8]),
1499                              .O6     (jtag_dout[9]));
1500        //
1501        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1502        s6_4k_jtag_mux10_lut( .I0     (data_out_b_lh[1]),
1503                              .I1     (data_out_b_hh[1]),
1504                              .I2     (data_out_b_lh[2]),
1505                              .I3     (data_out_b_hh[2]),
1506                              .I4     (jtag_addr[11]),
1507                              .I5     (1'b1),
1508                              .O5     (jtag_dout[10]),
1509                              .O6     (jtag_dout[11]));
1510        //
1511        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1512        s6_4k_jtag_mux12_lut( .I0     (data_out_b_lh[3]),
1513                              .I1     (data_out_b_hh[3]),
1514                              .I2     (data_out_b_lh[4]),
1515                              .I3     (data_out_b_hh[4]),
1516                              .I4     (jtag_addr[11]),
1517                              .I5     (1'b1),
1518                              .O5     (jtag_dout[12]),
1519                              .O6     (jtag_dout[13]));
1520        //
1521        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1522        s6_4k_jtag_mux14_lut( .I0     (data_out_b_lh[5]),
1523                              .I1     (data_out_b_hh[5]),
1524                              .I2     (data_out_b_lh[6]),
1525                              .I3     (data_out_b_hh[6]),
1526                              .I4     (jtag_addr[11]),
1527                              .I5     (1'b1),
1528                              .O5     (jtag_dout[14]),
1529                              .O6     (jtag_dout[15]));
1530        //
1531        LUT6_2 # (            .INIT   (64'hFF00F0F0CCCCAAAA))
1532        s6_4k_jtag_mux16_lut( .I0     (data_out_b_lh[7]),
1533                              .I1     (data_out_b_hh[7]),
1534                              .I2     (data_out_b_lh[32]),
1535                              .I3     (data_out_b_hh[32]),
1536                              .I4     (jtag_addr[11]),
1537                              .I5     (1'b1),
1538                              .O5     (jtag_dout[16]),
1539                              .O6     (jtag_dout[17]));
1540        //
1541      end // loader;
1542      //
1543      RAMB16BWER #(.DATA_WIDTH_A        (9),
1544                   .DOA_REG             (0),
1545                   .EN_RSTRAM_A         ("FALSE"),
1546                   .INIT_A              (9'b000000000),
1547                   .RST_PRIORITY_A      ("CE"),
1548                   .SRVAL_A             (9'b000000000),
1549                   .WRITE_MODE_A        ("WRITE_FIRST"),
1550                   .DATA_WIDTH_B        (9),
1551                   .DOB_REG             (0),
1552                   .EN_RSTRAM_B         ("FALSE"),
1553                   .INIT_B              (9'b000000000),
1554                   .RST_PRIORITY_B      ("CE"),
1555                   .SRVAL_B             (9'b000000000),
1556                   .WRITE_MODE_B        ("WRITE_FIRST"),
1557                   .RSTTYPE             ("SYNC"),
1558                   .INIT_FILE           ("NONE"),
1559                   .SIM_COLLISION_CHECK ("ALL"),
1560                   .SIM_DEVICE          ("SPARTAN6"),
1561                   .INIT_00             (256'hF83404611D04960303000702F86E03AACDC10001AAA5C13A9815F8E70206BBEE),
1562                   .INIT_01             (256'h10003AEAF8E9036701A328203BEAA310103B5AA310003ADAF8D0032539014D00),
1563                   .INIT_02             (256'h01A328203C8AA310103B7AA310003AFAF802046701A328203C3AA310103B6AA3),
1564                   .INIT_03             (256'hA310003ABAF8E9036700A310103B2AA310003AAAF8D0036978018700F81B0467),
1565                   .INIT_04             (256'h3B1AA310003A9AF8B6036700A310103B4AA310003ACAF802046700A310103B3A),
1566                   .INIT_05             (256'hAB100002080207F8B603D01104B60303000702F88B036700A328203B9AA31010),
1567                   .INIT_06             (256'h00020A0209F8D003D8EB01FE00F81B046700AB282002600257AB10100223021F),
1568                   .INIT_07             (256'h02046700AB10100233022FAB1000020C020BF8E9036700AB1010022B0227AB10),
1569                   .INIT_08             (256'h0215020FF8D0031933014D00F834046700AB1010023B0237AB1000020E020DF8),
1570                   .INIT_09             (256'h4B0247AB1000021C021BF8E9036701AB2820027E0269AB10100243023FAB1000),
1571                   .INIT_0A             (256'h02BDAB10100253024FAB1000021E021DF802046701AB282002A80293AB101002),
1572                   .INIT_0B             (256'h0100F8AD049CF880047B0092282004870092101001921000026701AB282002D2),
1573                   .INIT_0C             (256'h049C080292010001DBA00100FFA000F870048B100226F84C0486861605040302),
1574                   .INIT_0D             (256'hBD0100FF7FAB0001000101000100FF609001206070A3000101000190C100F89F),
1575                   .INIT_0E             (256'hE420E40003001A35502A00372007501300372070003720800037200650130F00),
1576                   .INIT_0F             (256'h46F80001020000A000F200000100F2400D0300E5010001F1000230080003E410),
1577                   .INIT_10             (256'h45FFFFFFFFFF0108003301FF5A3D4B4A45FFFFFFFFFFFFFFFF00000204000006),
1578                   .INIT_11             (256'h45FF018000FF5A5145FF018000FF5A5145FF018001FF5A5145FF018001FF5A51),
1579                   .INIT_12             (256'hFF41403F3E3D0A0000FF018000FF5A5145FF018000FF5A5145FF018000FF5A51),
1580                   .INIT_13             (256'h1030FF5A45535141403F3E3D0A0908070C0B0605040000FF0101030303111030),
1581                   .INIT_14             (256'h3E3D0A0908070C0B0605040000FF010280800201030303087047000100030002),
1582                   .INIT_15             (256'h040000FF0102808002020303030870470001000300021030FF5A45535141403F),
1583                   .INIT_16             (256'h0303034070470001000300021030FF5A45535141403F3E3D0A0908070C0B0605),
1584                   .INIT_17             (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A0DFF010280800202),
1585                   .INIT_18             (256'h2A2A2A20202020200D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
1586                   .INIT_19             (256'h2A2A2A2065726F43206769666E6F43206B636F6C432033762050524157202A2A),
1587                   .INIT_1A             (256'h203A6574614420796C626D65737341206D6172676F72502020202020200D2A2A),
1588                   .INIT_1B             (256'h2061746164206769666E6F6320646E756F46000D0D35313032206E614A203432),
1589                   .INIT_1C             (256'h504545206E692061746164206769666E6F63206F4E000D4D4F52504545206E69),
1590                   .INIT_1D             (256'h4D206B636F6C43206F4E000D73746C756166654420676E697355202D204D4F52),
1591                   .INIT_1E             (256'h72756769666E6F6320676E6964616F4C000D646574636574654420656C75646F),
1592                   .INIT_1F             (256'h42206E6F69746172756769666E6F6320676E6964616F4C000D41206E6F697461),
1593                   .INIT_20             (256'h6365746544000D43206E6F69746172756769666E6F6320676E6964616F4C000D),
1594                   .INIT_21             (256'h2D4D43206465746365746544000D656C75646F4D2058434D4D2D4D4320646574),
1595                   .INIT_22             (256'h4C502064696C617620726F6620676E6974696157000D656C75646F4D204C4C50),
1596                   .INIT_23             (256'h000D2164696C6176206B6C6320666572002E2E2E2E2E2E6B6C6320666572204C),
1597                   .INIT_24             (256'h50002E2E2E6B636F6C204C4C502031313539444120726F6620676E6974696157),
1598                   .INIT_25             (256'h656C706D6F43206769666E6F43206B636F6C43000D0D2164656B636F6C204C4C),
1599                   .INIT_26             (256'h2A2A2A0D737365636F725020746F6F4220676E69756E69746E6F43202D206574),
1600                   .INIT_27             (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
1601                   .INIT_28             (256'h0047553E5444003A5544543E4700040201000D0D2A2A2A2A2A2A2A2A2A2A2A2A),
1602                   .INIT_29             (256'h0401005404FE00014A3047003A553E5444002B014A0821000E30472644251080),
1603                   .INIT_2A             (256'h0000005B0131005A5A5A5A5A003A57000203573E54470004020004FD00400103),
1604                   .INIT_2B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1605                   .INIT_2C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1606                   .INIT_2D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1607                   .INIT_2E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1608                   .INIT_2F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1609                   .INIT_30             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1610                   .INIT_31             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1611                   .INIT_32             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1612                   .INIT_33             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1613                   .INIT_34             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1614                   .INIT_35             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1615                   .INIT_36             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1616                   .INIT_37             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1617                   .INIT_38             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1618                   .INIT_39             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1619                   .INIT_3A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1620                   .INIT_3B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1621                   .INIT_3C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1622                   .INIT_3D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1623                   .INIT_3E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1624                   .INIT_3F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1625                   .INITP_00            (256'h7CB96F972D2DF2E5CB5397AD6B7AD6F5ADEB5A5BD6B5BD6B5BD6B5A5A1CAD6AB),
1626                   .INITP_01            (256'h635291E3F3DF777EB54A259AC9C17AE02EF9E67972E5BE5CB96F972E5BFBE5CB),
1627                   .INITP_02            (256'hFFFFFF8000000000000000000000000000000000000000000000000000000020),
1628                   .INITP_03            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
1629                   .INITP_04            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
1630                   .INITP_05            (256'h000000000000000000000000000000000000000011F73DB4DDEFBEFF7DFBFFFF),
1631                   .INITP_06            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1632                   .INITP_07            (256'h0000000000000000000000000000000000000000000000000000000000000000))
1633    kcpsm6_rom_ll( .ADDRA               (address_a[13:0]),
1634                   .ENA                 (enable),
1635                   .CLKA                (clk),
1636                   .DOA                 (data_out_a_ll[31:0]),
1637                   .DOPA                (data_out_a_ll[35:32]), 
1638                   .DIA                 (data_in_a[31:0]),
1639                   .DIPA                (data_in_a[35:32]), 
1640                   .WEA                 (4'b0000),
1641                   .REGCEA              (1'b0),
1642                   .RSTA                (1'b0),
1643                   .ADDRB               (address_b[13:0]),
1644                   .ENB                 (enable_b),
1645                   .CLKB                (clk_b),
1646                   .DOB                 (data_out_b_ll[31:0]),
1647                   .DOPB                (data_out_b_ll[35:32]), 
1648                   .DIB                 (data_in_b_ll[31:0]),
1649                   .DIPB                (data_in_b_ll[35:32]), 
1650                   .WEB                 (we_b_l[3:0]),
1651                   .REGCEB              (1'b0),
1652                   .RSTB                (1'b0));
1653      //
1654      RAMB16BWER #(.DATA_WIDTH_A        (9),
1655                   .DOA_REG             (0),
1656                   .EN_RSTRAM_A         ("FALSE"),
1657                   .INIT_A              (9'b000000000),
1658                   .RST_PRIORITY_A      ("CE"),
1659                   .SRVAL_A             (9'b000000000),
1660                   .WRITE_MODE_A        ("WRITE_FIRST"),
1661                   .DATA_WIDTH_B        (9),
1662                   .DOB_REG             (0),
1663                   .EN_RSTRAM_B         ("FALSE"),
1664                   .INIT_B              (9'b000000000),
1665                   .RST_PRIORITY_B      ("CE"),
1666                   .SRVAL_B             (9'b000000000),
1667                   .WRITE_MODE_B        ("WRITE_FIRST"),
1668                   .RSTTYPE             ("SYNC"),
1669                   .INIT_FILE           ("NONE"),
1670                   .SIM_COLLISION_CHECK ("ALL"),
1671                   .SIM_DEVICE          ("SPARTAN6"),
1672                   .INIT_00             (256'h000D0D10906890E818001848000D0DB0EE009C8BB0EE000C0B58000D0D580000),
1673                   .INIT_01             (256'h090C0C0B000D0D100F00090C0C0B00090C0C0B00090C0C0B000D0D1090E890E8),
1674                   .INIT_02             (256'h0F00090C0C0B00090C0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B00),
1675                   .INIT_03             (256'h00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D1090E890E8000D0D10),
1676                   .INIT_04             (256'h0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D100F00090C0C0B),
1677                   .INIT_05             (256'h000A0B0D0C0C0B000D0D10906890E818001848000D0D100F00090C0C0B00090C),
1678                   .INIT_06             (256'h0B0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B),
1679                   .INIT_07             (256'h0D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A),
1680                   .INIT_08             (256'h0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B00),
1681                   .INIT_09             (256'h0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000A0B),
1682                   .INIT_0A             (256'h0C0B000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D),
1683                   .INIT_0B             (256'h5858000D0D00000D0D90EF000D0D08A0EF000D0D08000D0D08100F000A0B0D0C),
1684                   .INIT_0C             (256'h0D901848108D88CD00508D88E95128000D0D90684858000D0D10105858585858),
1685                   .INIT_0D             (256'hB0C8700808109D8C9C8B8B88CA88E971258B017124109C8B8C88C9760028000D),
1686                   .INIT_0E             (256'h00010009682802020602C80202A20A02C8020202C8020202C80202A20A020228),
1687                   .INIT_0F             (256'h58109D8D0188EC2528B0D9D8C8001008080928B05800CA5FA16A020A28580001),
1688                   .INIT_10             (256'h09090909090909090909090909090909090909090909090909286CB168482858),
1689                   .INIT_11             (256'h0909090909090909090909090909090909090909090909090909090909090909),
1690                   .INIT_12             (256'h0909090909090909090909090909090909090909090909090909090909090909),
1691                   .INIT_13             (256'h0909090909090909090909090909090909090909090909090909090909090909),
1692                   .INIT_14             (256'h0909090909090909090909090909090909090909090909090909090909090909),
1693                   .INIT_15             (256'h0909090909090909090909090909090909090909090909090909090909090909),
1694                   .INIT_16             (256'h0909090909090909090909090909090909090909090909090909090909090909),
1695                   .INIT_17             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09090909090909),
1696                   .INIT_18             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1697                   .INIT_19             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1698                   .INIT_1A             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1699                   .INIT_1B             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1700                   .INIT_1C             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1701                   .INIT_1D             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1702                   .INIT_1E             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1703                   .INIT_1F             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1704                   .INIT_20             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1705                   .INIT_21             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1706                   .INIT_22             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1707                   .INIT_23             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1708                   .INIT_24             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1709                   .INIT_25             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1710                   .INIT_26             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1711                   .INIT_27             (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1712                   .INIT_28             (256'h28020202020228020202020202286F2F0F0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
1713                   .INIT_29             (256'h6F2F28026F1F286A02120228020202020228B2C8020812C8A002021202B26208),
1714                   .INIT_2A             (256'h000028B2C808280202020202280202A2684802020202286F2F286F1F28926848),
1715                   .INIT_2B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1716                   .INIT_2C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1717                   .INIT_2D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1718                   .INIT_2E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1719                   .INIT_2F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1720                   .INIT_30             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1721                   .INIT_31             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1722                   .INIT_32             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1723                   .INIT_33             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1724                   .INIT_34             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1725                   .INIT_35             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1726                   .INIT_36             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1727                   .INIT_37             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1728                   .INIT_38             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1729                   .INIT_39             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1730                   .INIT_3A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1731                   .INIT_3B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1732                   .INIT_3C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1733                   .INIT_3D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1734                   .INIT_3E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1735                   .INIT_3F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1736                   .INITP_00            (256'h2810250204D4A040813412842128425084A109A9421094210942109A9A094A67),
1737                   .INITP_01            (256'hCDC2394EAF79EEE7A4159C5E4A93267FE6514450204094081025020409A94081),
1738                   .INITP_02            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3),
1739                   .INITP_03            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
1740                   .INITP_04            (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
1741                   .INITP_05            (256'h000000000000000000000000000000000000000033FE3F6CBAFFEB7CFFFE7FFF),
1742                   .INITP_06            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1743                   .INITP_07            (256'h0000000000000000000000000000000000000000000000000000000000000000))
1744    kcpsm6_rom_lh( .ADDRA               (address_a[13:0]),
1745                   .ENA                 (enable),
1746                   .CLKA                (clk),
1747                   .DOA                 (data_out_a_lh[31:0]),
1748                   .DOPA                (data_out_a_lh[35:32]), 
1749                   .DIA                 (data_in_a[31:0]),
1750                   .DIPA                (data_in_a[35:32]), 
1751                   .WEA                 (4'b0000),
1752                   .REGCEA              (1'b0),
1753                   .RSTA                (1'b0),
1754                   .ADDRB               (address_b[13:0]),
1755                   .ENB                 (enable_b),
1756                   .CLKB                (clk_b),
1757                   .DOB                 (data_out_b_lh[31:0]),
1758                   .DOPB                (data_out_b_lh[35:32]), 
1759                   .DIB                 (data_in_b_lh[31:0]),
1760                   .DIPB                (data_in_b_lh[35:32]), 
1761                   .WEB                 (we_b_l[3:0]),
1762                   .REGCEB              (1'b0),
1763                   .RSTB                (1'b0));
1764      //
1765      RAMB16BWER #(.DATA_WIDTH_A        (9),
1766                   .DOA_REG             (0),
1767                   .EN_RSTRAM_A         ("FALSE"),
1768                   .INIT_A              (9'b000000000),
1769                   .RST_PRIORITY_A      ("CE"),
1770                   .SRVAL_A             (9'b000000000),
1771                   .WRITE_MODE_A        ("WRITE_FIRST"),
1772                   .DATA_WIDTH_B        (9),
1773                   .DOB_REG             (0),
1774                   .EN_RSTRAM_B         ("FALSE"),
1775                   .INIT_B              (9'b000000000),
1776                   .RST_PRIORITY_B      ("CE"),
1777                   .SRVAL_B             (9'b000000000),
1778                   .WRITE_MODE_B        ("WRITE_FIRST"),
1779                   .RSTTYPE             ("SYNC"),
1780                   .INIT_FILE           ("NONE"),
1781                   .SIM_COLLISION_CHECK ("ALL"),
1782                   .SIM_DEVICE          ("SPARTAN6"),
1783                   .INIT_00             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1784                   .INIT_01             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1785                   .INIT_02             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1786                   .INIT_03             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1787                   .INIT_04             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1788                   .INIT_05             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1789                   .INIT_06             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1790                   .INIT_07             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1791                   .INIT_08             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1792                   .INIT_09             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1793                   .INIT_0A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1794                   .INIT_0B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1795                   .INIT_0C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1796                   .INIT_0D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1797                   .INIT_0E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1798                   .INIT_0F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1799                   .INIT_10             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1800                   .INIT_11             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1801                   .INIT_12             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1802                   .INIT_13             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1803                   .INIT_14             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1804                   .INIT_15             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1805                   .INIT_16             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1806                   .INIT_17             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1807                   .INIT_18             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1808                   .INIT_19             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1809                   .INIT_1A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1810                   .INIT_1B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1811                   .INIT_1C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1812                   .INIT_1D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1813                   .INIT_1E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1814                   .INIT_1F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1815                   .INIT_20             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1816                   .INIT_21             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1817                   .INIT_22             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1818                   .INIT_23             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1819                   .INIT_24             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1820                   .INIT_25             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1821                   .INIT_26             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1822                   .INIT_27             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1823                   .INIT_28             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1824                   .INIT_29             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1825                   .INIT_2A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1826                   .INIT_2B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1827                   .INIT_2C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1828                   .INIT_2D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1829                   .INIT_2E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1830                   .INIT_2F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1831                   .INIT_30             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1832                   .INIT_31             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1833                   .INIT_32             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1834                   .INIT_33             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1835                   .INIT_34             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1836                   .INIT_35             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1837                   .INIT_36             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1838                   .INIT_37             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1839                   .INIT_38             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1840                   .INIT_39             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1841                   .INIT_3A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1842                   .INIT_3B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1843                   .INIT_3C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1844                   .INIT_3D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1845                   .INIT_3E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1846                   .INIT_3F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1847                   .INITP_00            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1848                   .INITP_01            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1849                   .INITP_02            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1850                   .INITP_03            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1851                   .INITP_04            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1852                   .INITP_05            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1853                   .INITP_06            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1854                   .INITP_07            (256'h0000000000000000000000000000000000000000000000000000000000000000))
1855    kcpsm6_rom_hl( .ADDRA               (address_a[13:0]),
1856                   .ENA                 (enable),
1857                   .CLKA                (clk),
1858                   .DOA                 (data_out_a_hl[31:0]),
1859                   .DOPA                (data_out_a_hl[35:32]), 
1860                   .DIA                 (data_in_a[31:0]),
1861                   .DIPA                (data_in_a[35:32]), 
1862                   .WEA                 (4'b0000),
1863                   .REGCEA              (1'b0),
1864                   .RSTA                (1'b0),
1865                   .ADDRB               (address_b[13:0]),
1866                   .ENB                 (enable_b),
1867                   .CLKB                (clk_b),
1868                   .DOB                 (data_out_b_hl[31:0]),
1869                   .DOPB                (data_out_b_hl[35:32]), 
1870                   .DIB                 (data_in_b_hl[31:0]),
1871                   .DIPB                (data_in_b_hl[35:32]), 
1872                   .WEB                 (we_b_h[3:0]),
1873                   .REGCEB              (1'b0),
1874                   .RSTB                (1'b0));
1875      //
1876      RAMB16BWER #(.DATA_WIDTH_A        (9),
1877                   .DOA_REG             (0),
1878                   .EN_RSTRAM_A         ("FALSE"),
1879                   .INIT_A              (9'b000000000),
1880                   .RST_PRIORITY_A      ("CE"),
1881                   .SRVAL_A             (9'b000000000),
1882                   .WRITE_MODE_A        ("WRITE_FIRST"),
1883                   .DATA_WIDTH_B        (9),
1884                   .DOB_REG             (0),
1885                   .EN_RSTRAM_B         ("FALSE"),
1886                   .INIT_B              (9'b000000000),
1887                   .RST_PRIORITY_B      ("CE"),
1888                   .SRVAL_B             (9'b000000000),
1889                   .WRITE_MODE_B        ("WRITE_FIRST"),
1890                   .RSTTYPE             ("SYNC"),
1891                   .INIT_FILE           ("NONE"),
1892                   .SIM_COLLISION_CHECK ("ALL"),
1893                   .SIM_DEVICE          ("SPARTAN6"),
1894                   .INIT_00             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1895                   .INIT_01             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1896                   .INIT_02             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1897                   .INIT_03             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1898                   .INIT_04             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1899                   .INIT_05             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1900                   .INIT_06             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1901                   .INIT_07             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1902                   .INIT_08             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1903                   .INIT_09             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1904                   .INIT_0A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1905                   .INIT_0B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1906                   .INIT_0C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1907                   .INIT_0D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1908                   .INIT_0E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1909                   .INIT_0F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1910                   .INIT_10             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1911                   .INIT_11             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1912                   .INIT_12             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1913                   .INIT_13             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1914                   .INIT_14             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1915                   .INIT_15             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1916                   .INIT_16             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1917                   .INIT_17             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1918                   .INIT_18             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1919                   .INIT_19             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1920                   .INIT_1A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1921                   .INIT_1B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1922                   .INIT_1C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1923                   .INIT_1D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1924                   .INIT_1E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1925                   .INIT_1F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1926                   .INIT_20             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1927                   .INIT_21             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1928                   .INIT_22             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1929                   .INIT_23             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1930                   .INIT_24             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1931                   .INIT_25             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1932                   .INIT_26             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1933                   .INIT_27             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1934                   .INIT_28             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1935                   .INIT_29             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1936                   .INIT_2A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1937                   .INIT_2B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1938                   .INIT_2C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1939                   .INIT_2D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1940                   .INIT_2E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1941                   .INIT_2F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1942                   .INIT_30             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1943                   .INIT_31             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1944                   .INIT_32             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1945                   .INIT_33             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1946                   .INIT_34             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1947                   .INIT_35             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1948                   .INIT_36             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1949                   .INIT_37             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1950                   .INIT_38             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1951                   .INIT_39             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1952                   .INIT_3A             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1953                   .INIT_3B             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1954                   .INIT_3C             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1955                   .INIT_3D             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1956                   .INIT_3E             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1957                   .INIT_3F             (256'h0000000000000000000000000000000000000000000000000000000000000000),
1958                   .INITP_00            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1959                   .INITP_01            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1960                   .INITP_02            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1961                   .INITP_03            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1962                   .INITP_04            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1963                   .INITP_05            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1964                   .INITP_06            (256'h0000000000000000000000000000000000000000000000000000000000000000),
1965                   .INITP_07            (256'h0000000000000000000000000000000000000000000000000000000000000000))
1966    kcpsm6_rom_hh( .ADDRA               (address_a[13:0]),
1967                   .ENA                 (enable),
1968                   .CLKA                (clk),
1969                   .DOA                 (data_out_a_hh[31:0]),
1970                   .DOPA                (data_out_a_hh[35:32]), 
1971                   .DIA                 (data_in_a[31:0]),
1972                   .DIPA                (data_in_a[35:32]), 
1973                   .WEA                 (4'b0000),
1974                   .REGCEA              (1'b0),
1975                   .RSTA                (1'b0),
1976                   .ADDRB               (address_b[13:0]),
1977                   .ENB                 (enable_b),
1978                   .CLKB                (clk_b),
1979                   .DOB                 (data_out_b_hh[31:0]),
1980                   .DOPB                (data_out_b_hh[35:32]), 
1981                   .DIB                 (data_in_b_hh[31:0]),
1982                   .DIPB                (data_in_b_hh[35:32]), 
1983                   .WEB                 (we_b_h[3:0]),
1984                   .REGCEB              (1'b0),
1985                   .RSTB                (1'b0));
1986      //
1987    end // s6;
1988    //
1989    //
1990    if (C_FAMILY == "V6") begin: v6
1991      //
1992      assign address_a = {1'b1, address[11:0], 3'b111};
1993      assign instruction = {data_out_a_h[32], data_out_a_h[7:0], data_out_a_l[32], data_out_a_l[7:0]};
1994      assign data_in_a = 36'b00000000000000000000000000000000000;
1995      assign jtag_dout = {data_out_b_h[32], data_out_b_h[7:0], data_out_b_l[32], data_out_b_l[7:0]};
1996      //
1997      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
1998        assign data_in_b_l = {3'b000, data_out_b_l[32], 24'b000000000000000000000000, data_out_b_l[7:0]};
1999        assign data_in_b_h = {3'b000, data_out_b_h[32], 24'b000000000000000000000000, data_out_b_h[7:0]};
2000        assign address_b = 16'b1111111111111111;
2001        assign we_b = 8'b00000000;
2002        assign enable_b = 1'b0;
2003        assign rdl = 1'b0;
2004        assign clk_b = 1'b0;
2005      end // no_loader;
2006      //
2007      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
2008        assign data_in_b_h = {3'b000, jtag_din[17], 24'b000000000000000000000000, jtag_din[16:9]};
2009        assign data_in_b_l = {3'b000, jtag_din[8],  24'b000000000000000000000000, jtag_din[7:0]};
2010        assign address_b = {1'b1, jtag_addr[11:0], 3'b111};
2011        assign we_b = {jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we};
2012        assign enable_b = jtag_en[0];
2013        assign rdl = rdl_bus[0];
2014        assign clk_b = jtag_clk;
2015      end // loader;
2016      //
2017      RAMB36E1 #(.READ_WIDTH_A              (9),
2018                 .WRITE_WIDTH_A             (9),
2019                 .DOA_REG                   (0),
2020                 .INIT_A                    (36'h000000000),
2021                 .RSTREG_PRIORITY_A         ("REGCE"),
2022                 .SRVAL_A                   (36'h000000000),
2023                 .WRITE_MODE_A              ("WRITE_FIRST"),
2024                 .READ_WIDTH_B              (9),
2025                 .WRITE_WIDTH_B             (9),
2026                 .DOB_REG                   (0),
2027                 .INIT_B                    (36'h000000000),
2028                 .RSTREG_PRIORITY_B         ("REGCE"),
2029                 .SRVAL_B                   (36'h000000000),
2030                 .WRITE_MODE_B              ("WRITE_FIRST"),
2031                 .INIT_FILE                 ("NONE"),
2032                 .SIM_COLLISION_CHECK       ("ALL"),
2033                 .RAM_MODE                  ("TDP"),
2034                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
2035                 .EN_ECC_READ               ("FALSE"),
2036                 .EN_ECC_WRITE              ("FALSE"),
2037                 .RAM_EXTENSION_A           ("NONE"),
2038                 .RAM_EXTENSION_B           ("NONE"),
2039                 .SIM_DEVICE                ("VIRTEX6"),
2040                 .INIT_00                   (256'hF83404611D04960303000702F86E03AACDC10001AAA5C13A9815F8E70206BBEE),
2041                 .INIT_01                   (256'h10003AEAF8E9036701A328203BEAA310103B5AA310003ADAF8D0032539014D00),
2042                 .INIT_02                   (256'h01A328203C8AA310103B7AA310003AFAF802046701A328203C3AA310103B6AA3),
2043                 .INIT_03                   (256'hA310003ABAF8E9036700A310103B2AA310003AAAF8D0036978018700F81B0467),
2044                 .INIT_04                   (256'h3B1AA310003A9AF8B6036700A310103B4AA310003ACAF802046700A310103B3A),
2045                 .INIT_05                   (256'hAB100002080207F8B603D01104B60303000702F88B036700A328203B9AA31010),
2046                 .INIT_06                   (256'h00020A0209F8D003D8EB01FE00F81B046700AB282002600257AB10100223021F),
2047                 .INIT_07                   (256'h02046700AB10100233022FAB1000020C020BF8E9036700AB1010022B0227AB10),
2048                 .INIT_08                   (256'h0215020FF8D0031933014D00F834046700AB1010023B0237AB1000020E020DF8),
2049                 .INIT_09                   (256'h4B0247AB1000021C021BF8E9036701AB2820027E0269AB10100243023FAB1000),
2050                 .INIT_0A                   (256'h02BDAB10100253024FAB1000021E021DF802046701AB282002A80293AB101002),
2051                 .INIT_0B                   (256'h0100F8AD049CF880047B0092282004870092101001921000026701AB282002D2),
2052                 .INIT_0C                   (256'h049C080292010001DBA00100FFA000F870048B100226F84C0486861605040302),
2053                 .INIT_0D                   (256'hBD0100FF7FAB0001000101000100FF609001206070A3000101000190C100F89F),
2054                 .INIT_0E                   (256'hE420E40003001A35502A00372007501300372070003720800037200650130F00),
2055                 .INIT_0F                   (256'h46F80001020000A000F200000100F2400D0300E5010001F1000230080003E410),
2056                 .INIT_10                   (256'h45FFFFFFFFFF0108003301FF5A3D4B4A45FFFFFFFFFFFFFFFF00000204000006),
2057                 .INIT_11                   (256'h45FF018000FF5A5145FF018000FF5A5145FF018001FF5A5145FF018001FF5A51),
2058                 .INIT_12                   (256'hFF41403F3E3D0A0000FF018000FF5A5145FF018000FF5A5145FF018000FF5A51),
2059                 .INIT_13                   (256'h1030FF5A45535141403F3E3D0A0908070C0B0605040000FF0101030303111030),
2060                 .INIT_14                   (256'h3E3D0A0908070C0B0605040000FF010280800201030303087047000100030002),
2061                 .INIT_15                   (256'h040000FF0102808002020303030870470001000300021030FF5A45535141403F),
2062                 .INIT_16                   (256'h0303034070470001000300021030FF5A45535141403F3E3D0A0908070C0B0605),
2063                 .INIT_17                   (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A0DFF010280800202),
2064                 .INIT_18                   (256'h2A2A2A20202020200D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
2065                 .INIT_19                   (256'h2A2A2A2065726F43206769666E6F43206B636F6C432033762050524157202A2A),
2066                 .INIT_1A                   (256'h203A6574614420796C626D65737341206D6172676F72502020202020200D2A2A),
2067                 .INIT_1B                   (256'h2061746164206769666E6F6320646E756F46000D0D35313032206E614A203432),
2068                 .INIT_1C                   (256'h504545206E692061746164206769666E6F63206F4E000D4D4F52504545206E69),
2069                 .INIT_1D                   (256'h4D206B636F6C43206F4E000D73746C756166654420676E697355202D204D4F52),
2070                 .INIT_1E                   (256'h72756769666E6F6320676E6964616F4C000D646574636574654420656C75646F),
2071                 .INIT_1F                   (256'h42206E6F69746172756769666E6F6320676E6964616F4C000D41206E6F697461),
2072                 .INIT_20                   (256'h6365746544000D43206E6F69746172756769666E6F6320676E6964616F4C000D),
2073                 .INIT_21                   (256'h2D4D43206465746365746544000D656C75646F4D2058434D4D2D4D4320646574),
2074                 .INIT_22                   (256'h4C502064696C617620726F6620676E6974696157000D656C75646F4D204C4C50),
2075                 .INIT_23                   (256'h000D2164696C6176206B6C6320666572002E2E2E2E2E2E6B6C6320666572204C),
2076                 .INIT_24                   (256'h50002E2E2E6B636F6C204C4C502031313539444120726F6620676E6974696157),
2077                 .INIT_25                   (256'h656C706D6F43206769666E6F43206B636F6C43000D0D2164656B636F6C204C4C),
2078                 .INIT_26                   (256'h2A2A2A0D737365636F725020746F6F4220676E69756E69746E6F43202D206574),
2079                 .INIT_27                   (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
2080                 .INIT_28                   (256'h0047553E5444003A5544543E4700040201000D0D2A2A2A2A2A2A2A2A2A2A2A2A),
2081                 .INIT_29                   (256'h0401005404FE00014A3047003A553E5444002B014A0821000E30472644251080),
2082                 .INIT_2A                   (256'h0000005B0131005A5A5A5A5A003A57000203573E54470004020004FD00400103),
2083                 .INIT_2B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2084                 .INIT_2C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2085                 .INIT_2D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2086                 .INIT_2E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2087                 .INIT_2F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2088                 .INIT_30                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2089                 .INIT_31                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2090                 .INIT_32                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2091                 .INIT_33                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2092                 .INIT_34                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2093                 .INIT_35                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2094                 .INIT_36                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2095                 .INIT_37                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2096                 .INIT_38                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2097                 .INIT_39                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2098                 .INIT_3A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2099                 .INIT_3B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2100                 .INIT_3C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2101                 .INIT_3D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2102                 .INIT_3E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2103                 .INIT_3F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2104                 .INIT_40                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2105                 .INIT_41                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2106                 .INIT_42                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2107                 .INIT_43                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2108                 .INIT_44                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2109                 .INIT_45                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2110                 .INIT_46                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2111                 .INIT_47                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2112                 .INIT_48                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2113                 .INIT_49                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2114                 .INIT_4A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2115                 .INIT_4B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2116                 .INIT_4C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2117                 .INIT_4D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2118                 .INIT_4E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2119                 .INIT_4F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2120                 .INIT_50                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2121                 .INIT_51                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2122                 .INIT_52                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2123                 .INIT_53                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2124                 .INIT_54                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2125                 .INIT_55                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2126                 .INIT_56                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2127                 .INIT_57                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2128                 .INIT_58                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2129                 .INIT_59                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2130                 .INIT_5A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2131                 .INIT_5B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2132                 .INIT_5C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2133                 .INIT_5D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2134                 .INIT_5E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2135                 .INIT_5F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2136                 .INIT_60                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2137                 .INIT_61                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2138                 .INIT_62                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2139                 .INIT_63                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2140                 .INIT_64                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2141                 .INIT_65                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2142                 .INIT_66                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2143                 .INIT_67                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2144                 .INIT_68                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2145                 .INIT_69                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2146                 .INIT_6A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2147                 .INIT_6B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2148                 .INIT_6C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2149                 .INIT_6D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2150                 .INIT_6E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2151                 .INIT_6F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2152                 .INIT_70                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2153                 .INIT_71                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2154                 .INIT_72                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2155                 .INIT_73                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2156                 .INIT_74                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2157                 .INIT_75                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2158                 .INIT_76                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2159                 .INIT_77                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2160                 .INIT_78                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2161                 .INIT_79                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2162                 .INIT_7A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2163                 .INIT_7B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2164                 .INIT_7C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2165                 .INIT_7D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2166                 .INIT_7E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2167                 .INIT_7F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2168                 .INITP_00                  (256'h7CB96F972D2DF2E5CB5397AD6B7AD6F5ADEB5A5BD6B5BD6B5BD6B5A5A1CAD6AB),
2169                 .INITP_01                  (256'h635291E3F3DF777EB54A259AC9C17AE02EF9E67972E5BE5CB96F972E5BFBE5CB),
2170                 .INITP_02                  (256'hFFFFFF8000000000000000000000000000000000000000000000000000000020),
2171                 .INITP_03                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2172                 .INITP_04                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2173                 .INITP_05                  (256'h000000000000000000000000000000000000000011F73DB4DDEFBEFF7DFBFFFF),
2174                 .INITP_06                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2175                 .INITP_07                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2176                 .INITP_08                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2177                 .INITP_09                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2178                 .INITP_0A                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2179                 .INITP_0B                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2180                 .INITP_0C                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2181                 .INITP_0D                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2182                 .INITP_0E                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2183                 .INITP_0F                  (256'h0000000000000000000000000000000000000000000000000000000000000000))
2184   kcpsm6_rom_l( .ADDRARDADDR               (address_a),
2185                 .ENARDEN                   (enable),
2186                 .CLKARDCLK                 (clk),
2187                 .DOADO                     (data_out_a_l[31:0]),
2188                 .DOPADOP                   (data_out_a_l[35:32]), 
2189                 .DIADI                     (data_in_a[31:0]),
2190                 .DIPADIP                   (data_in_a[35:32]), 
2191                 .WEA                       (4'b0000),
2192                 .REGCEAREGCE               (1'b0),
2193                 .RSTRAMARSTRAM             (1'b0),
2194                 .RSTREGARSTREG             (1'b0),
2195                 .ADDRBWRADDR               (address_b),
2196                 .ENBWREN                   (enable_b),
2197                 .CLKBWRCLK                 (clk_b),
2198                 .DOBDO                     (data_out_b_l[31:0]),
2199                 .DOPBDOP                   (data_out_b_l[35:32]), 
2200                 .DIBDI                     (data_in_b_l[31:0]),
2201                 .DIPBDIP                   (data_in_b_l[35:32]), 
2202                 .WEBWE                     (we_b),
2203                 .REGCEB                    (1'b0),
2204                 .RSTRAMB                   (1'b0),
2205                 .RSTREGB                   (1'b0),
2206                 .CASCADEINA                (1'b0),
2207                 .CASCADEINB                (1'b0),
2208                 .CASCADEOUTA               (),
2209                 .CASCADEOUTB               (),
2210                 .DBITERR                   (),
2211                 .ECCPARITY                 (),
2212                 .RDADDRECC                 (),
2213                 .SBITERR                   (),
2214                 .INJECTDBITERR             (1'b0),     
2215                 .INJECTSBITERR             (1'b0));   
2216      //
2217      RAMB36E1 #(.READ_WIDTH_A              (9),
2218                 .WRITE_WIDTH_A             (9),
2219                 .DOA_REG                   (0),
2220                 .INIT_A                    (36'h000000000),
2221                 .RSTREG_PRIORITY_A         ("REGCE"),
2222                 .SRVAL_A                   (36'h000000000),
2223                 .WRITE_MODE_A              ("WRITE_FIRST"),
2224                 .READ_WIDTH_B              (9),
2225                 .WRITE_WIDTH_B             (9),
2226                 .DOB_REG                   (0),
2227                 .INIT_B                    (36'h000000000),
2228                 .RSTREG_PRIORITY_B         ("REGCE"),
2229                 .SRVAL_B                   (36'h000000000),
2230                 .WRITE_MODE_B              ("WRITE_FIRST"),
2231                 .INIT_FILE                 ("NONE"),
2232                 .SIM_COLLISION_CHECK       ("ALL"),
2233                 .RAM_MODE                  ("TDP"),
2234                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
2235                 .EN_ECC_READ               ("FALSE"),
2236                 .EN_ECC_WRITE              ("FALSE"),
2237                 .RAM_EXTENSION_A           ("NONE"),
2238                 .RAM_EXTENSION_B           ("NONE"),
2239                 .SIM_DEVICE                ("VIRTEX6"),
2240                 .INIT_00                   (256'h000D0D10906890E818001848000D0DB0EE009C8BB0EE000C0B58000D0D580000),
2241                 .INIT_01                   (256'h090C0C0B000D0D100F00090C0C0B00090C0C0B00090C0C0B000D0D1090E890E8),
2242                 .INIT_02                   (256'h0F00090C0C0B00090C0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B00),
2243                 .INIT_03                   (256'h00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D1090E890E8000D0D10),
2244                 .INIT_04                   (256'h0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D100F00090C0C0B),
2245                 .INIT_05                   (256'h000A0B0D0C0C0B000D0D10906890E818001848000D0D100F00090C0C0B00090C),
2246                 .INIT_06                   (256'h0B0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B),
2247                 .INIT_07                   (256'h0D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A),
2248                 .INIT_08                   (256'h0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B00),
2249                 .INIT_09                   (256'h0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000A0B),
2250                 .INIT_0A                   (256'h0C0B000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D),
2251                 .INIT_0B                   (256'h5858000D0D00000D0D90EF000D0D08A0EF000D0D08000D0D08100F000A0B0D0C),
2252                 .INIT_0C                   (256'h0D901848108D88CD00508D88E95128000D0D90684858000D0D10105858585858),
2253                 .INIT_0D                   (256'hB0C8700808109D8C9C8B8B88CA88E971258B017124109C8B8C88C9760028000D),
2254                 .INIT_0E                   (256'h00010009682802020602C80202A20A02C8020202C8020202C80202A20A020228),
2255                 .INIT_0F                   (256'h58109D8D0188EC2528B0D9D8C8001008080928B05800CA5FA16A020A28580001),
2256                 .INIT_10                   (256'h09090909090909090909090909090909090909090909090909286CB168482858),
2257                 .INIT_11                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2258                 .INIT_12                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2259                 .INIT_13                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2260                 .INIT_14                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2261                 .INIT_15                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2262                 .INIT_16                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2263                 .INIT_17                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09090909090909),
2264                 .INIT_18                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2265                 .INIT_19                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2266                 .INIT_1A                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2267                 .INIT_1B                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2268                 .INIT_1C                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2269                 .INIT_1D                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2270                 .INIT_1E                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2271                 .INIT_1F                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2272                 .INIT_20                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2273                 .INIT_21                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2274                 .INIT_22                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2275                 .INIT_23                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2276                 .INIT_24                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2277                 .INIT_25                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2278                 .INIT_26                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2279                 .INIT_27                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2280                 .INIT_28                   (256'h28020202020228020202020202286F2F0F0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2281                 .INIT_29                   (256'h6F2F28026F1F286A02120228020202020228B2C8020812C8A002021202B26208),
2282                 .INIT_2A                   (256'h000028B2C808280202020202280202A2684802020202286F2F286F1F28926848),
2283                 .INIT_2B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2284                 .INIT_2C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2285                 .INIT_2D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2286                 .INIT_2E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2287                 .INIT_2F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2288                 .INIT_30                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2289                 .INIT_31                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2290                 .INIT_32                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2291                 .INIT_33                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2292                 .INIT_34                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2293                 .INIT_35                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2294                 .INIT_36                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2295                 .INIT_37                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2296                 .INIT_38                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2297                 .INIT_39                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2298                 .INIT_3A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2299                 .INIT_3B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2300                 .INIT_3C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2301                 .INIT_3D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2302                 .INIT_3E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2303                 .INIT_3F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2304                 .INIT_40                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2305                 .INIT_41                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2306                 .INIT_42                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2307                 .INIT_43                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2308                 .INIT_44                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2309                 .INIT_45                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2310                 .INIT_46                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2311                 .INIT_47                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2312                 .INIT_48                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2313                 .INIT_49                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2314                 .INIT_4A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2315                 .INIT_4B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2316                 .INIT_4C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2317                 .INIT_4D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2318                 .INIT_4E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2319                 .INIT_4F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2320                 .INIT_50                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2321                 .INIT_51                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2322                 .INIT_52                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2323                 .INIT_53                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2324                 .INIT_54                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2325                 .INIT_55                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2326                 .INIT_56                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2327                 .INIT_57                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2328                 .INIT_58                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2329                 .INIT_59                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2330                 .INIT_5A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2331                 .INIT_5B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2332                 .INIT_5C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2333                 .INIT_5D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2334                 .INIT_5E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2335                 .INIT_5F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2336                 .INIT_60                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2337                 .INIT_61                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2338                 .INIT_62                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2339                 .INIT_63                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2340                 .INIT_64                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2341                 .INIT_65                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2342                 .INIT_66                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2343                 .INIT_67                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2344                 .INIT_68                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2345                 .INIT_69                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2346                 .INIT_6A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2347                 .INIT_6B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2348                 .INIT_6C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2349                 .INIT_6D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2350                 .INIT_6E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2351                 .INIT_6F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2352                 .INIT_70                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2353                 .INIT_71                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2354                 .INIT_72                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2355                 .INIT_73                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2356                 .INIT_74                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2357                 .INIT_75                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2358                 .INIT_76                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2359                 .INIT_77                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2360                 .INIT_78                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2361                 .INIT_79                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2362                 .INIT_7A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2363                 .INIT_7B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2364                 .INIT_7C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2365                 .INIT_7D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2366                 .INIT_7E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2367                 .INIT_7F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2368                 .INITP_00                  (256'h2810250204D4A040813412842128425084A109A9421094210942109A9A094A67),
2369                 .INITP_01                  (256'hCDC2394EAF79EEE7A4159C5E4A93267FE6514450204094081025020409A94081),
2370                 .INITP_02                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3),
2371                 .INITP_03                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2372                 .INITP_04                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2373                 .INITP_05                  (256'h000000000000000000000000000000000000000033FE3F6CBAFFEB7CFFFE7FFF),
2374                 .INITP_06                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2375                 .INITP_07                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2376                 .INITP_08                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2377                 .INITP_09                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2378                 .INITP_0A                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2379                 .INITP_0B                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2380                 .INITP_0C                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2381                 .INITP_0D                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2382                 .INITP_0E                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2383                 .INITP_0F                  (256'h0000000000000000000000000000000000000000000000000000000000000000))
2384   kcpsm6_rom_h( .ADDRARDADDR               (address_a),
2385                 .ENARDEN                   (enable),
2386                 .CLKARDCLK                 (clk),
2387                 .DOADO                     (data_out_a_h[31:0]),
2388                 .DOPADOP                   (data_out_a_h[35:32]), 
2389                 .DIADI                     (data_in_a[31:0]),
2390                 .DIPADIP                   (data_in_a[35:32]), 
2391                 .WEA                       (4'b0000),
2392                 .REGCEAREGCE               (1'b0),
2393                 .RSTRAMARSTRAM             (1'b0),
2394                 .RSTREGARSTREG             (1'b0),
2395                 .ADDRBWRADDR               (address_b),
2396                 .ENBWREN                   (enable_b),
2397                 .CLKBWRCLK                 (clk_b),
2398                 .DOBDO                     (data_out_b_h[31:0]),
2399                 .DOPBDOP                   (data_out_b_h[35:32]), 
2400                 .DIBDI                     (data_in_b_h[31:0]),
2401                 .DIPBDIP                   (data_in_b_h[35:32]), 
2402                 .WEBWE                     (we_b),
2403                 .REGCEB                    (1'b0),
2404                 .RSTRAMB                   (1'b0),
2405                 .RSTREGB                   (1'b0),
2406                 .CASCADEINA                (1'b0),
2407                 .CASCADEINB                (1'b0),
2408                 .CASCADEOUTA               (),
2409                 .CASCADEOUTB               (),
2410                 .DBITERR                   (),
2411                 .ECCPARITY                 (),
2412                 .RDADDRECC                 (),
2413                 .SBITERR                   (),
2414                 .INJECTDBITERR             (1'b0),     
2415                 .INJECTSBITERR             (1'b0)); 
2416    end // v6; 
2417    //
2418    //
2419    if (C_FAMILY == "7S") begin: akv7
2420      //
2421      assign address_a = {1'b1, address[11:0], 3'b111};
2422      assign instruction = {data_out_a_h[32], data_out_a_h[7:0], data_out_a_l[32], data_out_a_l[7:0]};
2423      assign data_in_a = 36'b00000000000000000000000000000000000;
2424      assign jtag_dout = {data_out_b_h[32], data_out_b_h[7:0], data_out_b_l[32], data_out_b_l[7:0]};
2425      //
2426      if (C_JTAG_LOADER_ENABLE == 0) begin : no_loader
2427        assign data_in_b_l = {3'b000, data_out_b_l[32], 24'b000000000000000000000000, data_out_b_l[7:0]};
2428        assign data_in_b_h = {3'b000, data_out_b_h[32], 24'b000000000000000000000000, data_out_b_h[7:0]};
2429        assign address_b = 16'b1111111111111111;
2430        assign we_b = 8'b00000000;
2431        assign enable_b = 1'b0;
2432        assign rdl = 1'b0;
2433        assign clk_b = 1'b0;
2434      end // no_loader;
2435      //
2436      if (C_JTAG_LOADER_ENABLE == 1) begin : loader
2437        assign data_in_b_h = {3'b000, jtag_din[17], 24'b000000000000000000000000, jtag_din[16:9]};
2438        assign data_in_b_l = {3'b000, jtag_din[8],  24'b000000000000000000000000, jtag_din[7:0]};
2439        assign address_b = {1'b1, jtag_addr[11:0], 3'b111};
2440        assign we_b = {jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we, jtag_we};
2441        assign enable_b = jtag_en[0];
2442        assign rdl = rdl_bus[0];
2443        assign clk_b = jtag_clk;
2444      end // loader;
2445      //
2446      RAMB36E1 #(.READ_WIDTH_A              (9),
2447                 .WRITE_WIDTH_A             (9),
2448                 .DOA_REG                   (0),
2449                 .INIT_A                    (36'h000000000),
2450                 .RSTREG_PRIORITY_A         ("REGCE"),
2451                 .SRVAL_A                   (36'h000000000),
2452                 .WRITE_MODE_A              ("WRITE_FIRST"),
2453                 .READ_WIDTH_B              (9),
2454                 .WRITE_WIDTH_B             (9),
2455                 .DOB_REG                   (0),
2456                 .INIT_B                    (36'h000000000),
2457                 .RSTREG_PRIORITY_B         ("REGCE"),
2458                 .SRVAL_B                   (36'h000000000),
2459                 .WRITE_MODE_B              ("WRITE_FIRST"),
2460                 .INIT_FILE                 ("NONE"),
2461                 .SIM_COLLISION_CHECK       ("ALL"),
2462                 .RAM_MODE                  ("TDP"),
2463                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
2464                 .EN_ECC_READ               ("FALSE"),
2465                 .EN_ECC_WRITE              ("FALSE"),
2466                 .RAM_EXTENSION_A           ("NONE"),
2467                 .RAM_EXTENSION_B           ("NONE"),
2468                 .SIM_DEVICE                ("7SERIES"),
2469                 .INIT_00                   (256'hF83404611D04960303000702F86E03AACDC10001AAA5C13A9815F8E70206BBEE),
2470                 .INIT_01                   (256'h10003AEAF8E9036701A328203BEAA310103B5AA310003ADAF8D0032539014D00),
2471                 .INIT_02                   (256'h01A328203C8AA310103B7AA310003AFAF802046701A328203C3AA310103B6AA3),
2472                 .INIT_03                   (256'hA310003ABAF8E9036700A310103B2AA310003AAAF8D0036978018700F81B0467),
2473                 .INIT_04                   (256'h3B1AA310003A9AF8B6036700A310103B4AA310003ACAF802046700A310103B3A),
2474                 .INIT_05                   (256'hAB100002080207F8B603D01104B60303000702F88B036700A328203B9AA31010),
2475                 .INIT_06                   (256'h00020A0209F8D003D8EB01FE00F81B046700AB282002600257AB10100223021F),
2476                 .INIT_07                   (256'h02046700AB10100233022FAB1000020C020BF8E9036700AB1010022B0227AB10),
2477                 .INIT_08                   (256'h0215020FF8D0031933014D00F834046700AB1010023B0237AB1000020E020DF8),
2478                 .INIT_09                   (256'h4B0247AB1000021C021BF8E9036701AB2820027E0269AB10100243023FAB1000),
2479                 .INIT_0A                   (256'h02BDAB10100253024FAB1000021E021DF802046701AB282002A80293AB101002),
2480                 .INIT_0B                   (256'h0100F8AD049CF880047B0092282004870092101001921000026701AB282002D2),
2481                 .INIT_0C                   (256'h049C080292010001DBA00100FFA000F870048B100226F84C0486861605040302),
2482                 .INIT_0D                   (256'hBD0100FF7FAB0001000101000100FF609001206070A3000101000190C100F89F),
2483                 .INIT_0E                   (256'hE420E40003001A35502A00372007501300372070003720800037200650130F00),
2484                 .INIT_0F                   (256'h46F80001020000A000F200000100F2400D0300E5010001F1000230080003E410),
2485                 .INIT_10                   (256'h45FFFFFFFFFF0108003301FF5A3D4B4A45FFFFFFFFFFFFFFFF00000204000006),
2486                 .INIT_11                   (256'h45FF018000FF5A5145FF018000FF5A5145FF018001FF5A5145FF018001FF5A51),
2487                 .INIT_12                   (256'hFF41403F3E3D0A0000FF018000FF5A5145FF018000FF5A5145FF018000FF5A51),
2488                 .INIT_13                   (256'h1030FF5A45535141403F3E3D0A0908070C0B0605040000FF0101030303111030),
2489                 .INIT_14                   (256'h3E3D0A0908070C0B0605040000FF010280800201030303087047000100030002),
2490                 .INIT_15                   (256'h040000FF0102808002020303030870470001000300021030FF5A45535141403F),
2491                 .INIT_16                   (256'h0303034070470001000300021030FF5A45535141403F3E3D0A0908070C0B0605),
2492                 .INIT_17                   (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A0DFF010280800202),
2493                 .INIT_18                   (256'h2A2A2A20202020200D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
2494                 .INIT_19                   (256'h2A2A2A2065726F43206769666E6F43206B636F6C432033762050524157202A2A),
2495                 .INIT_1A                   (256'h203A6574614420796C626D65737341206D6172676F72502020202020200D2A2A),
2496                 .INIT_1B                   (256'h2061746164206769666E6F6320646E756F46000D0D35313032206E614A203432),
2497                 .INIT_1C                   (256'h504545206E692061746164206769666E6F63206F4E000D4D4F52504545206E69),
2498                 .INIT_1D                   (256'h4D206B636F6C43206F4E000D73746C756166654420676E697355202D204D4F52),
2499                 .INIT_1E                   (256'h72756769666E6F6320676E6964616F4C000D646574636574654420656C75646F),
2500                 .INIT_1F                   (256'h42206E6F69746172756769666E6F6320676E6964616F4C000D41206E6F697461),
2501                 .INIT_20                   (256'h6365746544000D43206E6F69746172756769666E6F6320676E6964616F4C000D),
2502                 .INIT_21                   (256'h2D4D43206465746365746544000D656C75646F4D2058434D4D2D4D4320646574),
2503                 .INIT_22                   (256'h4C502064696C617620726F6620676E6974696157000D656C75646F4D204C4C50),
2504                 .INIT_23                   (256'h000D2164696C6176206B6C6320666572002E2E2E2E2E2E6B6C6320666572204C),
2505                 .INIT_24                   (256'h50002E2E2E6B636F6C204C4C502031313539444120726F6620676E6974696157),
2506                 .INIT_25                   (256'h656C706D6F43206769666E6F43206B636F6C43000D0D2164656B636F6C204C4C),
2507                 .INIT_26                   (256'h2A2A2A0D737365636F725020746F6F4220676E69756E69746E6F43202D206574),
2508                 .INIT_27                   (256'h2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A),
2509                 .INIT_28                   (256'h0047553E5444003A5544543E4700040201000D0D2A2A2A2A2A2A2A2A2A2A2A2A),
2510                 .INIT_29                   (256'h0401005404FE00014A3047003A553E5444002B014A0821000E30472644251080),
2511                 .INIT_2A                   (256'h0000005B0131005A5A5A5A5A003A57000203573E54470004020004FD00400103),
2512                 .INIT_2B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2513                 .INIT_2C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2514                 .INIT_2D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2515                 .INIT_2E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2516                 .INIT_2F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2517                 .INIT_30                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2518                 .INIT_31                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2519                 .INIT_32                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2520                 .INIT_33                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2521                 .INIT_34                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2522                 .INIT_35                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2523                 .INIT_36                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2524                 .INIT_37                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2525                 .INIT_38                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2526                 .INIT_39                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2527                 .INIT_3A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2528                 .INIT_3B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2529                 .INIT_3C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2530                 .INIT_3D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2531                 .INIT_3E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2532                 .INIT_3F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2533                 .INIT_40                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2534                 .INIT_41                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2535                 .INIT_42                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2536                 .INIT_43                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2537                 .INIT_44                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2538                 .INIT_45                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2539                 .INIT_46                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2540                 .INIT_47                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2541                 .INIT_48                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2542                 .INIT_49                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2543                 .INIT_4A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2544                 .INIT_4B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2545                 .INIT_4C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2546                 .INIT_4D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2547                 .INIT_4E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2548                 .INIT_4F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2549                 .INIT_50                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2550                 .INIT_51                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2551                 .INIT_52                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2552                 .INIT_53                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2553                 .INIT_54                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2554                 .INIT_55                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2555                 .INIT_56                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2556                 .INIT_57                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2557                 .INIT_58                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2558                 .INIT_59                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2559                 .INIT_5A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2560                 .INIT_5B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2561                 .INIT_5C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2562                 .INIT_5D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2563                 .INIT_5E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2564                 .INIT_5F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2565                 .INIT_60                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2566                 .INIT_61                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2567                 .INIT_62                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2568                 .INIT_63                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2569                 .INIT_64                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2570                 .INIT_65                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2571                 .INIT_66                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2572                 .INIT_67                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2573                 .INIT_68                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2574                 .INIT_69                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2575                 .INIT_6A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2576                 .INIT_6B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2577                 .INIT_6C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2578                 .INIT_6D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2579                 .INIT_6E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2580                 .INIT_6F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2581                 .INIT_70                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2582                 .INIT_71                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2583                 .INIT_72                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2584                 .INIT_73                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2585                 .INIT_74                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2586                 .INIT_75                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2587                 .INIT_76                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2588                 .INIT_77                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2589                 .INIT_78                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2590                 .INIT_79                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2591                 .INIT_7A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2592                 .INIT_7B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2593                 .INIT_7C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2594                 .INIT_7D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2595                 .INIT_7E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2596                 .INIT_7F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2597                 .INITP_00                  (256'h7CB96F972D2DF2E5CB5397AD6B7AD6F5ADEB5A5BD6B5BD6B5BD6B5A5A1CAD6AB),
2598                 .INITP_01                  (256'h635291E3F3DF777EB54A259AC9C17AE02EF9E67972E5BE5CB96F972E5BFBE5CB),
2599                 .INITP_02                  (256'hFFFFFF8000000000000000000000000000000000000000000000000000000020),
2600                 .INITP_03                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2601                 .INITP_04                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2602                 .INITP_05                  (256'h000000000000000000000000000000000000000011F73DB4DDEFBEFF7DFBFFFF),
2603                 .INITP_06                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2604                 .INITP_07                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2605                 .INITP_08                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2606                 .INITP_09                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2607                 .INITP_0A                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2608                 .INITP_0B                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2609                 .INITP_0C                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2610                 .INITP_0D                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2611                 .INITP_0E                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2612                 .INITP_0F                  (256'h0000000000000000000000000000000000000000000000000000000000000000))
2613   kcpsm6_rom_l( .ADDRARDADDR               (address_a),
2614                 .ENARDEN                   (enable),
2615                 .CLKARDCLK                 (clk),
2616                 .DOADO                     (data_out_a_l[31:0]),
2617                 .DOPADOP                   (data_out_a_l[35:32]), 
2618                 .DIADI                     (data_in_a[31:0]),
2619                 .DIPADIP                   (data_in_a[35:32]), 
2620                 .WEA                       (4'b0000),
2621                 .REGCEAREGCE               (1'b0),
2622                 .RSTRAMARSTRAM             (1'b0),
2623                 .RSTREGARSTREG             (1'b0),
2624                 .ADDRBWRADDR               (address_b),
2625                 .ENBWREN                   (enable_b),
2626                 .CLKBWRCLK                 (clk_b),
2627                 .DOBDO                     (data_out_b_l[31:0]),
2628                 .DOPBDOP                   (data_out_b_l[35:32]), 
2629                 .DIBDI                     (data_in_b_l[31:0]),
2630                 .DIPBDIP                   (data_in_b_l[35:32]), 
2631                 .WEBWE                     (we_b),
2632                 .REGCEB                    (1'b0),
2633                 .RSTRAMB                   (1'b0),
2634                 .RSTREGB                   (1'b0),
2635                 .CASCADEINA                (1'b0),
2636                 .CASCADEINB                (1'b0),
2637                 .CASCADEOUTA               (),
2638                 .CASCADEOUTB               (),
2639                 .DBITERR                   (),
2640                 .ECCPARITY                 (),
2641                 .RDADDRECC                 (),
2642                 .SBITERR                   (),
2643                 .INJECTDBITERR             (1'b0),     
2644                 .INJECTSBITERR             (1'b0));   
2645      //
2646      RAMB36E1 #(.READ_WIDTH_A              (9),
2647                 .WRITE_WIDTH_A             (9),
2648                 .DOA_REG                   (0),
2649                 .INIT_A                    (36'h000000000),
2650                 .RSTREG_PRIORITY_A         ("REGCE"),
2651                 .SRVAL_A                   (36'h000000000),
2652                 .WRITE_MODE_A              ("WRITE_FIRST"),
2653                 .READ_WIDTH_B              (9),
2654                 .WRITE_WIDTH_B             (9),
2655                 .DOB_REG                   (0),
2656                 .INIT_B                    (36'h000000000),
2657                 .RSTREG_PRIORITY_B         ("REGCE"),
2658                 .SRVAL_B                   (36'h000000000),
2659                 .WRITE_MODE_B              ("WRITE_FIRST"),
2660                 .INIT_FILE                 ("NONE"),
2661                 .SIM_COLLISION_CHECK       ("ALL"),
2662                 .RAM_MODE                  ("TDP"),
2663                 .RDADDR_COLLISION_HWCONFIG ("DELAYED_WRITE"),
2664                 .EN_ECC_READ               ("FALSE"),
2665                 .EN_ECC_WRITE              ("FALSE"),
2666                 .RAM_EXTENSION_A           ("NONE"),
2667                 .RAM_EXTENSION_B           ("NONE"),
2668                 .SIM_DEVICE                ("7SERIES"),
2669                 .INIT_00                   (256'h000D0D10906890E818001848000D0DB0EE009C8BB0EE000C0B58000D0D580000),
2670                 .INIT_01                   (256'h090C0C0B000D0D100F00090C0C0B00090C0C0B00090C0C0B000D0D1090E890E8),
2671                 .INIT_02                   (256'h0F00090C0C0B00090C0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B00),
2672                 .INIT_03                   (256'h00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D1090E890E8000D0D10),
2673                 .INIT_04                   (256'h0C0B00090C0C0B000D0D100F00090C0C0B00090C0C0B000D0D100F00090C0C0B),
2674                 .INIT_05                   (256'h000A0B0D0C0C0B000D0D10906890E818001848000D0D100F00090C0C0B00090C),
2675                 .INIT_06                   (256'h0B0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B),
2676                 .INIT_07                   (256'h0D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A),
2677                 .INIT_08                   (256'h0D0C0C0B000D0D1090E890E8000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B00),
2678                 .INIT_09                   (256'h0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D0C0C0B000A0B),
2679                 .INIT_0A                   (256'h0C0B000A0B0D0C0C0B000A0B0D0C0C0B000D0D100F000A0B0D0C0C0B000A0B0D),
2680                 .INIT_0B                   (256'h5858000D0D00000D0D90EF000D0D08A0EF000D0D08000D0D08100F000A0B0D0C),
2681                 .INIT_0C                   (256'h0D901848108D88CD00508D88E95128000D0D90684858000D0D10105858585858),
2682                 .INIT_0D                   (256'hB0C8700808109D8C9C8B8B88CA88E971258B017124109C8B8C88C9760028000D),
2683                 .INIT_0E                   (256'h00010009682802020602C80202A20A02C8020202C8020202C80202A20A020228),
2684                 .INIT_0F                   (256'h58109D8D0188EC2528B0D9D8C8001008080928B05800CA5FA16A020A28580001),
2685                 .INIT_10                   (256'h09090909090909090909090909090909090909090909090909286CB168482858),
2686                 .INIT_11                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2687                 .INIT_12                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2688                 .INIT_13                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2689                 .INIT_14                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2690                 .INIT_15                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2691                 .INIT_16                   (256'h0909090909090909090909090909090909090909090909090909090909090909),
2692                 .INIT_17                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09090909090909),
2693                 .INIT_18                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2694                 .INIT_19                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2695                 .INIT_1A                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2696                 .INIT_1B                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2697                 .INIT_1C                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2698                 .INIT_1D                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2699                 .INIT_1E                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2700                 .INIT_1F                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2701                 .INIT_20                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2702                 .INIT_21                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2703                 .INIT_22                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2704                 .INIT_23                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2705                 .INIT_24                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2706                 .INIT_25                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2707                 .INIT_26                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2708                 .INIT_27                   (256'h0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2709                 .INIT_28                   (256'h28020202020228020202020202286F2F0F0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C),
2710                 .INIT_29                   (256'h6F2F28026F1F286A02120228020202020228B2C8020812C8A002021202B26208),
2711                 .INIT_2A                   (256'h000028B2C808280202020202280202A2684802020202286F2F286F1F28926848),
2712                 .INIT_2B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2713                 .INIT_2C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2714                 .INIT_2D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2715                 .INIT_2E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2716                 .INIT_2F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2717                 .INIT_30                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2718                 .INIT_31                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2719                 .INIT_32                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2720                 .INIT_33                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2721                 .INIT_34                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2722                 .INIT_35                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2723                 .INIT_36                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2724                 .INIT_37                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2725                 .INIT_38                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2726                 .INIT_39                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2727                 .INIT_3A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2728                 .INIT_3B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2729                 .INIT_3C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2730                 .INIT_3D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2731                 .INIT_3E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2732                 .INIT_3F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2733                 .INIT_40                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2734                 .INIT_41                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2735                 .INIT_42                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2736                 .INIT_43                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2737                 .INIT_44                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2738                 .INIT_45                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2739                 .INIT_46                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2740                 .INIT_47                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2741                 .INIT_48                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2742                 .INIT_49                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2743                 .INIT_4A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2744                 .INIT_4B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2745                 .INIT_4C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2746                 .INIT_4D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2747                 .INIT_4E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2748                 .INIT_4F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2749                 .INIT_50                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2750                 .INIT_51                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2751                 .INIT_52                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2752                 .INIT_53                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2753                 .INIT_54                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2754                 .INIT_55                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2755                 .INIT_56                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2756                 .INIT_57                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2757                 .INIT_58                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2758                 .INIT_59                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2759                 .INIT_5A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2760                 .INIT_5B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2761                 .INIT_5C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2762                 .INIT_5D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2763                 .INIT_5E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2764                 .INIT_5F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2765                 .INIT_60                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2766                 .INIT_61                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2767                 .INIT_62                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2768                 .INIT_63                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2769                 .INIT_64                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2770                 .INIT_65                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2771                 .INIT_66                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2772                 .INIT_67                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2773                 .INIT_68                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2774                 .INIT_69                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2775                 .INIT_6A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2776                 .INIT_6B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2777                 .INIT_6C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2778                 .INIT_6D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2779                 .INIT_6E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2780                 .INIT_6F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2781                 .INIT_70                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2782                 .INIT_71                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2783                 .INIT_72                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2784                 .INIT_73                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2785                 .INIT_74                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2786                 .INIT_75                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2787                 .INIT_76                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2788                 .INIT_77                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2789                 .INIT_78                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2790                 .INIT_79                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2791                 .INIT_7A                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2792                 .INIT_7B                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2793                 .INIT_7C                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2794                 .INIT_7D                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2795                 .INIT_7E                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2796                 .INIT_7F                   (256'h0000000000000000000000000000000000000000000000000000000000000000),
2797                 .INITP_00                  (256'h2810250204D4A040813412842128425084A109A9421094210942109A9A094A67),
2798                 .INITP_01                  (256'hCDC2394EAF79EEE7A4159C5E4A93267FE6514450204094081025020409A94081),
2799                 .INITP_02                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3),
2800                 .INITP_03                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2801                 .INITP_04                  (256'hFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
2802                 .INITP_05                  (256'h000000000000000000000000000000000000000033FE3F6CBAFFEB7CFFFE7FFF),
2803                 .INITP_06                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2804                 .INITP_07                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2805                 .INITP_08                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2806                 .INITP_09                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2807                 .INITP_0A                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2808                 .INITP_0B                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2809                 .INITP_0C                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2810                 .INITP_0D                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2811                 .INITP_0E                  (256'h0000000000000000000000000000000000000000000000000000000000000000),
2812                 .INITP_0F                  (256'h0000000000000000000000000000000000000000000000000000000000000000))
2813   kcpsm6_rom_h( .ADDRARDADDR               (address_a),
2814                 .ENARDEN                   (enable),
2815                 .CLKARDCLK                 (clk),
2816                 .DOADO                     (data_out_a_h[31:0]),
2817                 .DOPADOP                   (data_out_a_h[35:32]), 
2818                 .DIADI                     (data_in_a[31:0]),
2819                 .DIPADIP                   (data_in_a[35:32]), 
2820                 .WEA                       (4'b0000),
2821                 .REGCEAREGCE               (1'b0),
2822                 .RSTRAMARSTRAM             (1'b0),
2823                 .RSTREGARSTREG             (1'b0),
2824                 .ADDRBWRADDR               (address_b),
2825                 .ENBWREN                   (enable_b),
2826                 .CLKBWRCLK                 (clk_b),
2827                 .DOBDO                     (data_out_b_h[31:0]),
2828                 .DOPBDOP                   (data_out_b_h[35:32]), 
2829                 .DIBDI                     (data_in_b_h[31:0]),
2830                 .DIPBDIP                   (data_in_b_h[35:32]), 
2831                 .WEBWE                     (we_b),
2832                 .REGCEB                    (1'b0),
2833                 .RSTRAMB                   (1'b0),
2834                 .RSTREGB                   (1'b0),
2835                 .CASCADEINA                (1'b0),
2836                 .CASCADEINB                (1'b0),
2837                 .CASCADEOUTA               (),
2838                 .CASCADEOUTB               (),
2839                 .DBITERR                   (),
2840                 .ECCPARITY                 (),
2841                 .RDADDRECC                 (),
2842                 .SBITERR                   (),
2843                 .INJECTDBITERR             (1'b0),     
2844                 .INJECTSBITERR             (1'b0)); 
2845    end // akv7; 
2846    //
2847  end // ram_4k_generate;
2848endgenerate     
2849//
2850// JTAG Loader
2851//
2852generate
2853  if (C_JTAG_LOADER_ENABLE == 1) begin: instantiate_loader
2854    jtag_loader_6  #(  .C_FAMILY              (C_FAMILY),
2855                       .C_NUM_PICOBLAZE       (1),
2856                       .C_JTAG_LOADER_ENABLE  (C_JTAG_LOADER_ENABLE),       
2857                       .C_BRAM_MAX_ADDR_WIDTH (BRAM_ADDRESS_WIDTH),       
2858                       .C_ADDR_WIDTH_0        (BRAM_ADDRESS_WIDTH))
2859    jtag_loader_6_inst(.picoblaze_reset       (rdl_bus),
2860                       .jtag_en               (jtag_en),
2861                       .jtag_din              (jtag_din),
2862                       .jtag_addr             (jtag_addr[BRAM_ADDRESS_WIDTH-1 : 0]),
2863                       .jtag_clk              (jtag_clk),
2864                       .jtag_we               (jtag_we),
2865                       .jtag_dout_0           (jtag_dout),
2866                       .jtag_dout_1           (jtag_dout),  // ports 1-7 are not used
2867                       .jtag_dout_2           (jtag_dout),  // in a 1 device debug
2868                       .jtag_dout_3           (jtag_dout),  // session.  However, Synplify
2869                       .jtag_dout_4           (jtag_dout),  // etc require all ports are
2870                       .jtag_dout_5           (jtag_dout),  // connected
2871                       .jtag_dout_6           (jtag_dout),
2872                       .jtag_dout_7           (jtag_dout)); 
2873   
2874  end //instantiate_loader
2875endgenerate 
2876//
2877//
2878endmodule
2879//
2880//
2881//
2882//
2883///////////////////////////////////////////////////////////////////////////////////////////
2884//
2885// JTAG Loader
2886//
2887///////////////////////////////////////////////////////////////////////////////////////////
2888//
2889//
2890// JTAG Loader 6 - Version 6.00
2891//
2892// Kris Chaplin - 4th February 2010
2893// Nick Sawyer  - 3rd March 2011 - Initial conversion to Verilog
2894// Ken Chapman  - 16th August 2011 - Revised coding style
2895//
2896`timescale 1ps/1ps
2897module jtag_loader_6 (picoblaze_reset, jtag_en, jtag_din, jtag_addr, jtag_clk, jtag_we, jtag_dout_0, jtag_dout_1, jtag_dout_2, jtag_dout_3, jtag_dout_4, jtag_dout_5, jtag_dout_6, jtag_dout_7);
2898//
2899parameter integer C_JTAG_LOADER_ENABLE = 1;
2900parameter         C_FAMILY = "V6";
2901parameter integer C_NUM_PICOBLAZE = 1;
2902parameter integer C_BRAM_MAX_ADDR_WIDTH = 10;
2903parameter integer C_PICOBLAZE_INSTRUCTION_DATA_WIDTH = 18;
2904parameter integer C_JTAG_CHAIN = 2;
2905parameter [4:0]   C_ADDR_WIDTH_0 = 10;
2906parameter [4:0]   C_ADDR_WIDTH_1 = 10;
2907parameter [4:0]   C_ADDR_WIDTH_2 = 10;
2908parameter [4:0]   C_ADDR_WIDTH_3 = 10;
2909parameter [4:0]   C_ADDR_WIDTH_4 = 10;
2910parameter [4:0]   C_ADDR_WIDTH_5 = 10;
2911parameter [4:0]   C_ADDR_WIDTH_6 = 10;
2912parameter [4:0]   C_ADDR_WIDTH_7 = 10;
2913//
2914output [C_NUM_PICOBLAZE-1:0]                    picoblaze_reset;
2915output [C_NUM_PICOBLAZE-1:0]                    jtag_en;
2916output [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_din;
2917output [C_BRAM_MAX_ADDR_WIDTH-1:0]              jtag_addr;
2918output                                          jtag_clk ;
2919output                                          jtag_we; 
2920input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_0;
2921input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_1;
2922input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_2;
2923input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_3;
2924input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_4;
2925input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_5;
2926input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_6;
2927input  [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_7;
2928//
2929//
2930wire   [2:0]                                    num_picoblaze;       
2931wire   [4:0]                                    picoblaze_instruction_data_width; 
2932//
2933wire                                            drck;
2934wire                                            shift_clk;
2935wire                                            shift_din;
2936wire                                            shift_dout;
2937wire                                            shift;
2938wire                                            capture;
2939//
2940reg                                             control_reg_ce;
2941reg    [C_NUM_PICOBLAZE-1:0]                    bram_ce;
2942wire   [C_NUM_PICOBLAZE-1:0]                    bus_zero;
2943wire   [C_NUM_PICOBLAZE-1:0]                    jtag_en_int;
2944wire   [7:0]                                    jtag_en_expanded;
2945reg    [C_BRAM_MAX_ADDR_WIDTH-1:0]              jtag_addr_int;
2946reg    [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_din_int;
2947wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] control_din;
2948wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] control_dout;
2949reg    [7:0]                                    control_dout_int;
2950wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] bram_dout_int;
2951reg                                             jtag_we_int;
2952wire                                            jtag_clk_int;
2953wire                                            bram_ce_valid;
2954reg                                             din_load;
2955//                                               
2956wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_0_masked;
2957wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_1_masked;
2958wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_2_masked;
2959wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_3_masked;
2960wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_4_masked;
2961wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_5_masked;
2962wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_6_masked;
2963wire   [C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:0] jtag_dout_7_masked;
2964reg    [C_NUM_PICOBLAZE-1:0]                    picoblaze_reset_int;
2965//
2966initial picoblaze_reset_int = 0;
2967//
2968genvar i;
2969//
2970generate
2971  for (i = 0; i <= C_NUM_PICOBLAZE-1; i = i+1)
2972    begin : npzero_loop
2973      assign bus_zero[i] = 1'b0;
2974    end
2975endgenerate
2976//
2977generate
2978  //
2979  if (C_JTAG_LOADER_ENABLE == 1)
2980    begin : jtag_loader_gen
2981      //
2982      // Insert BSCAN primitive for target device architecture.
2983      //
2984      if (C_FAMILY == "S6")
2985        begin : BSCAN_SPARTAN6_gen
2986          BSCAN_SPARTAN6 # (.JTAG_CHAIN (C_JTAG_CHAIN))
2987          BSCAN_BLOCK_inst (.CAPTURE    (capture),
2988                            .DRCK       (drck),
2989                            .RESET      (),
2990                            .RUNTEST    (),
2991                            .SEL        (bram_ce_valid),
2992                            .SHIFT      (shift),
2993                            .TCK        (),
2994                            .TDI        (shift_din),
2995                            .TMS        (),
2996                            .UPDATE     (jtag_clk_int),
2997                            .TDO        (shift_dout)); 
2998           
2999        end 
3000      //
3001      if (C_FAMILY == "V6")
3002        begin : BSCAN_VIRTEX6_gen
3003          BSCAN_VIRTEX6 # ( .JTAG_CHAIN   (C_JTAG_CHAIN),
3004                            .DISABLE_JTAG ("FALSE"))
3005          BSCAN_BLOCK_inst (.CAPTURE      (capture),
3006                            .DRCK         (drck),
3007                            .RESET        (),
3008                            .RUNTEST      (),
3009                            .SEL          (bram_ce_valid),
3010                            .SHIFT        (shift),
3011                            .TCK          (),
3012                            .TDI          (shift_din),
3013                            .TMS          (),
3014                            .UPDATE       (jtag_clk_int),
3015                            .TDO          (shift_dout));
3016        end 
3017      //
3018      if (C_FAMILY == "7S")
3019        begin : BSCAN_7SERIES_gen
3020          BSCANE2 # (       .JTAG_CHAIN   (C_JTAG_CHAIN),
3021                            .DISABLE_JTAG ("FALSE"))
3022          BSCAN_BLOCK_inst (.CAPTURE      (capture),
3023                            .DRCK         (drck),
3024                            .RESET        (),
3025                            .RUNTEST      (),
3026                            .SEL          (bram_ce_valid),
3027                            .SHIFT        (shift),
3028                            .TCK          (),
3029                            .TDI          (shift_din),
3030                            .TMS          (),
3031                            .UPDATE       (jtag_clk_int),
3032                            .TDO          (shift_dout));
3033        end 
3034      //
3035      // Insert clock buffer to ensure reliable shift operations.
3036      //
3037      BUFG upload_clock (.I (drck), .O (shift_clk));
3038      //       
3039      //
3040      // Shift Register
3041      //
3042      always @ (posedge shift_clk) begin
3043        if (shift == 1'b1) begin
3044          control_reg_ce <= shift_din;
3045        end
3046      end
3047      //
3048      always @ (posedge shift_clk) begin
3049        if (shift == 1'b1) begin
3050          bram_ce[0] <= control_reg_ce;
3051        end
3052      end 
3053      //
3054      for (i = 0; i <= C_NUM_PICOBLAZE-2; i = i+1)
3055      begin : loop0
3056        if (C_NUM_PICOBLAZE > 1) begin
3057          always @ (posedge shift_clk) begin
3058            if (shift == 1'b1) begin
3059              bram_ce[i+1] <= bram_ce[i];
3060            end
3061          end
3062        end 
3063      end
3064      //
3065      always @ (posedge shift_clk) begin
3066        if (shift == 1'b1) begin
3067          jtag_we_int <= bram_ce[C_NUM_PICOBLAZE-1];
3068        end
3069      end
3070      //
3071      always @ (posedge shift_clk) begin 
3072        if (shift == 1'b1) begin
3073          jtag_addr_int[0] <= jtag_we_int;
3074        end
3075      end
3076      //
3077      for (i = 0; i <= C_BRAM_MAX_ADDR_WIDTH-2; i = i+1)
3078      begin : loop1
3079        always @ (posedge shift_clk) begin
3080          if (shift == 1'b1) begin
3081            jtag_addr_int[i+1] <= jtag_addr_int[i];
3082          end
3083        end 
3084      end
3085      //
3086      always @ (posedge shift_clk) begin 
3087        if (din_load == 1'b1) begin
3088          jtag_din_int[0] <= bram_dout_int[0];
3089        end
3090        else if (shift == 1'b1) begin
3091          jtag_din_int[0] <= jtag_addr_int[C_BRAM_MAX_ADDR_WIDTH-1];
3092        end
3093      end       
3094      //
3095      for (i = 0; i <= C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-2; i = i+1)
3096      begin : loop2
3097        always @ (posedge shift_clk) begin
3098          if (din_load == 1'b1) begin
3099            jtag_din_int[i+1] <= bram_dout_int[i+1];
3100          end
3101          if (shift == 1'b1) begin
3102            jtag_din_int[i+1] <= jtag_din_int[i];
3103          end
3104        end 
3105      end
3106      //
3107      assign shift_dout = jtag_din_int[C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1];
3108      //
3109      //
3110      always @ (bram_ce or din_load or capture or bus_zero or control_reg_ce) begin
3111        if ( bram_ce == bus_zero ) begin
3112          din_load <= capture & control_reg_ce;
3113        end else begin
3114          din_load <= capture;
3115        end
3116      end
3117      //
3118      //
3119      // Control Registers
3120      //
3121      assign num_picoblaze = C_NUM_PICOBLAZE-3'h1;
3122      assign picoblaze_instruction_data_width = C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-5'h01;
3123      //
3124      always @ (posedge jtag_clk_int) begin
3125        if (bram_ce_valid == 1'b1 && jtag_we_int == 1'b0 && control_reg_ce == 1'b1) begin
3126          case (jtag_addr_int[3:0]) 
3127            0 : // 0 = version - returns (7:4) illustrating number of PB
3128                // and [3:0] picoblaze instruction data width
3129                control_dout_int <= {num_picoblaze, picoblaze_instruction_data_width};
3130            1 : // 1 = PicoBlaze 0 reset / status
3131                if (C_NUM_PICOBLAZE >= 1) begin 
3132                  control_dout_int <= {picoblaze_reset_int[0], 2'b00, C_ADDR_WIDTH_0-5'h01};
3133                end else begin
3134                  control_dout_int <= 8'h00;
3135                end
3136            2 : // 2 = PicoBlaze 1 reset / status
3137                if (C_NUM_PICOBLAZE >= 2) begin 
3138                  control_dout_int <= {picoblaze_reset_int[1], 2'b00, C_ADDR_WIDTH_1-5'h01};
3139                end else begin
3140                  control_dout_int <= 8'h00;
3141                end
3142            3 : // 3 = PicoBlaze 2 reset / status
3143                if (C_NUM_PICOBLAZE >= 3) begin 
3144                  control_dout_int <= {picoblaze_reset_int[2], 2'b00, C_ADDR_WIDTH_2-5'h01};
3145                end else begin
3146                  control_dout_int <= 8'h00;
3147                end
3148            4 : // 4 = PicoBlaze 3 reset / status
3149                if (C_NUM_PICOBLAZE >= 4) begin 
3150                  control_dout_int <= {picoblaze_reset_int[3], 2'b00, C_ADDR_WIDTH_3-5'h01};
3151                end else begin
3152                  control_dout_int <= 8'h00;
3153                end
3154            5:  // 5 = PicoBlaze 4 reset / status
3155                if (C_NUM_PICOBLAZE >= 5) begin 
3156                  control_dout_int <= {picoblaze_reset_int[4], 2'b00, C_ADDR_WIDTH_4-5'h01};
3157                end else begin
3158                  control_dout_int <= 8'h00;
3159                end
3160            6 : // 6 = PicoBlaze 5 reset / status
3161                if (C_NUM_PICOBLAZE >= 6) begin 
3162                  control_dout_int <= {picoblaze_reset_int[5], 2'b00, C_ADDR_WIDTH_5-5'h01};
3163                end else begin
3164                  control_dout_int <= 8'h00;
3165                end
3166            7 : // 7 = PicoBlaze 6 reset / status
3167                if (C_NUM_PICOBLAZE >= 7) begin 
3168                  control_dout_int <= {picoblaze_reset_int[6], 2'b00, C_ADDR_WIDTH_6-5'h01};
3169                end else begin
3170                  control_dout_int <= 8'h00;
3171                end
3172            8 : // 8 = PicoBlaze 7 reset / status
3173                if (C_NUM_PICOBLAZE >= 8) begin 
3174                  control_dout_int <= {picoblaze_reset_int[7], 2'b00, C_ADDR_WIDTH_7-5'h01};
3175                end else begin
3176                  control_dout_int <= 8'h00;
3177                end
3178            15 : control_dout_int <= C_BRAM_MAX_ADDR_WIDTH -1;
3179            default : control_dout_int <= 8'h00;
3180            //
3181          endcase
3182        end else begin
3183          control_dout_int <= 8'h00;
3184        end
3185      end 
3186      //
3187      assign control_dout[C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-1:C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-8] = control_dout_int;
3188      //
3189      always @ (posedge jtag_clk_int) begin
3190        if (bram_ce_valid == 1'b1 && jtag_we_int == 1'b1 && control_reg_ce == 1'b1) begin
3191          picoblaze_reset_int[C_NUM_PICOBLAZE-1:0] <= control_din[C_NUM_PICOBLAZE-1:0];
3192        end
3193      end     
3194      //
3195      //
3196      // Assignments
3197      //
3198      if (C_PICOBLAZE_INSTRUCTION_DATA_WIDTH > 8) begin
3199        assign control_dout[C_PICOBLAZE_INSTRUCTION_DATA_WIDTH-9:0] = 10'h000;
3200      end
3201      //
3202      // Qualify the blockram CS signal with bscan select output
3203      assign jtag_en_int = (bram_ce_valid) ? bram_ce : bus_zero;
3204      //
3205      assign jtag_en_expanded[C_NUM_PICOBLAZE-1:0] = jtag_en_int; 
3206      //
3207      for (i = 7; i >= C_NUM_PICOBLAZE; i = i-1)
3208        begin : loop4
3209          if (C_NUM_PICOBLAZE < 8) begin : jtag_en_expanded_gen
3210            assign jtag_en_expanded[i] = 1'b0;
3211          end
3212        end
3213      //
3214      assign bram_dout_int = control_dout | jtag_dout_0_masked | jtag_dout_1_masked | jtag_dout_2_masked | jtag_dout_3_masked | jtag_dout_4_masked | jtag_dout_5_masked | jtag_dout_6_masked | jtag_dout_7_masked;
3215      //
3216      assign control_din = jtag_din_int;
3217      //
3218      assign jtag_dout_0_masked = (jtag_en_expanded[0]) ? jtag_dout_0 : 18'h00000;
3219      assign jtag_dout_1_masked = (jtag_en_expanded[1]) ? jtag_dout_1 : 18'h00000;
3220      assign jtag_dout_2_masked = (jtag_en_expanded[2]) ? jtag_dout_2 : 18'h00000;
3221      assign jtag_dout_3_masked = (jtag_en_expanded[3]) ? jtag_dout_3 : 18'h00000;
3222      assign jtag_dout_4_masked = (jtag_en_expanded[4]) ? jtag_dout_4 : 18'h00000;
3223      assign jtag_dout_5_masked = (jtag_en_expanded[5]) ? jtag_dout_5 : 18'h00000;
3224      assign jtag_dout_6_masked = (jtag_en_expanded[6]) ? jtag_dout_6 : 18'h00000;
3225      assign jtag_dout_7_masked = (jtag_en_expanded[7]) ? jtag_dout_7 : 18'h00000;
3226      //       
3227      assign jtag_en = jtag_en_int;
3228      assign jtag_din = jtag_din_int;
3229      assign jtag_addr = jtag_addr_int;
3230      assign jtag_clk = jtag_clk_int;
3231      assign jtag_we = jtag_we_int;
3232      assign picoblaze_reset = picoblaze_reset_int;
3233      //
3234    end
3235endgenerate
3236   //
3237endmodule
3238//
3239///////////////////////////////////////////////////////////////////////////////////////////
3240//
3241//  END OF FILE prog_clk_config_boot.v
3242//
3243///////////////////////////////////////////////////////////////////////////////////////////
3244//
Note: See TracBrowser for help on using the repository browser.