├── .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 | ![MiniVGA](https://raw.githubusercontent.com/nickbild/fpga_vga/master/media/minivga_sm.jpg) 34 | 35 | Prince of Persia title screen: 36 | 37 | ![Prince of Persia](https://raw.githubusercontent.com/nickbild/fpga_vga/master/media/princeofpersia_sm.jpg) 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 | --------------------------------------------------------------------------------