├── .gitignore
├── apio.ini
├── hardware.bin
├── media
├── minivga.jpg
├── minivga_sm.jpg
├── pixel_numbering.png
├── princeofpersia.jpg
├── pixel_numbering2.png
├── pixel_numbering3.png
└── princeofpersia_sm.jpg
├── install_apio.sh
├── install_apio.bat
├── top_tb.v
├── update_memory_pop.py
├── update_memory.py
├── README.md
├── pins.pcf
└── top.v
/.gitignore:
--------------------------------------------------------------------------------
1 | .sconsign.dblite
2 | *.out
3 |
4 |
--------------------------------------------------------------------------------
/apio.ini:
--------------------------------------------------------------------------------
1 | [env]
2 | board = TinyFPGA-BX
3 |
4 |
--------------------------------------------------------------------------------
/hardware.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/hardware.bin
--------------------------------------------------------------------------------
/media/minivga.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/minivga.jpg
--------------------------------------------------------------------------------
/media/minivga_sm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/minivga_sm.jpg
--------------------------------------------------------------------------------
/media/pixel_numbering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/pixel_numbering.png
--------------------------------------------------------------------------------
/media/princeofpersia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/princeofpersia.jpg
--------------------------------------------------------------------------------
/media/pixel_numbering2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/pixel_numbering2.png
--------------------------------------------------------------------------------
/media/pixel_numbering3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/pixel_numbering3.png
--------------------------------------------------------------------------------
/media/princeofpersia_sm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nickbild/fpga_vga/HEAD/media/princeofpersia_sm.jpg
--------------------------------------------------------------------------------
/install_apio.sh:
--------------------------------------------------------------------------------
1 | pip install apio==0.4.0b3 tinyprog
2 | apio install system scons icestorm drivers
3 | apio drivers --serial-enable
4 |
5 |
--------------------------------------------------------------------------------
/install_apio.bat:
--------------------------------------------------------------------------------
1 | pip install apio==0.4.0b3 tinyprog
2 | apio install system scons icestorm drivers
3 | apio drivers --serial-enable
4 | @pause
5 |
6 |
--------------------------------------------------------------------------------
/top_tb.v:
--------------------------------------------------------------------------------
1 | `timescale 1ns/1ps
2 | module tb ();
3 | initial begin
4 | $dumpfile("top_tb.vcd");
5 | $dumpvars(0, t);
6 | end
7 |
8 | reg clk;
9 | wire usbpu;
10 |
11 | initial begin
12 | clk = 1'b0;
13 | end
14 |
15 | always begin
16 | #31 clk = !clk;
17 | end
18 |
19 | initial begin
20 | repeat(16000000) @(posedge clk);
21 |
22 | $finish;
23 | end
24 |
25 | top t (.CLK(clk), .USBPU(usbpu));
26 |
27 | endmodule
28 |
--------------------------------------------------------------------------------
/update_memory_pop.py:
--------------------------------------------------------------------------------
1 | import RPi.GPIO as GPIO
2 | import time
3 |
4 |
5 | GPIO.setmode(GPIO.BOARD)
6 |
7 | a0 = 8
8 | a1 = 10
9 | a2 = 12
10 | a3 = 16
11 | a4 = 18
12 | a5 = 22
13 | a6 = 24
14 | a7 = 26
15 | a8 = 32
16 | a9 = 36
17 | a10 = 38
18 | a11 = 40
19 | a12 = 3
20 | a13 = 5
21 | a14 = 7
22 |
23 | r1 = 11
24 | g1 = 13
25 | b1 = 15
26 |
27 | interrupt = 19
28 |
29 | GPIO.setup(a0, GPIO.OUT)
30 | GPIO.setup(a1, GPIO.OUT)
31 | GPIO.setup(a2, GPIO.OUT)
32 | GPIO.setup(a3, GPIO.OUT)
33 | GPIO.setup(a4, GPIO.OUT)
34 | GPIO.setup(a5, GPIO.OUT)
35 | GPIO.setup(a6, GPIO.OUT)
36 | GPIO.setup(a7, GPIO.OUT)
37 | GPIO.setup(a8, GPIO.OUT)
38 | GPIO.setup(a9, GPIO.OUT)
39 | GPIO.setup(a10, GPIO.OUT)
40 | GPIO.setup(a11, GPIO.OUT)
41 | GPIO.setup(a12, GPIO.OUT)
42 | GPIO.setup(a13, GPIO.OUT)
43 | GPIO.setup(a14, GPIO.OUT)
44 |
45 | GPIO.setup(r1, GPIO.OUT)
46 | GPIO.setup(g1, GPIO.OUT)
47 | GPIO.setup(b1, GPIO.OUT)
48 |
49 | GPIO.setup(interrupt, GPIO.OUT)
50 |
51 |
52 |
53 | GPIO.output(interrupt, 0)
54 |
55 |
56 | file1 = open('pop.dat', 'r')
57 | lines = file1.readlines()
58 |
59 | for i in range(30000):
60 | v = '{0:015b}'.format(i)
61 |
62 | GPIO.output(a0, int(v[14]))
63 | GPIO.output(a1, int(v[13]))
64 | GPIO.output(a2, int(v[12]))
65 | GPIO.output(a3, int(v[11]))
66 | GPIO.output(a4, int(v[10]))
67 | GPIO.output(a5, int(v[9]))
68 | GPIO.output(a6, int(v[8]))
69 | GPIO.output(a7, int(v[7]))
70 | GPIO.output(a8, int(v[6]))
71 | GPIO.output(a9, int(v[5]))
72 | GPIO.output(a10, int(v[4]))
73 | GPIO.output(a11, int(v[3]))
74 | GPIO.output(a12, int(v[2]))
75 | GPIO.output(a13, int(v[1]))
76 | GPIO.output(a14, int(v[0]))
77 |
78 | GPIO.output(r1, int(lines[i][2]))
79 | GPIO.output(g1, int(lines[i][1]))
80 | GPIO.output(b1, int(lines[i][0]))
81 |
82 | GPIO.output(interrupt, 1)
83 | GPIO.output(interrupt, 0)
84 |
85 |
--------------------------------------------------------------------------------
/update_memory.py:
--------------------------------------------------------------------------------
1 | import RPi.GPIO as GPIO
2 | import time
3 |
4 |
5 | GPIO.setmode(GPIO.BOARD)
6 |
7 | a0 = 8
8 | a1 = 10
9 | a2 = 12
10 | a3 = 16
11 | a4 = 18
12 | a5 = 22
13 | a6 = 24
14 | a7 = 26
15 | a8 = 32
16 | a9 = 36
17 | a10 = 38
18 | a11 = 40
19 | a12 = 3
20 | a13 = 5
21 | a14 = 7
22 |
23 | r1 = 11
24 | g1 = 13
25 | b1 = 15
26 |
27 | interrupt = 19
28 |
29 | GPIO.setup(a0, GPIO.OUT)
30 | GPIO.setup(a1, GPIO.OUT)
31 | GPIO.setup(a2, GPIO.OUT)
32 | GPIO.setup(a3, GPIO.OUT)
33 | GPIO.setup(a4, GPIO.OUT)
34 | GPIO.setup(a5, GPIO.OUT)
35 | GPIO.setup(a6, GPIO.OUT)
36 | GPIO.setup(a7, GPIO.OUT)
37 | GPIO.setup(a8, GPIO.OUT)
38 | GPIO.setup(a9, GPIO.OUT)
39 | GPIO.setup(a10, GPIO.OUT)
40 | GPIO.setup(a11, GPIO.OUT)
41 | GPIO.setup(a12, GPIO.OUT)
42 | GPIO.setup(a13, GPIO.OUT)
43 | GPIO.setup(a14, GPIO.OUT)
44 |
45 | GPIO.setup(r1, GPIO.OUT)
46 | GPIO.setup(g1, GPIO.OUT)
47 | GPIO.setup(b1, GPIO.OUT)
48 |
49 | GPIO.setup(interrupt, GPIO.OUT)
50 |
51 |
52 |
53 | GPIO.output(interrupt, 0)
54 |
55 |
56 | for i in range(30000):
57 | v = '{0:015b}'.format(i)
58 |
59 | GPIO.output(a0, int(v[14]))
60 | GPIO.output(a1, int(v[13]))
61 | GPIO.output(a2, int(v[12]))
62 | GPIO.output(a3, int(v[11]))
63 | GPIO.output(a4, int(v[10]))
64 | GPIO.output(a5, int(v[9]))
65 | GPIO.output(a6, int(v[8]))
66 | GPIO.output(a7, int(v[7]))
67 | GPIO.output(a8, int(v[6]))
68 | GPIO.output(a9, int(v[5]))
69 | GPIO.output(a10, int(v[4]))
70 | GPIO.output(a11, int(v[3]))
71 | GPIO.output(a12, int(v[2]))
72 | GPIO.output(a13, int(v[1]))
73 | GPIO.output(a14, int(v[0]))
74 |
75 | if (i % 2 == 0):
76 | GPIO.output(r1, 0)
77 | GPIO.output(g1, 0)
78 | GPIO.output(b1, 1)
79 | else:
80 | GPIO.output(r1, 0)
81 | GPIO.output(g1, 0)
82 | GPIO.output(b1, 0)
83 |
84 | GPIO.output(interrupt, 1)
85 | time.sleep(0.00000005);
86 | GPIO.output(interrupt, 0)
87 |
88 |
89 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MiniVGA
2 |
3 | MiniVGA generates a 200x150 @ 60Hz 3-bit color VGA signal. The interface is simple and can be controlled by GPIO from any number of devices, such as Arduino microcontroller dev boards or custom built retrocomputers.
4 |
5 | Having recently built the [Vectron VGA](https://github.com/nickbild/vectron_vga) VGA generator from 7400-series logic chips, I decided to build an FPGA-based device to provide video output for my [Vectron 64](https://github.com/nickbild/vectron_64) breadboard computer that would not take up half of my desk.
6 |
7 | ## How It Works
8 |
9 | A TinyFPGA BX has been [programmed](https://github.com/nickbild/fpga_vga/blob/master/top.v) to generate an 800x600 @ 60Hz VGA signal. Each pixel is repeated 4 times horizontally and vertically to yield a resolution of 200x150 pixels. Screen data is continually refreshed based on the data stored in a section of the BRAM dedicated to this purpose.
10 |
11 | The interface consists of a 15 bit address bus, 3 bit data bus, and an interrupt signal. To set a pixel color, set the desired address on the address bus (top left pixel = 0; bottom right pixel = 29,999).
12 |
13 |
14 |
15 |
16 |
17 | Next, set the color value on the data bus:
18 |
19 | | bit 2 | bit 1 | bit 0 |
20 | | ---- | ---- | ---- |
21 | | Blue | Green | Red |
22 |
23 | A `1` is full on, and `0` is full off. A total of 8 colors can be generated. With address and data choices set, send a high pulse to the interrupt. This writes the pixel data to BRAM and the VGA generator will display it on the next frame (60 frames / second).
24 |
25 | Voltage dividing resistors are required on the RGB lines to bring the voltage down to 0.7V. 357 ohms from the TinyFPGA signals, and 100 ohms to ground.
26 |
27 | To demonstrate the functionality, I have written some example [Arduino code available here](https://github.com/nickbild/fpga_vga/blob/master/arduino_example/arduino_example.ino). I also have an example for interfacing from a [Raspberry Pi 3 B+](https://github.com/nickbild/fpga_vga/blob/master/update_memory.py).
28 |
29 | ## Media
30 |
31 | MiniVGA being driven by an Arduino Nano 33 IoT:
32 |
33 | 
34 |
35 | Prince of Persia title screen:
36 |
37 | 
38 |
39 | ## Bill of Materials
40 |
41 | - 1 x TinyFPGA BX
42 | - 1 x Arduino Nano 33 IoT
43 | - 1 x VGA breakout board
44 | - Miscellaneous wires
45 |
46 | ## About the Author
47 |
48 | [Nick A. Bild, MS](https://nickbild79.firebaseapp.com/#!/)
49 |
--------------------------------------------------------------------------------
/pins.pcf:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | #
3 | # TinyFPGA BX constraint file (.pcf)
4 | #
5 | ###############################################################################
6 | #
7 | # Copyright (c) 2018, Luke Valenty
8 | # All rights reserved.
9 | #
10 | # Redistribution and use in source and binary forms, with or without
11 | # modification, are permitted provided that the following conditions are met:
12 | #
13 | # 1. Redistributions of source code must retain the above copyright notice, this
14 | # list of conditions and the following disclaimer.
15 | # 2. Redistributions in binary form must reproduce the above copyright notice,
16 | # this list of conditions and the following disclaimer in the documentation
17 | # and/or other materials provided with the distribution.
18 | #
19 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23 | # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 | # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | #
30 | # The views and conclusions contained in the software and documentation are those
31 | # of the authors and should not be interpreted as representing official policies,
32 | # either expressed or implied, of the project.
33 | #
34 | ###############################################################################
35 |
36 | ####
37 | # TinyFPGA BX information: https://github.com/tinyfpga/TinyFPGA-BX/
38 | ####
39 |
40 | # Left side of board
41 | set_io --warn-no-port PIN_1 A2
42 | set_io --warn-no-port PIN_2 A1
43 | set_io --warn-no-port PIN_3 B1
44 | set_io --warn-no-port PIN_4 C2
45 | set_io --warn-no-port PIN_5 C1
46 | set_io --warn-no-port PIN_6 D2
47 | set_io --warn-no-port PIN_7 D1
48 | set_io --warn-no-port PIN_8 E2
49 | set_io --warn-no-port PIN_9 E1
50 | set_io --warn-no-port PIN_10 G2
51 | set_io --warn-no-port PIN_11 H1
52 | set_io --warn-no-port PIN_12 J1
53 | set_io --warn-no-port PIN_13 H2
54 |
55 | # Right side of board
56 | set_io --warn-no-port PIN_14 H9
57 | set_io --warn-no-port PIN_15 D9
58 | set_io --warn-no-port PIN_16 D8
59 | set_io --warn-no-port PIN_17 C9
60 | set_io --warn-no-port PIN_18 A9
61 | set_io --warn-no-port PIN_19 B8
62 | set_io --warn-no-port PIN_20 A8
63 | set_io --warn-no-port PIN_21 B7
64 | set_io --warn-no-port PIN_22 A7
65 | set_io --warn-no-port PIN_23 B6
66 | set_io --warn-no-port PIN_24 A6
67 |
68 | # SPI flash interface on bottom of board
69 | set_io --warn-no-port SPI_SS F7
70 | set_io --warn-no-port SPI_SCK G7
71 | set_io --warn-no-port SPI_IO0 G6
72 | set_io --warn-no-port SPI_IO1 H7
73 | set_io --warn-no-port SPI_IO2 H4
74 | set_io --warn-no-port SPI_IO3 J8
75 |
76 | # General purpose pins on bottom of board
77 | set_io --warn-no-port PIN_25 G1
78 | set_io --warn-no-port PIN_26 J3
79 | set_io --warn-no-port PIN_27 J4
80 | set_io --warn-no-port PIN_28 G9
81 | set_io --warn-no-port PIN_29 J9
82 | set_io --warn-no-port PIN_30 E8
83 | set_io --warn-no-port PIN_31 J2
84 |
85 | # LED
86 | set_io --warn-no-port LED B3
87 |
88 | # USB
89 | set_io --warn-no-port USBP B4
90 | set_io --warn-no-port USBN A4
91 | set_io --warn-no-port USBPU A3
92 |
93 | # 16MHz clock
94 | set_io --warn-no-port CLK B2 # input
95 |
--------------------------------------------------------------------------------
/top.v:
--------------------------------------------------------------------------------
1 | `timescale 1ns/1ps
2 |
3 | module top (
4 | // 16MHz clock
5 | input CLK,
6 |
7 | // USB pull-up resistor
8 | output USBPU,
9 |
10 | // GPIO Outputs.
11 | output PIN_8,
12 | output PIN_9,
13 | output PIN_10,
14 | // output PIN_11, Pin looks to be dead.
15 | output PIN_12,
16 | output PIN_13,
17 |
18 | // GPIO Inputs.
19 | input PIN_1,
20 | input PIN_2,
21 | input PIN_3,
22 | input PIN_4,
23 | input PIN_5,
24 | input PIN_6,
25 | input PIN_7,
26 | input PIN_14,
27 | input PIN_15,
28 | input PIN_16,
29 | input PIN_17,
30 | input PIN_18,
31 | input PIN_19,
32 | input PIN_20,
33 | input PIN_21,
34 | input PIN_22,
35 | input PIN_23,
36 | input PIN_24,
37 | input PIN_31
38 | );
39 |
40 | // drive USB pull-up resistor to '0' to disable USB
41 | assign USBPU = 0;
42 |
43 | // VGA output signals.
44 | wire clk_20mhz;
45 | assign PIN_8 = red;
46 | assign PIN_9 = green;
47 | assign PIN_10 = blue;
48 | assign PIN_12 = h_sync;
49 | assign PIN_13 = v_sync;
50 |
51 | reg [8:0] h_counter;
52 | reg [0:0] h_sync;
53 |
54 | reg [9:0] v_counter;
55 | reg [0:0] v_sync;
56 |
57 | reg [0:0] red;
58 | reg [0:0] green;
59 | reg [0:0] blue;
60 |
61 | // Interrupt input.
62 | wire interrupt;
63 | assign interrupt = PIN_31;
64 |
65 | // Address inputs.
66 | wire a0;
67 | wire a1;
68 | wire a2;
69 | wire a3;
70 | wire a4;
71 | wire a5;
72 | wire a6;
73 | wire a7;
74 | wire a8;
75 | wire a9;
76 | wire a10;
77 | wire a11;
78 | wire a12;
79 | wire a13;
80 | wire a14;
81 |
82 | assign a0 = PIN_1;
83 | assign a1 = PIN_2;
84 | assign a2 = PIN_3;
85 | assign a3 = PIN_4;
86 | assign a4 = PIN_5;
87 | assign a5 = PIN_6;
88 | assign a6 = PIN_7;
89 | assign a7 = PIN_14;
90 | assign a8 = PIN_15;
91 | assign a9 = PIN_16;
92 | assign a10 = PIN_17;
93 | assign a11 = PIN_18;
94 | assign a12 = PIN_19;
95 | assign a13 = PIN_20;
96 | assign a14 = PIN_21;
97 |
98 | // RGB data inputs.
99 | wire r_in;
100 | wire g_in;
101 | wire b_in;
102 |
103 | assign r_in = PIN_22;
104 | assign g_in = PIN_23;
105 | assign b_in = PIN_24;
106 |
107 | // BRAM
108 | reg [15:0] memory_data_in; // bits: 13, 9, 5, 1
109 | reg [14:0] w_absolute_addr;
110 | reg [10:0] waddr;
111 |
112 | reg [14:0] absolute_addr;
113 | wire [10:0] raddr;
114 | assign raddr = {1'b0, absolute_addr[9:0]};
115 | reg display;
116 |
117 | reg write_en1;
118 | reg write_en2;
119 | reg write_en3;
120 | reg write_en4;
121 | reg write_en5;
122 | reg write_en6;
123 | reg write_en7;
124 | reg write_en8;
125 | reg write_en9;
126 | reg write_en10;
127 | reg write_en11;
128 | reg write_en12;
129 | reg write_en13;
130 | reg write_en14;
131 | reg write_en15;
132 | reg write_en16;
133 | reg write_en17;
134 | reg write_en18;
135 | reg write_en19;
136 | reg write_en20;
137 | reg write_en21;
138 | reg write_en22;
139 | reg write_en23;
140 | reg write_en24;
141 | reg write_en25;
142 | reg write_en26;
143 | reg write_en27;
144 | reg write_en28;
145 | reg write_en29;
146 | reg write_en30;
147 |
148 | wire [15:0] memory_data_out_1;
149 | wire [15:0] memory_data_out_2;
150 | wire [15:0] memory_data_out_3;
151 | wire [15:0] memory_data_out_4;
152 | wire [15:0] memory_data_out_5;
153 | wire [15:0] memory_data_out_6;
154 | wire [15:0] memory_data_out_7;
155 | wire [15:0] memory_data_out_8;
156 | wire [15:0] memory_data_out_9;
157 | wire [15:0] memory_data_out_10;
158 | wire [15:0] memory_data_out_11;
159 | wire [15:0] memory_data_out_12;
160 | wire [15:0] memory_data_out_13;
161 | wire [15:0] memory_data_out_14;
162 | wire [15:0] memory_data_out_15;
163 | wire [15:0] memory_data_out_16;
164 | wire [15:0] memory_data_out_17;
165 | wire [15:0] memory_data_out_18;
166 | wire [15:0] memory_data_out_19;
167 | wire [15:0] memory_data_out_20;
168 | wire [15:0] memory_data_out_21;
169 | wire [15:0] memory_data_out_22;
170 | wire [15:0] memory_data_out_23;
171 | wire [15:0] memory_data_out_24;
172 | wire [15:0] memory_data_out_25;
173 | wire [15:0] memory_data_out_26;
174 | wire [15:0] memory_data_out_27;
175 | wire [15:0] memory_data_out_28;
176 | wire [15:0] memory_data_out_29;
177 | wire [15:0] memory_data_out_30;
178 |
179 | // Create a 10MHz clock.
180 | // http://martin.hinner.info/vga/timing.html
181 | // 40 MHz = 800x600@60Hz
182 | // 10 MHz = 200x150
183 | SB_PLL40_CORE #(
184 | .DIVR(0),
185 | .DIVF(19),
186 | .DIVQ(4),
187 | .FILTER_RANGE(3'b001),
188 | .FEEDBACK_PATH("SIMPLE"),
189 | .DELAY_ADJUSTMENT_MODE_FEEDBACK("FIXED"),
190 | .FDA_FEEDBACK(4'b0000),
191 | .DELAY_ADJUSTMENT_MODE_RELATIVE("FIXED"),
192 | .FDA_RELATIVE(4'b0000),
193 | .SHIFTREG_DIV_MODE(2'b00),
194 | .PLLOUT_SELECT("GENCLK"),
195 | .ENABLE_ICEGATE(1'b0)
196 | ) pll (
197 | .REFERENCECLK(CLK),
198 | .PLLOUTCORE(clk_20mhz),
199 | .RESETB(1'b1),
200 | .BYPASS(1'b0)
201 | );
202 |
203 | initial begin
204 | h_counter <= 0;
205 | v_counter <= 0;
206 |
207 | h_sync <= 0;
208 | v_sync <= 0;
209 | red <= 0;
210 | green <= 0;
211 | blue <= 0;
212 | end
213 |
214 | always @(posedge clk_20mhz) begin
215 | if (display) begin // Slow down clock for display.
216 | // Horitonal sync.
217 | if (h_counter > 210 && h_counter < 242)
218 | begin
219 | h_sync <= 1;
220 | end else begin
221 | h_sync <= 0;
222 | end
223 |
224 | // Vertical sync.
225 | if (v_counter > 600 && v_counter < 605)
226 | begin
227 | v_sync <= 1;
228 | end else begin
229 | v_sync <= 0;
230 | end
231 |
232 | // Display pixel.
233 | if (h_counter > 199 || v_counter > 599) // Horizontal/vertical blanking.
234 | begin
235 | red <= 0;
236 | green <= 0;
237 | blue <= 0;
238 | end else // Active video.
239 | begin
240 | if (absolute_addr > 29695) begin
241 | red <= memory_data_out_30[1];
242 | green <= memory_data_out_30[5];
243 | blue <= memory_data_out_30[9];
244 | end else if (absolute_addr > 28671) begin
245 | red <= memory_data_out_29[1];
246 | green <= memory_data_out_29[5];
247 | blue <= memory_data_out_29[9];
248 | end else if (absolute_addr > 27647) begin
249 | red <= memory_data_out_28[1];
250 | green <= memory_data_out_28[5];
251 | blue <= memory_data_out_28[9];
252 | end else if (absolute_addr > 26623) begin
253 | red <= memory_data_out_27[1];
254 | green <= memory_data_out_27[5];
255 | blue <= memory_data_out_27[9];
256 | end else if (absolute_addr > 25599) begin
257 | red <= memory_data_out_26[1];
258 | green <= memory_data_out_26[5];
259 | blue <= memory_data_out_26[9];
260 | end else if (absolute_addr > 24575) begin
261 | red <= memory_data_out_25[1];
262 | green <= memory_data_out_25[5];
263 | blue <= memory_data_out_25[9];
264 | end else if (absolute_addr > 23551) begin
265 | red <= memory_data_out_24[1];
266 | green <= memory_data_out_24[5];
267 | blue <= memory_data_out_24[9];
268 | end else if (absolute_addr > 22527) begin
269 | red <= memory_data_out_23[1];
270 | green <= memory_data_out_23[5];
271 | blue <= memory_data_out_23[9];
272 | end else if (absolute_addr > 21503) begin
273 | red <= memory_data_out_22[1];
274 | green <= memory_data_out_22[5];
275 | blue <= memory_data_out_22[9];
276 | end else if (absolute_addr > 20479) begin
277 | red <= memory_data_out_21[1];
278 | green <= memory_data_out_21[5];
279 | blue <= memory_data_out_21[9];
280 | end else if (absolute_addr > 19455) begin
281 | red <= memory_data_out_20[1];
282 | green <= memory_data_out_20[5];
283 | blue <= memory_data_out_20[9];
284 | end else if (absolute_addr > 18431) begin
285 | red <= memory_data_out_19[1];
286 | green <= memory_data_out_19[5];
287 | blue <= memory_data_out_19[9];
288 | end else if (absolute_addr > 17407) begin
289 | red <= memory_data_out_18[1];
290 | green <= memory_data_out_18[5];
291 | blue <= memory_data_out_18[9];
292 | end else if (absolute_addr > 16383) begin
293 | red <= memory_data_out_17[1];
294 | green <= memory_data_out_17[5];
295 | blue <= memory_data_out_17[9];
296 | end else if (absolute_addr > 15359) begin
297 | red <= memory_data_out_16[1];
298 | green <= memory_data_out_16[5];
299 | blue <= memory_data_out_16[9];
300 | end else if (absolute_addr > 14335) begin
301 | red <= memory_data_out_15[1];
302 | green <= memory_data_out_15[5];
303 | blue <= memory_data_out_15[9];
304 | end else if (absolute_addr > 13311) begin
305 | red <= memory_data_out_14[1];
306 | green <= memory_data_out_14[5];
307 | blue <= memory_data_out_14[9];
308 | end else if (absolute_addr > 12287) begin
309 | red <= memory_data_out_13[1];
310 | green <= memory_data_out_13[5];
311 | blue <= memory_data_out_13[9];
312 | end else if (absolute_addr > 11263) begin
313 | red <= memory_data_out_12[1];
314 | green <= memory_data_out_12[5];
315 | blue <= memory_data_out_12[9];
316 | end else if (absolute_addr > 10239) begin
317 | red <= memory_data_out_11[1];
318 | green <= memory_data_out_11[5];
319 | blue <= memory_data_out_11[9];
320 | end else if (absolute_addr > 9215) begin
321 | red <= memory_data_out_10[1];
322 | green <= memory_data_out_10[5];
323 | blue <= memory_data_out_10[9];
324 | end else if (absolute_addr > 8191) begin
325 | red <= memory_data_out_9[1];
326 | green <= memory_data_out_9[5];
327 | blue <= memory_data_out_9[9];
328 | end else if (absolute_addr > 7167) begin
329 | red <= memory_data_out_8[1];
330 | green <= memory_data_out_8[5];
331 | blue <= memory_data_out_8[9];
332 | end else if (absolute_addr > 6143) begin
333 | red <= memory_data_out_7[1];
334 | green <= memory_data_out_7[5];
335 | blue <= memory_data_out_7[9];
336 | end else if (absolute_addr > 5119) begin
337 | red <= memory_data_out_6[1];
338 | green <= memory_data_out_6[5];
339 | blue <= memory_data_out_6[9];
340 | end else if (absolute_addr > 4095) begin
341 | red <= memory_data_out_5[1];
342 | green <= memory_data_out_5[5];
343 | blue <= memory_data_out_5[9];
344 | end else if (absolute_addr > 3071) begin
345 | red <= memory_data_out_4[1];
346 | green <= memory_data_out_4[5];
347 | blue <= memory_data_out_4[9];
348 | end else if (absolute_addr > 2047) begin
349 | red <= memory_data_out_3[1];
350 | green <= memory_data_out_3[5];
351 | blue <= memory_data_out_3[9];
352 | end else if (absolute_addr > 1023) begin
353 | red <= memory_data_out_2[1];
354 | green <= memory_data_out_2[5];
355 | blue <= memory_data_out_2[9];
356 | end else begin
357 | red <= memory_data_out_1[1];
358 | green <= memory_data_out_1[5];
359 | blue <= memory_data_out_1[9];
360 | end
361 | end
362 |
363 | // Increment / reset counters.
364 | h_counter <= h_counter + 1'b1;
365 |
366 | if (h_counter == 264) // 264
367 | begin
368 | h_counter <= 0;
369 | v_counter <= v_counter + 1'b1;
370 | end
371 |
372 | if (v_counter == 628) // 628
373 | begin
374 | v_counter <= 0;
375 | end
376 |
377 | display <= 0;
378 | end else begin
379 | display <= 1;
380 | end
381 | end
382 |
383 | reg interrupt_active;
384 |
385 | // Load pixel data into memory.
386 | always @(negedge clk_20mhz) begin
387 | absolute_addr <= h_counter + ((v_counter / 4) * 200);
388 |
389 | write_en1 <= 0;
390 | write_en2 <= 0;
391 | write_en3 <= 0;
392 | write_en4 <= 0;
393 | write_en5 <= 0;
394 | write_en6 <= 0;
395 | write_en7 <= 0;
396 | write_en8 <= 0;
397 | write_en9 <= 0;
398 | write_en10 <= 0;
399 | write_en11 <= 0;
400 | write_en12 <= 0;
401 | write_en13 <= 0;
402 | write_en14 <= 0;
403 | write_en15 <= 0;
404 | write_en16 <= 0;
405 | write_en17 <= 0;
406 | write_en18 <= 0;
407 | write_en19 <= 0;
408 | write_en20 <= 0;
409 | write_en21 <= 0;
410 | write_en22 <= 0;
411 | write_en23 <= 0;
412 | write_en24 <= 0;
413 | write_en25 <= 0;
414 | write_en26 <= 0;
415 | write_en27 <= 0;
416 | write_en28 <= 0;
417 | write_en29 <= 0;
418 | write_en30 <= 0;
419 |
420 | if (interrupt && !interrupt_active) begin
421 | interrupt_active = 1;
422 |
423 | memory_data_in = {1'b1,1'b1,1'b1,1'b1,1'b1,1'b1,b_in,1'b1,1'b1,1'b1,g_in,1'b1,1'b1,1'b1,r_in,1'b1};
424 | w_absolute_addr = {a14, a13, a12, a11, a10, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0};
425 | waddr = {1'b0, w_absolute_addr[9:0]};
426 |
427 | if (w_absolute_addr > 29695) begin
428 | write_en30 <= 1;
429 | end else if (w_absolute_addr > 28671) begin // 29695 bad
430 | write_en29 <= 1;
431 | end else if (w_absolute_addr > 27647) begin
432 | write_en28 <= 1;
433 | end else if (w_absolute_addr > 26623) begin
434 | write_en27 <= 1;
435 | end else if (w_absolute_addr > 25599) begin
436 | write_en26 <= 1;
437 | end else if (w_absolute_addr > 24575) begin
438 | write_en25 <= 1;
439 | end else if (w_absolute_addr > 23551) begin
440 | write_en24 <= 1;
441 | end else if (w_absolute_addr > 22527) begin
442 | write_en23 <= 1;
443 | end else if (w_absolute_addr > 21503) begin
444 | write_en22 <= 1;
445 | end else if (w_absolute_addr > 20479) begin
446 | write_en21 <= 1;
447 | end else if (w_absolute_addr > 19455) begin
448 | write_en20 <= 1;
449 | end else if (w_absolute_addr > 18431) begin
450 | write_en19 <= 1;
451 | end else if (w_absolute_addr > 17407) begin
452 | write_en18 <= 1;
453 | end else if (w_absolute_addr > 16383) begin
454 | write_en17 <= 1;
455 | end else if (w_absolute_addr > 15359) begin
456 | write_en16 <= 1;
457 | end else if (w_absolute_addr > 14335) begin
458 | write_en15 <= 1;
459 | end else if (w_absolute_addr > 13311) begin
460 | write_en14 <= 1;
461 | end else if (w_absolute_addr > 12287) begin
462 | write_en13 <= 1;
463 | end else if (w_absolute_addr > 11263) begin
464 | write_en12 <= 1;
465 | end else if (w_absolute_addr > 10239) begin
466 | write_en11 <= 1;
467 | end else if (w_absolute_addr > 9215) begin
468 | write_en10 <= 1;
469 | end else if (w_absolute_addr > 8191) begin
470 | write_en9 <= 1;
471 | end else if (w_absolute_addr > 7167) begin
472 | write_en8 <= 1;
473 | end else if (w_absolute_addr > 6143) begin
474 | write_en7 <= 1;
475 | end else if (w_absolute_addr > 5119) begin
476 | write_en6 <= 1;
477 | end else if (w_absolute_addr > 4095) begin
478 | write_en5 <= 1;
479 | end else if (w_absolute_addr > 3071) begin
480 | write_en4 <= 1;
481 | end else if (w_absolute_addr > 2047) begin
482 | write_en3 <= 1;
483 | end else if (w_absolute_addr > 1023) begin
484 | write_en2 <= 1;
485 | end else begin
486 | write_en1 <= 1;
487 | end
488 | interrupt_active = 0;
489 | end
490 | end
491 |
492 | ////
493 | // BRAM
494 | ////
495 |
496 | SB_RAM40_4K #(
497 | .READ_MODE(2), // 1024x4
498 | .WRITE_MODE(2), // 1024x4
499 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
500 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
501 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
502 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
503 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
504 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
505 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
506 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
507 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
508 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
509 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
510 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
511 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
512 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
513 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
514 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
515 | ) ram1 (
516 | .RDATA(memory_data_out_1),
517 | .RADDR(raddr),
518 | .WADDR(waddr),
519 | .WDATA(memory_data_in),
520 | .RCLKE(1'b1),
521 | .RCLK(clk_20mhz),
522 | .RE(1'b1),
523 | .WCLKE(1'b1),
524 | .WCLK(clk_20mhz),
525 | .WE(write_en1)
526 | );
527 |
528 | SB_RAM40_4K #(
529 | .READ_MODE(2), // 1024x4
530 | .WRITE_MODE(2), // 1024x4
531 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
532 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
533 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
534 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
535 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
536 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
537 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
538 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
539 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
540 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
541 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
542 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
543 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
544 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
545 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
546 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
547 | ) ram2 (
548 | .RDATA(memory_data_out_2),
549 | .RADDR(raddr),
550 | .WADDR(waddr),
551 | .WDATA(memory_data_in),
552 | .RCLKE(1'b1),
553 | .RCLK(clk_20mhz),
554 | .RE(1'b1),
555 | .WCLKE(1'b1),
556 | .WCLK(clk_20mhz),
557 | .WE(write_en2)
558 | );
559 |
560 | SB_RAM40_4K #(
561 | .READ_MODE(2), // 1024x4
562 | .WRITE_MODE(2), // 1024x4
563 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
564 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
565 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
566 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
567 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
568 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
569 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
570 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
571 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
572 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
573 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
574 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
575 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
576 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
577 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
578 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
579 | ) ram3 (
580 | .RDATA(memory_data_out_3),
581 | .RADDR(raddr),
582 | .WADDR(waddr),
583 | .WDATA(memory_data_in),
584 | .RCLKE(1'b1),
585 | .RCLK(clk_20mhz),
586 | .RE(1'b1),
587 | .WCLKE(1'b1),
588 | .WCLK(clk_20mhz),
589 | .WE(write_en3)
590 | );
591 |
592 | SB_RAM40_4K #(
593 | .READ_MODE(2), // 1024x4
594 | .WRITE_MODE(2), // 1024x4
595 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
596 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
597 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
598 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
599 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
600 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
601 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
602 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
603 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
604 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
605 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
606 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
607 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
608 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
609 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
610 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
611 | ) ram4 (
612 | .RDATA(memory_data_out_4),
613 | .RADDR(raddr),
614 | .WADDR(waddr),
615 | .WDATA(memory_data_in),
616 | .RCLKE(1'b1),
617 | .RCLK(clk_20mhz),
618 | .RE(1'b1),
619 | .WCLKE(1'b1),
620 | .WCLK(clk_20mhz),
621 | .WE(write_en4)
622 | );
623 |
624 | SB_RAM40_4K #(
625 | .READ_MODE(2), // 1024x4
626 | .WRITE_MODE(2), // 1024x4
627 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
628 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
629 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
630 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
631 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
632 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
633 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
634 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
635 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
636 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
637 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
638 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
639 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
640 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
641 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
642 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
643 | ) ram5 (
644 | .RDATA(memory_data_out_5),
645 | .RADDR(raddr),
646 | .WADDR(waddr),
647 | .WDATA(memory_data_in),
648 | .RCLKE(1'b1),
649 | .RCLK(clk_20mhz),
650 | .RE(1'b1),
651 | .WCLKE(1'b1),
652 | .WCLK(clk_20mhz),
653 | .WE(write_en5)
654 | );
655 |
656 | SB_RAM40_4K #(
657 | .READ_MODE(2), // 1024x4
658 | .WRITE_MODE(2), // 1024x4
659 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
660 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
661 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
662 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
663 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
664 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
665 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
666 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
667 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
668 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
669 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
670 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
671 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
672 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
673 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
674 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
675 | ) ram6 (
676 | .RDATA(memory_data_out_6),
677 | .RADDR(raddr),
678 | .WADDR(waddr),
679 | .WDATA(memory_data_in),
680 | .RCLKE(1'b1),
681 | .RCLK(clk_20mhz),
682 | .RE(1'b1),
683 | .WCLKE(1'b1),
684 | .WCLK(clk_20mhz),
685 | .WE(write_en6)
686 | );
687 |
688 | SB_RAM40_4K #(
689 | .READ_MODE(2), // 1024x4
690 | .WRITE_MODE(2), // 1024x4
691 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
692 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
693 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
694 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
695 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
696 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
697 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
698 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
699 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
700 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
701 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
702 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
703 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
704 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
705 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
706 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
707 | ) ram7 (
708 | .RDATA(memory_data_out_7),
709 | .RADDR(raddr),
710 | .WADDR(waddr),
711 | .WDATA(memory_data_in),
712 | .RCLKE(1'b1),
713 | .RCLK(clk_20mhz),
714 | .RE(1'b1),
715 | .WCLKE(1'b1),
716 | .WCLK(clk_20mhz),
717 | .WE(write_en7)
718 | );
719 |
720 | SB_RAM40_4K #(
721 | .READ_MODE(2), // 1024x4
722 | .WRITE_MODE(2), // 1024x4
723 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
724 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
725 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
726 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
727 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
728 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
729 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
730 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
731 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
732 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
733 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
734 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
735 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
736 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
737 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
738 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
739 | ) ram8 (
740 | .RDATA(memory_data_out_8),
741 | .RADDR(raddr),
742 | .WADDR(waddr),
743 | .WDATA(memory_data_in),
744 | .RCLKE(1'b1),
745 | .RCLK(clk_20mhz),
746 | .RE(1'b1),
747 | .WCLKE(1'b1),
748 | .WCLK(clk_20mhz),
749 | .WE(write_en8)
750 | );
751 |
752 | SB_RAM40_4K #(
753 | .READ_MODE(2), // 1024x4
754 | .WRITE_MODE(2), // 1024x4
755 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
756 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
757 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
758 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
759 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
760 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
761 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
762 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
763 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
764 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
765 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
766 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
767 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
768 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
769 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
770 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
771 | ) ram9 (
772 | .RDATA(memory_data_out_9),
773 | .RADDR(raddr),
774 | .WADDR(waddr),
775 | .WDATA(memory_data_in),
776 | .RCLKE(1'b1),
777 | .RCLK(clk_20mhz),
778 | .RE(1'b1),
779 | .WCLKE(1'b1),
780 | .WCLK(clk_20mhz),
781 | .WE(write_en9)
782 | );
783 |
784 | SB_RAM40_4K #(
785 | .READ_MODE(2), // 1024x4
786 | .WRITE_MODE(2), // 1024x4
787 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
788 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
789 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
790 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
791 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
792 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
793 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
794 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
795 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
796 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
797 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
798 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
799 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
800 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
801 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
802 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
803 | ) ram10 (
804 | .RDATA(memory_data_out_10),
805 | .RADDR(raddr),
806 | .WADDR(waddr),
807 | .WDATA(memory_data_in),
808 | .RCLKE(1'b1),
809 | .RCLK(clk_20mhz),
810 | .RE(1'b1),
811 | .WCLKE(1'b1),
812 | .WCLK(clk_20mhz),
813 | .WE(write_en10)
814 | );
815 |
816 | SB_RAM40_4K #(
817 | .READ_MODE(2), // 1024x4
818 | .WRITE_MODE(2), // 1024x4
819 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
820 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
821 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
822 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
823 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
824 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
825 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
826 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
827 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
828 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
829 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
830 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
831 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
832 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
833 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
834 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
835 | ) ram11 (
836 | .RDATA(memory_data_out_11),
837 | .RADDR(raddr),
838 | .WADDR(waddr),
839 | .WDATA(memory_data_in),
840 | .RCLKE(1'b1),
841 | .RCLK(clk_20mhz),
842 | .RE(1'b1),
843 | .WCLKE(1'b1),
844 | .WCLK(clk_20mhz),
845 | .WE(write_en11)
846 | );
847 |
848 | SB_RAM40_4K #(
849 | .READ_MODE(2), // 1024x4
850 | .WRITE_MODE(2), // 1024x4
851 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
852 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
853 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
854 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
855 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
856 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
857 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
858 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
859 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
860 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
861 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
862 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
863 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
864 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
865 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
866 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
867 | ) ram12 (
868 | .RDATA(memory_data_out_12),
869 | .RADDR(raddr),
870 | .WADDR(waddr),
871 | .WDATA(memory_data_in),
872 | .RCLKE(1'b1),
873 | .RCLK(clk_20mhz),
874 | .RE(1'b1),
875 | .WCLKE(1'b1),
876 | .WCLK(clk_20mhz),
877 | .WE(write_en12)
878 | );
879 |
880 | SB_RAM40_4K #(
881 | .READ_MODE(2), // 1024x4
882 | .WRITE_MODE(2), // 1024x4
883 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
884 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
885 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
886 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
887 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
888 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
889 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
890 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
891 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
892 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
893 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
894 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
895 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
896 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
897 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
898 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
899 | ) ram13 (
900 | .RDATA(memory_data_out_13),
901 | .RADDR(raddr),
902 | .WADDR(waddr),
903 | .WDATA(memory_data_in),
904 | .RCLKE(1'b1),
905 | .RCLK(clk_20mhz),
906 | .RE(1'b1),
907 | .WCLKE(1'b1),
908 | .WCLK(clk_20mhz),
909 | .WE(write_en13)
910 | );
911 |
912 | SB_RAM40_4K #(
913 | .READ_MODE(2), // 1024x4
914 | .WRITE_MODE(2), // 1024x4
915 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
916 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
917 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
918 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
919 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
920 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
921 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
922 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
923 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
924 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
925 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
926 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
927 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
928 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
929 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
930 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
931 | ) ram14 (
932 | .RDATA(memory_data_out_14),
933 | .RADDR(raddr),
934 | .WADDR(waddr),
935 | .WDATA(memory_data_in),
936 | .RCLKE(1'b1),
937 | .RCLK(clk_20mhz),
938 | .RE(1'b1),
939 | .WCLKE(1'b1),
940 | .WCLK(clk_20mhz),
941 | .WE(write_en14)
942 | );
943 |
944 | SB_RAM40_4K #(
945 | .READ_MODE(2), // 1024x4
946 | .WRITE_MODE(2), // 1024x4
947 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
948 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
949 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
950 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
951 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
952 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
953 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
954 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
955 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
956 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
957 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
958 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
959 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
960 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
961 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
962 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
963 | ) ram15 (
964 | .RDATA(memory_data_out_15),
965 | .RADDR(raddr),
966 | .WADDR(waddr),
967 | .WDATA(memory_data_in),
968 | .RCLKE(1'b1),
969 | .RCLK(clk_20mhz),
970 | .RE(1'b1),
971 | .WCLKE(1'b1),
972 | .WCLK(clk_20mhz),
973 | .WE(write_en15)
974 | );
975 |
976 | SB_RAM40_4K #(
977 | .READ_MODE(2), // 1024x4
978 | .WRITE_MODE(2), // 1024x4
979 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
980 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
981 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
982 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
983 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
984 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
985 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
986 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
987 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
988 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
989 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
990 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
991 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
992 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
993 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
994 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
995 | ) ram16 (
996 | .RDATA(memory_data_out_16),
997 | .RADDR(raddr),
998 | .WADDR(waddr),
999 | .WDATA(memory_data_in),
1000 | .RCLKE(1'b1),
1001 | .RCLK(clk_20mhz),
1002 | .RE(1'b1),
1003 | .WCLKE(1'b1),
1004 | .WCLK(clk_20mhz),
1005 | .WE(write_en16)
1006 | );
1007 |
1008 | SB_RAM40_4K #(
1009 | .READ_MODE(2), // 1024x4
1010 | .WRITE_MODE(2), // 1024x4
1011 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1012 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1013 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1014 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1015 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1016 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1017 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1018 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1019 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1020 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1021 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1022 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1023 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1024 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1025 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1026 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1027 | ) ram17 (
1028 | .RDATA(memory_data_out_17),
1029 | .RADDR(raddr),
1030 | .WADDR(waddr),
1031 | .WDATA(memory_data_in),
1032 | .RCLKE(1'b1),
1033 | .RCLK(clk_20mhz),
1034 | .RE(1'b1),
1035 | .WCLKE(1'b1),
1036 | .WCLK(clk_20mhz),
1037 | .WE(write_en17)
1038 | );
1039 |
1040 | SB_RAM40_4K #(
1041 | .READ_MODE(2), // 1024x4
1042 | .WRITE_MODE(2), // 1024x4
1043 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1044 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1045 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1046 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1047 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1048 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1049 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1050 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1051 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1052 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1053 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1054 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1055 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1056 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1057 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1058 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1059 | ) ram18 (
1060 | .RDATA(memory_data_out_18),
1061 | .RADDR(raddr),
1062 | .WADDR(waddr),
1063 | .WDATA(memory_data_in),
1064 | .RCLKE(1'b1),
1065 | .RCLK(clk_20mhz),
1066 | .RE(1'b1),
1067 | .WCLKE(1'b1),
1068 | .WCLK(clk_20mhz),
1069 | .WE(write_en18)
1070 | );
1071 |
1072 | SB_RAM40_4K #(
1073 | .READ_MODE(2), // 1024x4
1074 | .WRITE_MODE(2), // 1024x4
1075 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1076 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1077 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1078 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1079 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1080 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1081 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1082 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1083 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1084 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1085 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1086 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1087 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1088 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1089 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1090 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1091 | ) ram19 (
1092 | .RDATA(memory_data_out_19),
1093 | .RADDR(raddr),
1094 | .WADDR(waddr),
1095 | .WDATA(memory_data_in),
1096 | .RCLKE(1'b1),
1097 | .RCLK(clk_20mhz),
1098 | .RE(1'b1),
1099 | .WCLKE(1'b1),
1100 | .WCLK(clk_20mhz),
1101 | .WE(write_en19)
1102 | );
1103 |
1104 | SB_RAM40_4K #(
1105 | .READ_MODE(2), // 1024x4
1106 | .WRITE_MODE(2), // 1024x4
1107 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1108 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1109 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1110 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1111 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1112 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1113 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1114 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1115 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1116 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1117 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1118 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1119 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1120 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1121 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1122 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1123 | ) ram20 (
1124 | .RDATA(memory_data_out_20),
1125 | .RADDR(raddr),
1126 | .WADDR(waddr),
1127 | .WDATA(memory_data_in),
1128 | .RCLKE(1'b1),
1129 | .RCLK(clk_20mhz),
1130 | .RE(1'b1),
1131 | .WCLKE(1'b1),
1132 | .WCLK(clk_20mhz),
1133 | .WE(write_en20)
1134 | );
1135 |
1136 | SB_RAM40_4K #(
1137 | .READ_MODE(2), // 1024x4
1138 | .WRITE_MODE(2), // 1024x4
1139 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1140 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1141 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1142 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1143 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1144 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1145 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1146 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1147 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1148 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1149 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1150 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1151 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1152 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1153 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1154 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1155 | ) ram21 (
1156 | .RDATA(memory_data_out_21),
1157 | .RADDR(raddr),
1158 | .WADDR(waddr),
1159 | .WDATA(memory_data_in),
1160 | .RCLKE(1'b1),
1161 | .RCLK(clk_20mhz),
1162 | .RE(1'b1),
1163 | .WCLKE(1'b1),
1164 | .WCLK(clk_20mhz),
1165 | .WE(write_en21)
1166 | );
1167 |
1168 | SB_RAM40_4K #(
1169 | .READ_MODE(2), // 1024x4
1170 | .WRITE_MODE(2), // 1024x4
1171 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1172 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1173 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1174 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1175 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1176 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1177 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1178 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1179 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1180 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1181 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1182 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1183 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1184 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1185 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1186 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1187 | ) ram22 (
1188 | .RDATA(memory_data_out_22),
1189 | .RADDR(raddr),
1190 | .WADDR(waddr),
1191 | .WDATA(memory_data_in),
1192 | .RCLKE(1'b1),
1193 | .RCLK(clk_20mhz),
1194 | .RE(1'b1),
1195 | .WCLKE(1'b1),
1196 | .WCLK(clk_20mhz),
1197 | .WE(write_en22)
1198 | );
1199 |
1200 | SB_RAM40_4K #(
1201 | .READ_MODE(2), // 1024x4
1202 | .WRITE_MODE(2), // 1024x4
1203 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1204 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1205 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1206 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1207 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1208 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1209 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1210 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1211 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1212 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1213 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1214 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1215 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1216 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1217 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1218 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1219 | ) ram23 (
1220 | .RDATA(memory_data_out_23),
1221 | .RADDR(raddr),
1222 | .WADDR(waddr),
1223 | .WDATA(memory_data_in),
1224 | .RCLKE(1'b1),
1225 | .RCLK(clk_20mhz),
1226 | .RE(1'b1),
1227 | .WCLKE(1'b1),
1228 | .WCLK(clk_20mhz),
1229 | .WE(write_en23)
1230 | );
1231 |
1232 | SB_RAM40_4K #(
1233 | .READ_MODE(2), // 1024x4
1234 | .WRITE_MODE(2), // 1024x4
1235 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1236 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1237 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1238 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1239 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1240 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1241 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1242 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1243 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1244 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1245 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1246 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1247 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1248 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1249 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1250 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1251 | ) ram24 (
1252 | .RDATA(memory_data_out_24),
1253 | .RADDR(raddr),
1254 | .WADDR(waddr),
1255 | .WDATA(memory_data_in),
1256 | .RCLKE(1'b1),
1257 | .RCLK(clk_20mhz),
1258 | .RE(1'b1),
1259 | .WCLKE(1'b1),
1260 | .WCLK(clk_20mhz),
1261 | .WE(write_en24)
1262 | );
1263 |
1264 | SB_RAM40_4K #(
1265 | .READ_MODE(2), // 1024x4
1266 | .WRITE_MODE(2), // 1024x4
1267 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1268 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1269 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1270 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1271 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1272 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1273 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1274 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1275 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1276 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1277 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1278 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1279 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1280 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1281 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1282 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1283 | ) ram25 (
1284 | .RDATA(memory_data_out_25),
1285 | .RADDR(raddr),
1286 | .WADDR(waddr),
1287 | .WDATA(memory_data_in),
1288 | .RCLKE(1'b1),
1289 | .RCLK(clk_20mhz),
1290 | .RE(1'b1),
1291 | .WCLKE(1'b1),
1292 | .WCLK(clk_20mhz),
1293 | .WE(write_en25)
1294 | );
1295 |
1296 | SB_RAM40_4K #(
1297 | .READ_MODE(2), // 1024x4
1298 | .WRITE_MODE(2), // 1024x4
1299 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1300 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1301 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1302 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1303 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1304 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1305 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1306 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1307 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1308 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1309 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1310 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1311 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1312 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1313 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1314 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1315 | ) ram26 (
1316 | .RDATA(memory_data_out_26),
1317 | .RADDR(raddr),
1318 | .WADDR(waddr),
1319 | .WDATA(memory_data_in),
1320 | .RCLKE(1'b1),
1321 | .RCLK(clk_20mhz),
1322 | .RE(1'b1),
1323 | .WCLKE(1'b1),
1324 | .WCLK(clk_20mhz),
1325 | .WE(write_en26)
1326 | );
1327 |
1328 | SB_RAM40_4K #(
1329 | .READ_MODE(2), // 1024x4
1330 | .WRITE_MODE(2), // 1024x4
1331 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1332 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1333 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1334 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1335 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1336 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1337 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1338 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1339 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1340 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1341 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1342 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1343 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1344 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1345 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1346 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1347 | ) ram27 (
1348 | .RDATA(memory_data_out_27),
1349 | .RADDR(raddr),
1350 | .WADDR(waddr),
1351 | .WDATA(memory_data_in),
1352 | .RCLKE(1'b1),
1353 | .RCLK(clk_20mhz),
1354 | .RE(1'b1),
1355 | .WCLKE(1'b1),
1356 | .WCLK(clk_20mhz),
1357 | .WE(write_en27)
1358 | );
1359 |
1360 | SB_RAM40_4K #(
1361 | .READ_MODE(2), // 1024x4
1362 | .WRITE_MODE(2), // 1024x4
1363 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1364 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1365 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1366 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1367 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1368 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1369 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1370 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1371 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1372 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1373 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1374 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1375 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1376 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1377 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1378 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1379 | ) ram28 (
1380 | .RDATA(memory_data_out_28),
1381 | .RADDR(raddr),
1382 | .WADDR(waddr),
1383 | .WDATA(memory_data_in),
1384 | .RCLKE(1'b1),
1385 | .RCLK(clk_20mhz),
1386 | .RE(1'b1),
1387 | .WCLKE(1'b1),
1388 | .WCLK(clk_20mhz),
1389 | .WE(write_en28)
1390 | );
1391 |
1392 | SB_RAM40_4K #(
1393 | .READ_MODE(2), // 1024x4
1394 | .WRITE_MODE(2), // 1024x4
1395 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1396 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1397 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1398 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1399 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1400 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1401 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1402 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1403 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1404 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1405 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1406 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1407 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1408 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1409 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1410 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1411 | ) ram29 (
1412 | .RDATA(memory_data_out_29),
1413 | .RADDR(raddr),
1414 | .WADDR(waddr),
1415 | .WDATA(memory_data_in),
1416 | .RCLKE(1'b1),
1417 | .RCLK(clk_20mhz),
1418 | .RE(1'b1),
1419 | .WCLKE(1'b1),
1420 | .WCLK(clk_20mhz),
1421 | .WE(write_en29)
1422 | );
1423 |
1424 | SB_RAM40_4K #(
1425 | .READ_MODE(2), // 1024x4
1426 | .WRITE_MODE(2), // 1024x4
1427 | .INIT_0(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1428 | .INIT_1(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1429 | .INIT_2(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1430 | .INIT_3(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1431 | .INIT_4(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1432 | .INIT_5(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1433 | .INIT_6(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1434 | .INIT_7(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1435 | .INIT_8(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1436 | .INIT_9(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1437 | .INIT_A(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1438 | .INIT_B(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1439 | .INIT_C(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1440 | .INIT_D(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1441 | .INIT_E(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
1442 | .INIT_F(256'b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
1443 | ) ram30 (
1444 | .RDATA(memory_data_out_30),
1445 | .RADDR(raddr),
1446 | .WADDR(waddr),
1447 | .WDATA(memory_data_in),
1448 | .RCLKE(1'b1),
1449 | .RCLK(clk_20mhz),
1450 | .RE(1'b1),
1451 | .WCLKE(1'b1),
1452 | .WCLK(clk_20mhz),
1453 | .WE(write_en30)
1454 | );
1455 |
1456 | endmodule
1457 |
--------------------------------------------------------------------------------