URL
https://opencores.org/ocsvn/altor32/altor32/trunk
Subversion Repositories altor32
Compare Revisions
- This comparison shows the changes necessary to convert path
/altor32/trunk
- from Rev 24 to Rev 25
- ↔ Reverse comparison
Rev 24 → Rev 25
/fpga/papilio_xc3s250e/bit_to_bin.bat
1,2 → 1,?rev2len?
set PATH=D:\Xilinx\13.1\ISE_DS\ISE\bin\nt |
promgen -u 0x0 project\fpga_top.bit -p bin -w -b -o fpga.bin |
/fpga/papilio_pro/ClockDCM.vhd
0,0 → 1,96
-------------------------------------------------------------------------------- |
-- Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved. |
-------------------------------------------------------------------------------- |
-- ____ ____ |
-- / /\/ / |
-- /___/ \ / Vendor: Xilinx |
-- \ \ \/ Version : 13.1 |
-- \ \ Application : xaw2vhdl |
-- / / Filename : ClockDCM.vhd |
-- /___/ /\ Timestamp : 09/17/2011 00:07:38 |
-- \ \ / \ |
-- \___\/\___\ |
-- |
--Command: xaw2vhdl-st D:\vhdl\mwips\fpga\ipcore_dir\.\ClockDCM.xaw D:\vhdl\mwips\fpga\ipcore_dir\.\ClockDCM |
--Design Name: ClockDCM |
--Device: xc3s250e-4vq100 |
-- |
-- Module ClockDCM |
-- Generated by Xilinx Architecture Wizard |
-- Written for synthesis tool: XST |
-- Period Jitter (unit interval) for block DCM_SP_INST = 0.07 UI |
-- Period Jitter (Peak-to-Peak) for block DCM_SP_INST = 1.36 ns |
|
library ieee; |
use ieee.std_logic_1164.ALL; |
use ieee.numeric_std.ALL; |
library UNISIM; |
use UNISIM.Vcomponents.ALL; |
|
entity ClockDCM is |
generic |
( |
CLK_IN_MHZ : integer := 32; |
CLK_OUT_MHZ : integer := 64 |
); |
port |
( |
CLKIN_IN : in std_logic; |
CLKFX_OUT : out std_logic; |
CLKIN_IBUFG_OUT : out std_logic |
); |
end ClockDCM; |
|
architecture BEHAVIORAL of ClockDCM is |
signal CLKFX_BUF : std_logic; |
signal CLKIN_IBUFG : std_logic; |
signal GND_BIT : std_logic; |
begin |
GND_BIT <= '0'; |
CLKIN_IBUFG_OUT <= CLKIN_IBUFG; |
CLKFX_BUFG_INST : BUFG |
port map (I=>CLKFX_BUF, |
O=>CLKFX_OUT); |
|
CLKIN_IBUFG_INST : IBUFG |
port map (I=>CLKIN_IN, |
O=>CLKIN_IBUFG); |
|
DCM_SP_INST : DCM_SP |
generic map( CLK_FEEDBACK => "NONE", |
CLKDV_DIVIDE => 2.0, |
CLKFX_DIVIDE => (CLK_IN_MHZ / 2), |
CLKFX_MULTIPLY => (CLK_OUT_MHZ / 2), |
CLKIN_DIVIDE_BY_2 => FALSE, |
CLKIN_PERIOD => 31.250, |
CLKOUT_PHASE_SHIFT => "NONE", |
DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", |
DFS_FREQUENCY_MODE => "LOW", |
DLL_FREQUENCY_MODE => "LOW", |
DUTY_CYCLE_CORRECTION => TRUE, |
FACTORY_JF => x"C080", |
PHASE_SHIFT => 0, |
STARTUP_WAIT => FALSE) |
port map (CLKFB=>GND_BIT, |
CLKIN=>CLKIN_IBUFG, |
DSSEN=>GND_BIT, |
PSCLK=>GND_BIT, |
PSEN=>GND_BIT, |
PSINCDEC=>GND_BIT, |
RST=>GND_BIT, |
CLKDV=>open, |
CLKFX=>CLKFX_BUF, |
CLKFX180=>open, |
CLK0=>open, |
CLK2X=>open, |
CLK2X180=>open, |
CLK90=>open, |
CLK180=>open, |
CLK270=>open, |
LOCKED=>open, |
PSDONE=>open, |
STATUS=>open); |
|
end BEHAVIORAL; |
|
|
/fpga/papilio_pro/top.vhd
0,0 → 1,423
------------------------------------------------------------------- |
-- AltOR32 |
-- Alternative Lightweight OpenRisc |
-- Ultra-Embedded.com |
-- Copyright 2011 - 2013 |
-- |
-- Email: admin@ultra-embedded.com |
-- |
-- License: LGPL |
-- |
-- If you would like a version with a different license for use |
-- in commercial projects please contact the above email address |
-- for more details. |
------------------------------------------------------------------- |
-- |
-- Copyright (C) 2011 - 2013 Ultra-Embedded.com |
-- |
-- This source file may be used and distributed without |
-- restriction provided that this copyright statement is not |
-- removed from the file and that any derivative work contains |
-- the original copyright notice and the associated disclaimer. |
-- |
-- This source file is free software; you can redistribute it |
-- and/or modify it under the terms of the GNU Lesser General |
-- Public License as published by the Free Software Foundation; |
-- either version 2.1 of the License, or (at your option) any |
-- later version. |
-- |
-- This source is distributed in the hope that it will be |
-- useful, but WITHOUT ANY WARRANTY; without even the implied |
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
-- PURPOSE. See the GNU Lesser General Public License for more |
-- details. |
-- |
-- You should have received a copy of the GNU Lesser General |
-- Public License along with this source; if not, write to the |
-- Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
-- Boston, MA 02111-1307 USA |
------------------------------------------------------------------- |
library IEEE; |
use IEEE.STD_LOGIC_1164.ALL; |
use IEEE.STD_LOGIC_ARITH.ALL; |
use IEEE.STD_LOGIC_UNSIGNED.ALL; |
|
use work.peripherals.all; |
|
entity fpga_top is |
generic |
( |
-- Oscillator frequency (MHz) |
OSC_MHZ : integer := 32; |
|
-- Target CPU MHz (must be a multiple of 2) |
CPU_MHZ : integer := 64 |
); |
port |
( |
CLK : in std_logic; |
RX : in std_logic; |
TX : out std_logic; |
|
A : inout std_logic_vector(15 downto 0); |
B : inout std_logic_vector(15 downto 0); |
C : inout std_logic_vector(15 downto 0); |
|
SDRAM_ADDR : out std_logic_vector(12 downto 0); |
SDRAM_DATA : inout std_logic_vector(15 downto 0); |
SDRAM_DQML : out std_logic; |
SDRAM_DQMH : out std_logic; |
SDRAM_BA : out std_logic_vector(1 downto 0); |
SDRAM_nWE : out std_logic; |
SDRAM_nCAS : out std_logic; |
SDRAM_nRAS : out std_logic; |
SDRAM_CS : out std_logic; |
SDRAM_CLK : out std_logic; |
SDRAM_CKE : out std_logic; |
|
LED1 : out std_logic; |
|
FLASH_CS : out std_logic; |
FLASH_CK : out std_logic; |
FLASH_SI : out std_logic; |
FLASH_SO : in std_logic |
); |
end fpga_top; |
|
architecture Behavioral of fpga_top is |
|
----------------------------------------------- |
-- Component Definitions |
----------------------------------------------- |
component ram |
generic |
( |
-- Number of 8KB blocks of internal RAM, up to 64KB (1 to 8) |
block_count : integer := 1 |
); |
port |
( |
-- Port A |
clka_i : in std_logic; |
ena_i : in std_logic; |
wea_i : in std_logic_vector(3 downto 0); |
addra_i : in std_logic_vector(31 downto 2); |
dataa_i : in std_logic_vector(31 downto 0); |
dataa_o : out std_logic_vector(31 downto 0); |
|
-- Port B |
clkb_i : in std_logic; |
enb_i : in std_logic; |
web_i : in std_logic_vector(3 downto 0); |
addrb_i : in std_logic_vector(31 downto 2); |
datab_i : in std_logic_vector(31 downto 0); |
datab_o : out std_logic_vector(31 downto 0) |
); |
end component; |
|
----------------------------------------------- |
-- Signals |
----------------------------------------------- |
signal cpu_clk : std_logic; |
signal reset : std_logic:= '1'; |
signal rst_next : std_logic:= '1'; |
|
-- Block RAM interface |
signal bram_mem_address : std_logic_vector(31 downto 0); |
signal bram_mem_data_w : std_logic_vector(31 downto 0); |
signal bram_mem_data_r : std_logic_vector(31 downto 0); |
signal bram_mem_wr : std_logic_vector(3 downto 0); |
|
-- I/O peripheral bus |
signal io_address : std_logic_vector(31 downto 0); |
signal io_data_w : std_logic_vector(31 downto 0); |
signal io_data_r : std_logic_vector(31 downto 0); |
signal io_wr : std_logic_vector(3 downto 0); |
signal io_rd : std_logic; |
|
-- GPIO ports |
signal gpio_w1a_port_out : std_logic_vector(15 downto 0); |
signal gpio_w1a_port_in : std_logic_vector(15 downto 0); |
signal gpio_w1a_port_raw : std_logic_vector(15 downto 0); |
signal gpio_w1a_port_out_en : std_logic_vector(15 downto 0); |
|
signal gpio_w1b_port_out : std_logic_vector(15 downto 0); |
signal gpio_w1b_port_in : std_logic_vector(15 downto 0); |
signal gpio_w1b_port_raw : std_logic_vector(15 downto 0); |
signal gpio_w1b_port_out_en : std_logic_vector(15 downto 0); |
|
signal gpio_w2c_port_out : std_logic_vector(15 downto 0); |
signal gpio_w2c_port_in : std_logic_vector(15 downto 0); |
signal gpio_w2c_port_raw : std_logic_vector(15 downto 0); |
signal gpio_w2c_port_out_en : std_logic_vector(15 downto 0); |
|
----------------------------------------------- |
-- I/O Register Map (from 0x13000000) |
----------------------------------------------- |
constant GPIO_W1A_OUT : std_logic_vector(7 downto 0) := X"10"; |
constant GPIO_W1A_IN : std_logic_vector(7 downto 0) := X"14"; |
constant GPIO_W1A_DIR : std_logic_vector(7 downto 0) := X"1C"; |
|
constant GPIO_W1B_OUT : std_logic_vector(7 downto 0) := X"20"; |
constant GPIO_W1B_IN : std_logic_vector(7 downto 0) := X"24"; |
constant GPIO_W1B_DIR : std_logic_vector(7 downto 0) := X"2C"; |
|
constant GPIO_W2C_OUT : std_logic_vector(7 downto 0) := X"30"; |
constant GPIO_W2C_IN : std_logic_vector(7 downto 0) := X"34"; |
constant GPIO_W2C_DIR : std_logic_vector(7 downto 0) := X"3C"; |
|
begin |
|
----------------------------------------------- |
-- Instantiation |
----------------------------------------------- |
cpu_clk <= CLK; |
|
-- 64KB Block RAM (0x10000000 - 0x10010000) |
U2_RAM: ram |
generic map |
( |
block_count => 8 |
) |
port map |
( |
clka_i => cpu_clk, |
ena_i => '1', |
wea_i => bram_mem_wr, |
addra_i => bram_mem_address(31 downto 2), |
dataa_i => bram_mem_data_w, |
dataa_o => bram_mem_data_r, |
|
clkb_i => cpu_clk, |
enb_i => '1', |
web_i => "0000", |
addrb_i => (others=>'0'), |
datab_i => (others=>'0'), |
datab_o => open |
); |
|
-- CPU SOC |
U3_CPU: soc_core |
generic map |
( |
CLK_KHZ => (CPU_MHZ * 1000), |
UART_BAUD => 115200, |
BOOT_VECTOR => X"10000000", |
ISR_VECTOR => X"10002000", |
REGISTER_FILE_TYPE => "XILINX", |
ENABLE_UART => "ENABLED", |
ENABLE_SPI_FLASH => "ENABLED", |
EXTERNAL_INTERRUPTS => 1 |
) |
port map |
( |
-- General - clocking & reset |
clk_i => cpu_clk, |
rst_i => reset, |
en_i => '1', |
ext_intr_i(0) => '0', |
fault_o => open, |
break_o => open, |
|
-- UART |
uart_tx_o => TX, |
uart_rx_i => RX, |
|
-- BootRAM |
int_mem_addr_o => bram_mem_address, |
int_mem_data_o => bram_mem_data_w, |
int_mem_data_i => bram_mem_data_r, |
int_mem_wr_o => bram_mem_wr, |
int_mem_rd_o => open, |
int_mem_pause_i => '0', |
|
-- External IO |
ext_io_addr_o => io_address, |
ext_io_data_o => io_data_w, |
ext_io_data_i => io_data_r, |
ext_io_wr_o => io_wr, |
ext_io_rd_o => io_rd, |
ext_io_pause_i => '0', |
|
-- External Memory |
ext_mem_addr_o => open, |
ext_mem_data_o => open, |
ext_mem_data_i => X"00000000", |
ext_mem_wr_o => open, |
ext_mem_rd_o => open, |
ext_mem_pause_i => '0', |
|
-- SPI Flash |
flash_cs_o => FLASH_CS, |
flash_si_o => FLASH_SI, |
flash_so_i => FLASH_SO, |
flash_sck_o => FLASH_CK, |
|
-- Debug UART Output |
dbg_uart_data_o => open, |
dbg_uart_wr_o => open |
); |
|
----------------------------------------------- |
-- Implementation |
----------------------------------------------- |
|
-- Reset Generator |
process (cpu_clk) |
|
begin |
if (rising_edge(cpu_clk)) then |
if (rst_next = '0') then |
reset <= '0'; |
else |
rst_next <= '0'; |
end if; |
end if; |
end process; |
|
----------------------------------------------- |
-- IO memory space WRITE handler |
----------------------------------------------- |
process (reset,cpu_clk) |
|
begin |
if (reset = '1') then |
|
-- GPIO |
gpio_w1a_port_out <= (others=>'0'); |
gpio_w1a_port_out_en <= (others=>'1'); |
|
gpio_w1b_port_out <= (others=>'0'); |
gpio_w1b_port_out_en <= (others=>'1'); |
|
gpio_w2c_port_out <= (others=>'0'); |
gpio_w2c_port_out_en <= (others=>'1'); |
|
elsif (rising_edge(cpu_clk)) then |
|
-- IO Write Cycle |
if (io_wr /= "0000") then |
|
case io_address(7 downto 0) is |
|
when GPIO_W1A_OUT => |
gpio_w1a_port_out <= io_data_w(15 downto 0); |
|
when GPIO_W1A_DIR => |
gpio_w1a_port_out_en <= io_data_w(15 downto 0); |
|
when GPIO_W1B_OUT => |
gpio_w1b_port_out <= io_data_w(15 downto 0); |
|
when GPIO_W1B_DIR => |
gpio_w1b_port_out_en <= io_data_w(15 downto 0); |
|
when GPIO_W2C_OUT => |
gpio_w2c_port_out <= io_data_w(15 downto 0); |
|
when GPIO_W2C_DIR => |
gpio_w2c_port_out_en <= io_data_w(15 downto 0); |
|
when others => |
|
end case; |
|
end if; |
|
end if; |
end process; |
|
----------------------------------------------- |
-- IO memory space READ handler |
----------------------------------------------- |
process (reset,cpu_clk) |
|
begin |
if (reset = '1') then |
|
io_data_r <= X"00000000"; |
gpio_w1a_port_in <= X"0000"; |
gpio_w1b_port_in <= X"0000"; |
gpio_w2c_port_in <= X"0000"; |
|
elsif (rising_edge(cpu_clk)) then |
|
gpio_w1a_port_in <= gpio_w1a_port_raw; |
gpio_w1b_port_in <= gpio_w1b_port_raw; |
gpio_w2c_port_in <= gpio_w2c_port_raw; |
|
-- Read cycle? |
if (io_rd = '1') then |
|
case io_address(7 downto 0) is |
|
when GPIO_W1A_OUT => |
io_data_r <= X"0000" & gpio_w1a_port_out; |
|
when GPIO_W1A_DIR => |
io_data_r <= X"0000" & gpio_w1a_port_out_en; |
|
when GPIO_W1A_IN => |
io_data_r <= X"0000" & gpio_w1a_port_in; |
|
when GPIO_W1B_OUT => |
io_data_r <= X"0000" & gpio_w1b_port_out; |
|
when GPIO_W1B_DIR => |
io_data_r <= X"0000" & gpio_w1b_port_out_en; |
|
when GPIO_W1B_IN => |
io_data_r <= X"0000" & gpio_w1b_port_in; |
|
when GPIO_W2C_OUT => |
io_data_r <= X"0000" & gpio_w2c_port_out; |
|
when GPIO_W2C_DIR => |
io_data_r <= X"0000" & gpio_w2c_port_out_en; |
|
when GPIO_W2C_IN => |
io_data_r <= X"0000" & gpio_w2c_port_in; |
|
when others => |
io_data_r <= X"00000000"; |
end case; |
|
end if; |
|
end if; |
|
end process; |
|
----------------------------------------------- |
-- External Interface |
----------------------------------------------- |
|
-- GPIO port is connected to A |
gpio_loop: for n in 15 downto 0 generate |
A(n) <= gpio_w1a_port_out(n) when gpio_w1a_port_out_en(n) = '1' else 'Z'; |
gpio_w1a_port_raw(n)<= A(n); |
|
B(n) <= gpio_w1b_port_out(n) when gpio_w1b_port_out_en(n) = '1' else 'Z'; |
gpio_w1b_port_raw(n)<= B(n); |
|
C(n) <= gpio_w2c_port_out(n) when gpio_w2c_port_out_en(n) = '1' else 'Z'; |
gpio_w2c_port_raw(n)<= C(n); |
end generate gpio_loop; |
|
-- SDRAM - unused currently |
SDRAM_ADDR <= (others=>'0'); |
SDRAM_DATA <= (others=>'0'); |
SDRAM_DQML <= '0'; |
SDRAM_DQMH <= '0'; |
SDRAM_BA <= "00"; |
SDRAM_nWE <= '1'; |
SDRAM_nCAS <= '1'; |
SDRAM_nRAS <= '1'; |
SDRAM_CS <= '0'; |
SDRAM_CLK <= '0'; |
SDRAM_CKE <= '0'; |
|
-- LED - follow A(0) output |
LED1 <= gpio_w1a_port_out(0); |
|
end Behavioral; |
/fpga/papilio_pro/Memory Map.txt
0,0 → 1,13
|
Memory Map |
---------- |
|
The XC6LX9 has 64KB of BlockRAM which has been instantiated as 'BootRAM'. |
This memory is pre-initialised with a bootloader image which can be used to load new code via the serial port using X-Modem file transfer protocol. |
|
Map: |
0x10000000 - 0x10002000 = Bootloader (8KB) |
0x10002000 - 0x10010000 = Application space (56KB) |
|
|
The bootloader section 0x10000000 - 0x10002000 (8KBytes) can be re-used for BSS & Data sections for the application (thus overwriting the bootloader post boot). |
/fpga/papilio_pro/components.vhd
0,0 → 1,131
------------------------------------------------------------------- |
-- AltOR32 |
-- Alternative Lightweight OpenRisc |
-- Ultra-Embedded.com |
-- Copyright 2011 - 2013 |
-- |
-- Email: admin@ultra-embedded.com |
-- |
-- License: LGPL |
-- |
-- If you would like a version with a different license for use |
-- in commercial projects please contact the above email address |
-- for more details. |
------------------------------------------------------------------- |
-- |
-- Copyright (C) 2011 - 2013 Ultra-Embedded.com |
-- |
-- This source file may be used and distributed without |
-- restriction provided that this copyright statement is not |
-- removed from the file and that any derivative work contains |
-- the original copyright notice and the associated disclaimer. |
-- |
-- This source file is free software; you can redistribute it |
-- and/or modify it under the terms of the GNU Lesser General |
-- Public License as published by the Free Software Foundation; |
-- either version 2.1 of the License, or (at your option) any |
-- later version. |
-- |
-- This source is distributed in the hope that it will be |
-- useful, but WITHOUT ANY WARRANTY; without even the implied |
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
-- PURPOSE. See the GNU Lesser General Public License for more |
-- details. |
-- |
-- You should have received a copy of the GNU Lesser General |
-- Public License along with this source; if not, write to the |
-- Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
-- Boston, MA 02111-1307 USA |
------------------------------------------------------------------- |
library IEEE; |
use IEEE.STD_LOGIC_1164.all; |
use IEEE.STD_LOGIC_ARITH.ALL; |
use IEEE.STD_LOGIC_UNSIGNED.ALL; |
|
package peripherals is |
|
------------------------------------------------------------------- |
-- Components: |
------------------------------------------------------------------- |
component soc_core |
generic |
( |
CLK_KHZ : integer := 12288; |
UART_BAUD : integer := 115200; |
SPI_FLASH_CLK_KHZ : integer := 12288 / 2; |
EXTERNAL_INTERRUPTS : integer := 1; |
BOOT_VECTOR : std_logic_vector := X"10000000"; |
ISR_VECTOR : std_logic_vector := X"10000000"; |
REGISTER_FILE_TYPE : string := "SIMULATION"; |
ENABLE_UART : string := "ENABLED"; |
ENABLE_SPI_FLASH : string := "ENABLED" |
); |
port |
( |
-- General - clocking & rst_i |
clk_i : in std_logic; |
rst_i : in std_logic; |
en_i : in std_logic; |
ext_intr_i : in std_logic_vector(EXTERNAL_INTERRUPTS-1 downto 0); |
fault_o : out std_logic; |
break_o : out std_logic; |
|
-- UART |
uart_tx_o : out std_logic; |
uart_rx_i : in std_logic; |
|
-- BootRAM |
int_mem_addr_o : out std_logic_vector(32-1 downto 0); |
int_mem_data_o : out std_logic_vector(32-1 downto 0); |
int_mem_data_i : in std_logic_vector(32-1 downto 0); |
int_mem_wr_o : out std_logic_vector(3 downto 0); |
int_mem_rd_o : out std_logic; |
int_mem_pause_i : in std_logic; |
|
-- External Memory |
ext_mem_addr_o : out std_logic_vector(32-1 downto 0); |
ext_mem_data_o : out std_logic_vector(32-1 downto 0); |
ext_mem_data_i : in std_logic_vector(32-1 downto 0); |
ext_mem_wr_o : out std_logic_vector(3 downto 0); |
ext_mem_rd_o : out std_logic; |
ext_mem_pause_i : in std_logic; |
|
-- External IO |
ext_io_addr_o : out std_logic_vector(32-1 downto 0); |
ext_io_data_o : out std_logic_vector(32-1 downto 0); |
ext_io_data_i : in std_logic_vector(32-1 downto 0); |
ext_io_wr_o : out std_logic_vector(3 downto 0); |
ext_io_rd_o : out std_logic; |
ext_io_pause_i : in std_logic; |
|
-- SPI Flash |
flash_cs_o : out std_logic; |
flash_si_o : out std_logic; |
flash_so_i : in std_logic; |
flash_sck_o : out std_logic; |
|
-- Debug UART Output |
dbg_uart_data_o : out std_logic_vector(7 downto 0); |
dbg_uart_wr_o : out std_logic |
); |
end component; |
|
component ClockDCM is |
generic |
( |
CLK_IN_MHZ : integer := 32; |
CLK_OUT_MHZ : integer := 64 |
); |
port |
( |
CLKIN_IN : in std_logic; |
CLKFX_OUT : out std_logic; |
CLKIN_IBUFG_OUT : out std_logic |
); |
end component; |
|
end peripherals; |
|
package body peripherals is |
|
end; --package body |
/fpga/papilio_pro/program.vhd
0,0 → 1,3030
------------------------------------------------------------------- |
-- This file was derived from the Plasma project by Steve Rhoads. |
-- It has been modified to support dual port block RAM and contains |
-- the FPGA Bootloader image. |
-- |
-- Original copyright notice: |
-- |
-- TITLE: Random Access Memory for Xilinx |
-- AUTHOR: Steve Rhoads (rhoadss@yahoo.com) |
-- DATE CREATED: 11/06/05 |
-- PROJECT: Plasma CPU core |
-- COPYRIGHT: Software placed into the public domain by the author. |
-- Software 'as is' without warranty. Author liable for nothing. |
-- UPDATED: 09/07/10 Olivier Rinaudo (orinaudo@gmail.com) |
-- new behaviour: 8KB expandable to 64KB of internal RAM |
-- |
------------------------------------------------------------------- |
library ieee; |
use ieee.std_logic_1164.all; |
use ieee.std_logic_unsigned.all; |
|
library UNISIM; |
use UNISIM.vcomponents.all; |
|
entity ram is |
generic |
( |
--Number of 8KB blocks of internal RAM, up to 64KB (1 to 8) |
block_count : integer := 1 |
); |
port |
( |
-- Port A |
clka_i : in std_logic; |
ena_i : in std_logic; |
wea_i : in std_logic_vector(3 downto 0); |
addra_i : in std_logic_vector(31 downto 2); |
dataa_i : in std_logic_vector(31 downto 0); |
dataa_o : out std_logic_vector(31 downto 0); |
|
-- Port B |
clkb_i : in std_logic; |
enb_i : in std_logic; |
web_i : in std_logic_vector(3 downto 0); |
addrb_i : in std_logic_vector(31 downto 2); |
datab_i : in std_logic_vector(31 downto 0); |
datab_o : out std_logic_vector(31 downto 0) |
); |
end; |
|
architecture logic of ram is |
|
----------------------------------------------- |
-- Signals |
----------------------------------------------- |
type mem32_vector IS ARRAY (NATURAL RANGE<>) OF std_logic_vector(31 downto 0); |
|
-- Which 8KB block |
alias block_a_sel: std_logic_vector(2 downto 0) is addra_i(15 downto 13); |
alias block_b_sel: std_logic_vector(2 downto 0) is addrb_i(15 downto 13); |
|
-- Address within a 8KB block (without lower two bits) |
alias block_a_addr : std_logic_vector(10 downto 0) is addra_i(12 downto 2); |
alias block_b_addr : std_logic_vector(10 downto 0) is addrb_i(12 downto 2); |
|
-- Block ena_i with 1 bit per memory block |
signal block_a_enable: std_logic_vector(7 downto 0); |
signal block_b_enable: std_logic_vector(7 downto 0); |
|
-- Block Data Out |
signal block_a_do: mem32_vector(7 downto 0); |
signal block_b_do: mem32_vector(7 downto 0); |
|
-- Remember which block was selected |
signal block_a_sel_buf: std_logic_vector(2 downto 0); |
signal block_b_sel_buf: std_logic_vector(2 downto 0); |
|
constant ZERO : std_logic_vector(31 downto 0) := "00000000000000000000000000000000"; |
|
begin |
|
----------------------------------------------- |
-- Port A |
----------------------------------------------- |
block_a_enable <= "00000001" when (ena_i='1') and (block_a_sel="000") else |
"00000010" when (ena_i='1') and (block_a_sel="001") else |
"00000100" when (ena_i='1') and (block_a_sel="010") else |
"00001000" when (ena_i='1') and (block_a_sel="011") else |
"00010000" when (ena_i='1') and (block_a_sel="100") else |
"00100000" when (ena_i='1') and (block_a_sel="101") else |
"01000000" when (ena_i='1') and (block_a_sel="110") else |
"10000000" when (ena_i='1') and (block_a_sel="111") else |
"00000000"; |
|
process (clka_i, block_a_sel) is |
begin |
if rising_edge(clka_i) then |
block_a_sel_buf <= block_a_sel; |
end if; |
end process; |
|
process (block_a_do, block_a_sel_buf) is |
begin |
dataa_o <= block_a_do(conv_integer(block_a_sel_buf)); |
end process; |
|
----------------------------------------------- |
-- Port B |
----------------------------------------------- |
block_b_enable <= "00000001" when (enb_i='1') and (block_b_sel="000") else |
"00000010" when (enb_i='1') and (block_b_sel="001") else |
"00000100" when (enb_i='1') and (block_b_sel="010") else |
"00001000" when (enb_i='1') and (block_b_sel="011") else |
"00010000" when (enb_i='1') and (block_b_sel="100") else |
"00100000" when (enb_i='1') and (block_b_sel="101") else |
"01000000" when (enb_i='1') and (block_b_sel="110") else |
"10000000" when (enb_i='1') and (block_b_sel="111") else |
"00000000"; |
|
process (clkb_i, block_b_sel) is |
begin |
if rising_edge(clkb_i) then |
block_b_sel_buf <= block_b_sel; |
end if; |
end process; |
|
process (block_b_do, block_b_sel_buf) is |
begin |
datab_o <= block_b_do(conv_integer(block_b_sel_buf)); |
end process; |
|
----------------------------------------------- |
-- BRAM |
----------------------------------------------- |
-- BLOCKS generation |
block0: if (block_count > 0) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"000000000000000000000000000000000000000015049c13e4d4a818a818a818", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000001500", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000001500", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000001500", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0418a80418aaaa9d1a1aa8049c181a10e415049c049ca8d7d7d7d7d7d7181500", |
INIT_0D => X"a804a8a8049d181513bc0cbc13bc0cbc0cbc1504bc0cbc10bde08486150cbca8", |
INIT_0E => X"a804181503a80418a80418150c1503a80418a8049d181503a80418a804181503", |
INIT_0F => X"a8049d180cbca804a8041815001548a99c04a8a804181815001548a9199c0418", |
INIT_10 => X"d813e49c8ce0e08410a9bd19a80cbc9c84d7a8d718d7150015001548a9191803", |
INIT_11 => X"a81918d4d7a8d718d78544849dd485e09c848404a8a9a819854484859cd49de0", |
INIT_12 => X"18181804a89c9ca8d7d718854484859c1813bdd404a88418a904a8a81818d49c", |
INIT_13 => X"15488586a99ca8d7d71918d7d78444859d9c840418a88444859c9d0ce484a8a8", |
INIT_14 => X"d7d7d7d7d7d7d7aad71ad7d444a818d4a81886448584859c150fbce084150fbd", |
INIT_15 => X"9fd4199e9c13bc84a818874487878786868686858485a99c9e0cbcab9c85d7d7", |
INIT_16 => X"841810bc10bc108503150cbdbbbb9f150fbce084bc0cbd15488586a848a9d49f", |
INIT_17 => X"8410e4a48cac8c84bb13e59fbb9f07150fbce084180cbd154885869ed8d49fa8", |
INIT_18 => X"a413bc9caca413bde0b8180cbc9ce0009c9db88ca5e1a9b98c8d9ca8181910bc", |
INIT_19 => X"4885bc13bce0848500868403d813e0e5a89ebd03bb07bb9f9f8410e413e4a818", |
INIT_1A => X"9e039fd8d4d4a89c189c03a8489c9c488515079c039c48859e07bc13bc13bd15", |
INIT_1B => X"9c48859c48859e079f13e4a49c8410e4840fe48c84a413e4a89c18e08ca88418", |
INIT_1C => X"a8a81815a89c0cbcb8d7b8d71544d40385a49f9c9f84e248a89c189c039c4885", |
INIT_1D => X"d7d7a54485a818154485a810bca484a89d18a8039c078444859c1513bca585d4", |
INIT_1E => X"d4a818d4a818d4bd9cd7d7d7d7a8d718d78444859c1513bc909c079c10bc90a8", |
INIT_1F => X"9c9c9dd89c9c10bca813bc9dd8049c8da8e19c04a8a99eaa9ea8d80c9cd4a818", |
INIT_20 => X"15441513e5e08484a81815449e03e0864486868584859c1513e49c0790d810e4", |
INIT_21 => X"a8a4a81813bca484d4a4a8a8b81813bca484d4a4a8a8b81813bca484d4a8a818", |
INIT_22 => X"1513bca484d4a9a8a89d1813bca484d49cd49ca89ca8d71815441513bca484d4", |
INIT_23 => X"13bca484d4a89ca81813bca484d49cd49ca89ca8d71884449cd49ca513e49c85", |
INIT_24 => X"0cbc10bc0cbcd40cbca89c18a8079c9c079c079c07d7d784449cd4a59c85a818", |
INIT_25 => X"d4d4a8a89c18d413bc84e0a8b818e09ce09c150fbc9c009c0fbc844485a99c9c", |
INIT_26 => X"d7d7d7844485a99cd49c13bca484d4a8a81813bca484d4a818d4d49c13bca484", |
INIT_27 => X"aba9ab10e484e184aa9ea8d49f84aaa81818aa10bdab9cabd7d7d7d7d7d7d7d7", |
INIT_28 => X"859d9ce203e310e5d4e39cd813e49c85e013bca484d49c9c10bd1507d4a89c9c", |
INIT_29 => X"84d4d4a89d1813bca484d49c9ca8d4d7d7a89cd7188744878787868686868584", |
INIT_2A => X"d4ab9cd7d7d7d7d7d7d784d7d7a8d718d7854484859c1513bca51507d48c07a8", |
INIT_2B => X"13bca585d4d49c9caaaaaa10e484e284abaaa89f1a10bd1507ab10bce09caa84", |
INIT_2C => X"e5e31513bca51507d49ca913e49c1513bca484d48ce1a810bc1507d4a8d49c9c", |
INIT_2D => X"13bca484d49cd49ca8d79ca8d7188744878787868686868584859d9ce203e310", |
INIT_2E => X"e49c0ce49c9d9dd49c8444859c1513bca51507d49c13bca484d4a89c18d4d49c", |
INIT_2F => X"b8e0e0e0b8b8e09e199c0ce49d9db8b813e4e0e1b89db8e09c199d0ce410e410", |
INIT_30 => X"00209c44859d1507d49c9c44859c9d0015001513e49d9ce10ce4b89cb810e49c", |
INIT_31 => X"006e78456c6520006364616e6b0a740a0020000000bf00200000001f00d80000", |
INIT_32 => X"464f0a68666458704d002e6264586e782e6f6d6d294261740a504d2000704d20", |
INIT_33 => X"0000000000000000000000000052696261656961002e414f6d20422e616d6d29", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(0)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(0), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(0)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(0), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000084ffa404a5a084802480", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"00606300609410c080006300406000002b000040002163e1e1e1e1e1e1600000", |
INIT_0D => X"8e00626300c06000ff2b002bff22002b002b000022000e00a484905000002263", |
INIT_0E => X"63006000ff630060630060000000ff8e00606300c06000ff63006063006000ff", |
INIT_0F => X"6300c060000b7400630060000000006280006263004060000000006b60800060", |
INIT_10 => X"05ff26c6e7a4e3880008a40044000621c2e142e140e10000000000006b6060ff", |
INIT_11 => X"63c06002e142e140e1c10041600e2142216e6e00a2ce83c0c100412121086042", |
INIT_12 => X"80a060004321a084e1e180c10041212160ff8b0e00638260ce00846380600321", |
INIT_13 => X"0000620ece2142e1e1c040e1e14100216021a5006082410021216000236584a5", |
INIT_14 => X"e1e1e1e1e1e1e194e180e10300636005a5a00100c141212100ff43636e00ff8b", |
INIT_15 => X"0001c0c060ff03624240c100814101c1814101c141217621c0000bc32174e1e1", |
INIT_16 => X"a180001a000b0074ff00005818181800ff44848e0b008b0000620e7a00ce0140", |
INIT_17 => X"81002484668486c118ffb2401818ff00ff44848ec0008b0000620e4004018584", |
INIT_18 => X"84ff25a58787ff66e4c4c00025a58400a008c6c86b6b086ba56580a5a0000004", |
INIT_19 => X"00621aff44848e62000ec1ff04ff92b2c65258ff18ff184018810004ff28c6c0", |
INIT_1A => X"40ff80050101a5c0a021ff83006060007400ff21ff600074c0ff1aff2bff8b00", |
INIT_1B => X"600074600074c0ff40ff038485a1000481ff0486c1a5ff24c684c0a5c484a180", |
INIT_1C => X"638360006221002242e143e1000001ff746340640081d60063806021ff600074", |
INIT_1D => X"e1e16b00636360000063630004848483606062ff60ff4100212100ff2b6b6304", |
INIT_1E => X"014240014240016321e1e1e1e142e140e14100212100ff236242ff2100036343", |
INIT_1F => X"4e60ce0e606000144bff2bce0e00806b6272800062c141018043010040014240", |
INIT_20 => X"000000ff438485c5a5a0000080ff4081004101c141212100ff6242ff620e0082", |
INIT_21 => X"a58465a0ff23636603a7c565e4a0ff23636603a7c565e4a0ff23636605c6a6c0", |
INIT_22 => X"00ff2484850707a5e580a0ff26c6c4052104c0a54085e1a0000000ff23636503", |
INIT_23 => X"ff2363640384a06480ff236365032105806340a3e16041002105606bff63c668", |
INIT_24 => X"002b00220022050022a560a04bff6060ff60ff21ffe1e1410021046b60636360", |
INIT_25 => X"02044282604005ff26c2428442804460824000ff0b400060ff0b410021632140", |
INIT_26 => X"e1e1e141002163210460ff236364028545a0ff236364036360040440ff236364", |
INIT_27 => X"43c34e00ae64de8192c042010063426340600400a58321c5e1e1e1e1e1e1e1e1", |
INIT_28 => X"21602110ff9c00be02186006ff27e714d0ff26c6c212e06000ae00ff029c60a0", |
INIT_29 => X"a4020284c080ff25a5a20421a08402e1e144a0e180c100814101c1814101c141", |
INIT_2A => X"014321e1e1e1e1e1e1e142e1e142e140e1c10041212100ff2b6b00ff0265ff83", |
INIT_2B => X"ff2ecec2140260a003c31600b664dc81c29454008000bc00ff85002243424442", |
INIT_2C => X"bc1800ff2b6b00ff0260c7ff27e700ff26c6c214ced2ee001000ff1e9a1e60a0", |
INIT_2D => X"ff236364032104a063e14083e160c100814101c1814101c14121602152ff5a00", |
INIT_2E => X"48e00028a3046001214100212100ff2b6b00ff0460ff2363640363a0600404a0", |
INIT_2F => X"6366c7e463876520e0af008920ade7a5ff87e4ad63e58765c020a0008b000800", |
INIT_30 => X"00202100216700ff0121210021e56000000000ff8929e6630024a5806b002380", |
INIT_31 => X"3c61743e0a72493c656573206e00524200000000002500000000004400000100", |
INIT_32 => X"504d002e6c652d7020502e6f652d61740a74206f20526c65004720503c702050", |
INIT_33 => X"000000000000000000000000004f6e6c69206d704e2e704d20666f2e73206f20", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(0)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(0), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(0)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(0), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000100ff28001c1019101c10", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000008", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000008", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000008", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"021018021020010010121802001012001000020002ff18a7978777174f100008", |
INIT_0D => X"0000001902001000ff000000ff00000000000002000000002790000000000018", |
INIT_0E => X"19011000ff180110180110000000ff0000001901001000ff19011018011000ff", |
INIT_0F => X"1901001000000000190110000000582100002019011010000000580111000011", |
INIT_10 => X"38ff10000030300000190010000000ff0077194f1017000000000058211010ff", |
INIT_11 => X"191010184f19771017ff48ff0010ff180000000300190010ff48ffff00100020", |
INIT_12 => X"b010000200ff00194f1710ff48ffff0010ff00200008001019000e0e101020ff", |
INIT_13 => X"0058000001ff19874f12107717ff48ff000000020000ff48ff00000020001019", |
INIT_14 => X"c7978777174ff719b710a720481910181910ff48ffffff0000ff03800000ff00", |
INIT_15 => X"00b0120000ff00001910ff48ffffffffffffffffffff0000ff000000ff00e7d7", |
INIT_16 => X"0010000000000000ff0000000000ff00ff038000000000005800000058011800", |
INIT_17 => X"000018000000000000ffe00000ffff00ff038000100000005800000058200019", |
INIT_18 => X"ffff00ff10ffff002000100000ff300000000000ff2819000000001910100000", |
INIT_19 => X"580000ff03800000000000ff58ff30e0190000ff00ff0000ff000058ff301a10", |
INIT_1A => X"00ff0058283019001000ff00f00000580000ff00ff005800ffff00ff00ff0000", |
INIT_1B => X"005800005800fffe00ff2000ff00001800ff28000000ff301a00103000190010", |
INIT_1C => X"0000120000ff0000004f0017004818ff00000000000020f019001000ff005800", |
INIT_1D => X"4f170048000012004800000000000000ff1200ff00ffff48ff0000ff00000010", |
INIT_1E => X"1041381036341000ffa7978777324f3017ff48ff0000ff000000ffff00000000", |
INIT_1F => X"ff0000180000000000ff00005801000000580002000000000000100000104543", |
INIT_20 => X"004800ff203000000112004800ff18ff48ffffffffff0000ff80ffff00180080", |
INIT_21 => X"03000312ff000000280003030012ff000000280003030012ff00000018030312", |
INIT_22 => X"00ff000000600003030012ff00000030ff10000300031712004800ff00000020", |
INIT_23 => X"ff0000002803000312ff00000020ff10000300031712ff4800180000ff300000", |
INIT_24 => X"0000000000001800001a001000ff0000ff00ffffff174fff4800180000000312", |
INIT_25 => X"18300303001210ff0000201800101000100000ff00000000ff00ff48ff000000", |
INIT_26 => X"f7e787ff48ff00001800ff00000018030312ff000000100312181000ff000000", |
INIT_27 => X"000000001800c000000003180000031a121000000000ff00d7c7b7a79777174f", |
INIT_28 => X"ff0000d0ffd000c018700040ff70000038ff000000b00000000000ff28000000", |
INIT_29 => X"0028701a0010ff00000028ff000328774f03001712ff48ffffffffffffffffff", |
INIT_2A => X"1000fff7c7b7a787774f00e7d71a971017ff48ffff0000ff000000ff7000fe00", |
INIT_2B => X"ff00000018280000000000001800c0000003030012000000ff00000010ff0000", |
INIT_2C => X"c0b000ff000000fe180000ff800000ff00000030007000000000fe7000280000", |
INIT_2D => X"ff00000028ff1000034f00031712ff48ffffffffffffffffffff000080ff8000", |
INIT_2E => X"2800005800000048ffff48ff0000ff000000fe1800ff00000028030012182800", |
INIT_2F => X"00784018000078008000006800000000ff40183000000048ff80000040002800", |
INIT_30 => X"01000048000000ff48ff004800000000000000ff680000200088000000002000", |
INIT_31 => X"416c6520006e6e49217668666f554f6f00001001000000001001010000000001", |
INIT_32 => X"4720502e616d6d2928522e6f6d6d6c65002e6264584120724941285246292852", |
INIT_33 => X"000000000000000000000000004d20656c6161706f2e702050726f0a68666458", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(0)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(0), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(0)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(0), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000003804fe00008000d0007000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"1f00e122000000000000ca2a010000070000fc0033e8c0f8f4f0ece8fc000000", |
INIT_0D => X"0079007603010000ee461541f2002c453a490002002901040f020000002000ef", |
INIT_0E => X"3fe00000c9efe500e1e800002200d400680659f2010000dc0df800fdfb0000e5", |
INIT_0F => X"adc001000700005d94c80000000000000049001ed30000000000000000005600", |
INIT_10 => X"00fb00010000000009d80000001600f400f8d4fc00f40000000000000000009c", |
INIT_11 => X"d4000000fcd0f800f4f800f40000fc000c00002300d80000f800f4fc0c000000", |
INIT_12 => X"0700068100f810dcfcf800f800f4fc0c00fb00004a280000d848b850000000f4", |
INIT_13 => X"0000000000f0f0f8fc0000f4f0f800fc01080c710600f800fc0800060008addc", |
INIT_14 => X"ece0dcd8d4fcf8ece800e40000f00000ec00f800f4f0fc1000f7e7020000fb00", |
INIT_15 => X"1004000001ee0000f000f800f4f0ece8e4e0dcd8d4fc0038ff100000c800f4f0", |
INIT_16 => X"04007a435b187400ec00a3009818ff00f7e70200040f00000000000000000843", |
INIT_17 => X"042900ff01ff020098de001518ff8200f7e702000044000000000000000082f4", |
INIT_18 => X"fff800ff21fff9000010000d00ff050608010800ff00f708848300f400005f00", |
INIT_19 => X"000043a1e7020000080000c500b30000f40100a998491815ff084b00e9007700", |
INIT_1A => X"008783000004f4010038540000000600000026385e060000ff2d439918f70000", |
INIT_1B => X"180000180000fffb065e00ffff08140008b9008300fffa007701000000f70400", |
INIT_1C => X"0408000400f8110a98fc18f80000083300ff060110080000f780003826180000", |
INIT_1D => X"fcf80100000400000000080300010004ff0000f00deaf800fc0800fd00080000", |
INIT_1E => X"2842392437352000b4f8f4f0ec33fc31e8f800fc0800fc000001cff808000000", |
INIT_1F => X"ff0001002d00060000f5000100e50a0000000a2a000020000000302d002c4644", |
INIT_20 => X"000000fd000200000000000001d602f800f4f0ece8fc4c00fc00ff9000000800", |
INIT_21 => X"00ff0400fd00010000ff00044800fd00010000ff00045000fd00010000000400", |
INIT_22 => X"00fd00010000000004ff00fd00010000fc009f040000fc00000000fd00010000", |
INIT_23 => X"fd0001000000ff0400fd00010000fc0005040000fc00fc00040001fff7000100", |
INIT_24 => X"102504bf0b1f0013207c000000b60100b901bbf8dff8fcfc000400ff01000400", |
INIT_25 => X"00000400060000e90014007803000001000000f520010600fa44f800fc000802", |
INIT_26 => X"f8f4dcf800fc00080001fd00010000000400fd000100000400000001fd000100", |
INIT_27 => X"000000040008020000ff00000000047c000000310000d000f0ece8e4e0d8d4fc", |
INIT_28 => X"fc003000dd00040000000100f700010000fd0001000000010f00001c00000300", |
INIT_29 => X"0000007c0100fd00010000f4060400f8fc0000f400f800f4f0ece8e4e0dcd8d4", |
INIT_2A => X"0000d0f8ece8e4dcd8fc00f4f07ce000d4f800f4fc0c00fc000100260010df00", |
INIT_2B => X"fd00010000000600000000040004020000040000003a0000c400040003ff000c", |
INIT_2C => X"000000fc000100d2000100f6000100fd000100000000000e00009b0000000201", |
INIT_2D => X"fd00010000f8000604fc0000f800f800f4f0ece8e4e0dcd8d4fc003000ce0004", |
INIT_2E => X"0000360000000000fcf800fc0800fc0001009d0001fd00010000046000000001", |
INIT_2F => X"5f0302045f01030000001e0000014101f90004005f000103ff00200d002e0032", |
INIT_30 => X"00000400000000bf00fc040000000103000500ed000100040300010101030000", |
INIT_31 => X"3e0a72453c61743e0a69206c776e4d6f00000000010000000000000001000000", |
INIT_32 => X"4128522e73206f20414f0a74206f2072452e6f652d4d286e6e29464f3e0a414f", |
INIT_33 => X"000000000000000000000000000a502061766720200a2928526f74002e6c652d", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(0)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(0), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(0)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(0), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
end generate; --block0 |
|
|
block1: if (block_count > 1) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(1)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(1), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(1)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(1), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(1)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(1), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(1)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(1), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(1)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(1), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(1)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(1), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(1)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(1), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(1)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(1), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block1 |
|
|
block2: if (block_count > 2) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(2)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(2), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(2)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(2), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(2)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(2), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(2)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(2), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(2)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(2), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(2)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(2), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(2)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(2), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(2)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(2), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block2 |
|
|
block3: if (block_count > 3) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(3)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(3), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(3)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(3), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(3)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(3), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(3)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(3), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(3)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(3), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(3)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(3), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(3)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(3), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(3)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(3), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block3 |
|
|
block4: if (block_count > 4) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(4)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(4), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(4)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(4), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(4)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(4), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(4)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(4), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(4)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(4), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(4)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(4), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(4)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(4), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(4)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(4), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block4 |
|
|
block5: if (block_count > 5) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(5)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(5), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(5)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(5), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(5)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(5), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(5)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(5), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(5)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(5), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(5)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(5), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(5)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(5), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(5)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(5), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block5 |
|
|
block6: if (block_count > 6) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(6)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(6), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(6)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(6), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(6)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(6), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(6)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(6), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(6)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(6), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(6)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(6), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(6)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(6), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(6)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(6), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block6 |
|
|
block7: if (block_count > 7) generate |
begin |
|
ram_byte3 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(7)(31 downto 24), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(31 downto 24), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(7), |
SSRA => ZERO(0), |
WEA => wea_i(3), |
|
DOB => block_b_do(7)(31 downto 24), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(31 downto 24), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(7), |
SSRB => ZERO(0), |
WEB => web_i(3) |
); |
|
ram_byte2 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(7)(23 downto 16), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(23 downto 16), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(7), |
SSRA => ZERO(0), |
WEA => wea_i(2), |
|
DOB => block_b_do(7)(23 downto 16), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(23 downto 16), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(7), |
SSRB => ZERO(0), |
WEB => web_i(2) |
); |
|
ram_byte1 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(7)(15 downto 8), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(15 downto 8), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(7), |
SSRA => ZERO(0), |
WEA => wea_i(1), |
|
DOB => block_b_do(7)(15 downto 8), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(15 downto 8), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(7), |
SSRB => ZERO(0), |
WEB => web_i(1) |
); |
|
ram_byte0 : RAMB16_S9_S9 |
generic map ( |
INIT_00 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_01 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_02 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_03 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_04 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_05 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_06 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_07 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_08 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_09 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_0F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_10 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_11 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_12 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_13 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_14 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_15 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_16 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_17 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_18 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", |
INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000" |
) |
port map ( |
DOA => block_a_do(7)(7 downto 0), |
DOPA => open, |
ADDRA => block_a_addr, |
CLKA => clka_i, |
DIA => dataa_i(7 downto 0), |
DIPA => ZERO(0 downto 0), |
ENA => block_a_enable(7), |
SSRA => ZERO(0), |
WEA => wea_i(0), |
|
DOB => block_b_do(7)(7 downto 0), |
DOPB => open, |
ADDRB => block_b_addr, |
CLKB => clkb_i, |
DIB => datab_i(7 downto 0), |
DIPB => ZERO(0 downto 0), |
ENB => block_b_enable(7), |
SSRB => ZERO(0), |
WEB => web_i(0) |
); |
|
end generate; --block7 |
|
end; --architecture logic |
/fpga/papilio_pro/sw/serial.c
0,0 → 1,104
//----------------------------------------------------------------- |
// AltOR32 |
// Alternative Lightweight OpenRisc |
// Ultra-Embedded.com |
// Copyright 2011 - 2013 |
// |
// Email: admin@ultra-embedded.com |
// |
// License: LGPL |
// |
// If you would like a version with a different license for use |
// in commercial projects please contact the above email address |
// for more details. |
//----------------------------------------------------------------- |
// |
// Copyright (C) 2011 - 2013 Ultra-Embedded.com |
// |
// This source file may be used and distributed without |
// restriction provided that this copyright statement is not |
// removed from the file and that any derivative work contains |
// the original copyright notice and the associated disclaimer. |
// |
// This source file is free software; you can redistribute it |
// and/or modify it under the terms of the GNU Lesser General |
// Public License as published by the Free Software Foundation; |
// either version 2.1 of the License, or (at your option) any |
// later version. |
// |
// This source is distributed in the hope that it will be |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
// PURPOSE. See the GNU Lesser General Public License for more |
// details. |
// |
// You should have received a copy of the GNU Lesser General |
// Public License along with this source; if not, write to the |
// Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
// Boston, MA 02111-1307 USA |
//----------------------------------------------------------------- |
#include "mem_map.h" |
#include "serial.h" |
|
//----------------------------------------------------------------- |
// Registers |
//----------------------------------------------------------------- |
#define UART_RX_AVAIL (1<<0) |
#define UART_TX_AVAIL (1<<1) |
#define UART_RX_FULL (1<<2) |
#define UART_TX_BUSY (1<<3) |
#define UART_RX_ERROR (1<<4) |
|
//------------------------------------------------------------- |
// serial_init: |
//------------------------------------------------------------- |
void serial_init (void) |
{ |
|
} |
//------------------------------------------------------------- |
// serial_putchar: Write character to Serial Port (used by printf) |
//------------------------------------------------------------- |
int serial_putchar(char ch) |
{ |
if (ch == '\n') |
serial_putchar('\r'); |
|
// Use special simulator NOP instruction to output console |
// trace on the simulator. |
{ |
register char t1 asm ("r3") = ch; |
asm volatile ("\tl.nop\t%0" : : "K" (0x0004), "r" (t1)); |
} |
|
UART_UDR = ch; |
while (UART_USR & UART_TX_BUSY); |
|
return 0; |
} |
//------------------------------------------------------------- |
// serial_getchar: Read character from Serial Port |
//------------------------------------------------------------- |
int serial_getchar (void) |
{ |
// Read character in from UART0 Recieve Buffer and return |
if (serial_haschar()) |
return UART_UDR; |
else |
return -1; |
} |
//------------------------------------------------------------- |
// serial_haschar: |
//------------------------------------------------------------- |
int serial_haschar() |
{ |
return (UART_USR & UART_RX_AVAIL); |
} |
//------------------------------------------------------------- |
// serial_putstr: |
//------------------------------------------------------------- |
void serial_putstr(char *str) |
{ |
while (*str) |
serial_putchar(*str++); |
} |
/fpga/papilio_pro/sw/mem_map.h
0,0 → 1,82
#ifndef __MEM_MAP_H__ |
#define __MEM_MAP_H__ |
|
//----------------------------------------------------------------- |
// Defines: |
//----------------------------------------------------------------- |
#define INT_BASE 0x10000000 |
#define INT_APP_BASE 0x10002000 |
#define IO_BASE 0x12000000 |
#define EXT_IO_BASE 0x13000000 |
|
//----------------------------------------------------------------- |
// Macros: |
//----------------------------------------------------------------- |
#define REG8 (volatile unsigned char*) |
#define REG16 (volatile unsigned short*) |
#define REG32 (volatile unsigned int*) |
|
//----------------------------------------------------------------- |
// Peripheral Base Addresses |
//----------------------------------------------------------------- |
#define UART_BASE (IO_BASE + 0x000) |
#define TIMER_BASE (IO_BASE + 0x100) |
#define INTR_BASE (IO_BASE + 0x200) |
#define SPI_FLASH_BASE (IO_BASE + 0x300) |
|
//----------------------------------------------------------------- |
// Interrupts |
//----------------------------------------------------------------- |
#define IRQ_UART_RX 0 |
#define IRQ_TIMER_SYSTICK 1 |
#define IRQ_TIMER_HIRES 2 |
|
//----------------------------------------------------------------- |
// Peripheral Registers |
//----------------------------------------------------------------- |
|
#define UART_USR (*(REG32 (UART_BASE + 0x4))) |
#define UART_UDR (*(REG32 (UART_BASE + 0x8))) |
|
#define TIMER_VAL (*(REG32 (TIMER_BASE + 0x0))) |
#define SYS_CLK_COUNT (*(REG32 (TIMER_BASE + 0x4))) |
|
#define IRQ_MASK (*(REG32 (INTR_BASE + 0x00))) |
#define IRQ_MASK_SET (*(REG32 (INTR_BASE + 0x00))) |
#define IRQ_MASK_CLR (*(REG32 (INTR_BASE + 0x04))) |
#define IRQ_STATUS (*(REG32 (INTR_BASE + 0x08))) |
#define IRQ_SYSTICK (IRQ_TIMER_SYSTICK) |
#define IRQ_UART_RX_AVAIL (IRQ_UART_RX) |
#define IRQ_PIT (IRQ_TIMER_HIRES) |
#define IRQ_SW (3) |
#define EXT_INT_OFFSET (8) |
|
#define SPI_PROM_CTRL (*(REG32 (SPI_FLASH_BASE + 0x00))) |
#define SPI_PROM_CS (1 << 0) |
#define SPI_PROM_STAT (*(REG32 (SPI_FLASH_BASE + 0x00))) |
#define SPI_PROM_BUSY (1 << 0) |
#define SPI_PROM_DATA (*(REG32 (SPI_FLASH_BASE + 0x04))) |
|
//----------------------------------------------------------------- |
// Extended Peripherals |
//----------------------------------------------------------------- |
|
#define GPIO_DIR_OUTPUT 1 |
#define GPIO_DIR_INPUT 0 |
#define GPIO_DIR_ALL_OUTPUTS 0xFFFF |
#define GPIO_DIR_ALL_INPUTS 0x0000 |
|
// GPIO Ports |
#define GPIO_W1A_OUT (*(REG32 (EXT_IO_BASE + 0x10))) |
#define GPIO_W1A_IN (*(REG32 (EXT_IO_BASE + 0x14))) |
#define GPIO_W1A_DIR (*(REG32 (EXT_IO_BASE + 0x1C))) |
|
#define GPIO_W1B_OUT (*(REG32 (EXT_IO_BASE + 0x20))) |
#define GPIO_W1B_IN (*(REG32 (EXT_IO_BASE + 0x24))) |
#define GPIO_W1B_DIR (*(REG32 (EXT_IO_BASE + 0x2C))) |
|
#define GPIO_W2C_OUT (*(REG32 (EXT_IO_BASE + 0x30))) |
#define GPIO_W2C_IN (*(REG32 (EXT_IO_BASE + 0x34))) |
#define GPIO_W2C_DIR (*(REG32 (EXT_IO_BASE + 0x3C))) |
|
#endif |
/fpga/papilio_pro/sw/timer.c
0,0 → 1,58
//----------------------------------------------------------------- |
// AltOR32 |
// Alternative Lightweight OpenRisc |
// Ultra-Embedded.com |
// Copyright 2011 - 2013 |
// |
// Email: admin@ultra-embedded.com |
// |
// License: LGPL |
// |
// If you would like a version with a different license for use |
// in commercial projects please contact the above email address |
// for more details. |
//----------------------------------------------------------------- |
// |
// Copyright (C) 2011 - 2013 Ultra-Embedded.com |
// |
// This source file may be used and distributed without |
// restriction provided that this copyright statement is not |
// removed from the file and that any derivative work contains |
// the original copyright notice and the associated disclaimer. |
// |
// This source file is free software; you can redistribute it |
// and/or modify it under the terms of the GNU Lesser General |
// Public License as published by the Free Software Foundation; |
// either version 2.1 of the License, or (at your option) any |
// later version. |
// |
// This source is distributed in the hope that it will be |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
// PURPOSE. See the GNU Lesser General Public License for more |
// details. |
// |
// You should have received a copy of the GNU Lesser General |
// Public License along with this source; if not, write to the |
// Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
// Boston, MA 02111-1307 USA |
//----------------------------------------------------------------- |
#include "timer.h" |
|
//-------------------------------------------------------------------------- |
// timer_init: |
//-------------------------------------------------------------------------- |
void timer_init(void) |
{ |
|
} |
//-------------------------------------------------------------------------- |
// timer_sleep: |
//-------------------------------------------------------------------------- |
void timer_sleep(int timeMs) |
{ |
t_time t = timer_now(); |
|
while (timer_diff(timer_now(), t) < timeMs) |
; |
} |
/fpga/papilio_pro/sw/makefile.mk
0,0 → 1,76
########################################################################## |
# Files |
########################################################################## |
INCLUDE_DIRS ?= |
OBJ = boot.o |
OBJ+= $(OBJS) |
|
# Target |
TARGET ?= firmware |
|
############################################################################### |
## Makefile |
############################################################################### |
|
# Tools |
CC_PREFIX = or32-elf |
CC = $(CC_PREFIX)-gcc $(CFLAGS) |
AS = $(CC_PREFIX)-as |
LD = $(CC_PREFIX)-ld |
OBJDUMP = $(CC_PREFIX)-objdump |
OBJCOPY = $(CC_PREFIX)-objcopy |
|
VERILATOR_DIR ?= ../../../rtl/sim_verilator |
TEST_IMAGE ?= |
SIMULATOR = ../../../or32-sim/or32-sim -l 0x10002000 -x 0x10002100 -f |
VERILATOR_ARGS ?= -l 0x10002000 |
BOOTHDR = ../../../tools/bootheader |
|
SIMARGS ?= |
|
# Options |
CFLAGS ?= |
LDSCRIPT = linker_script |
CFLAGS += -Ttext 0x10002000 -O2 -g -Wall |
CFLAGS += -msoft-div -msoft-float -msoft-mul -mno-ror -mno-cmov -mno-sext |
CFLAGS += -nostartfiles -nodefaultlibs -nostdlib -lgcc -L . -lstd -T$(LDSCRIPT) |
ASFLAGS = -Wa |
LDFLAGS = |
|
CFLAGS += -I. $(INCLUDE_DIRS) |
|
############################################################################### |
# Rules |
############################################################################### |
all: $(TARGET).elf lst bin bootable |
|
clean: |
-rm $(OBJ) *.map *.lst *.hex *.txt *.elf $(TARGET).bin |
|
%.o : %.s |
$(CC) -c $(ASFLAGS) $< -o $@ |
|
%.o : %.c |
$(CC) -c $(CFLAGS) $< -o $@ |
|
$(TARGET).elf: $(OBJ) $(LDSCRIPT) makefile |
$(CC) $(LDFLAGS) $(LIBS) $(OBJ) -o $@ |
|
lst: $(TARGET).lst |
|
%.lst: $(TARGET).elf |
$(OBJDUMP) -h -d -S $< > $@ |
|
bin: $(TARGET).bin |
|
%.bin: %.elf |
$(OBJCOPY) -O binary $< $@ |
|
bootable: $(TARGET).bin |
$(BOOTHDR) -f $(TARGET).bin -o $(TARGET).bin |
|
run: bin |
make -C $(VERILATOR_DIR) TEST_IMAGE=$(CURDIR)/$(TARGET).bin SIMARGS="$(VERILATOR_ARGS)" |
|
sim: bin |
$(SIMULATOR) $(CURDIR)/$(TARGET).bin $(SIMARGS) |
/fpga/papilio_pro/sw/boot.s
0,0 → 1,49
#------------------------------------------------------------- |
# VECTOR 0x000 - Application Header |
#------------------------------------------------------------- |
.org 0x000 |
|
# This code is not executed as execution starts from reset vector |
.word 0x00000000 |
.word 0x00000000 |
.word 0xb00710ad |
.word 0x00000000 |
|
#------------------------------------------------------------- |
# VECTOR 0x100 - Reset |
#------------------------------------------------------------- |
.org 0x100 |
vector_reset: |
|
l.j init |
l.nop |
|
# Magic header word |
.word 0xb00710ad |
|
# File length |
.word 0x00000000 |
|
init: |
# Setup SP (R1) |
l.movhi r4,hi(_sp); |
l.ori r1,r4,lo(_sp); |
|
# R4 = _bss_start |
l.movhi r4,hi(_bss_start); |
l.ori r4,r4,lo(_bss_start); |
|
# R5 = _end |
l.movhi r5,hi(_end); |
l.ori r5,r5,lo(_end); |
|
BSS_CLEAR: |
l.sw 0x0(r4),r0 # Write 0x00 to mem[r4] |
l.sfleu r4,r5 # SR[F] = (r4 < r5) |
l.bf BSS_CLEAR # If SR[F] == 0, jump to BSS_CLEAR |
l.addi r4, r4, 4 # r4 += 4 |
|
# Jump to main routine |
l.jal main |
l.nop |
|
/fpga/papilio_pro/sw/main.c
0,0 → 1,85
//----------------------------------------------------------------- |
// AltOR32 |
// Alternative Lightweight OpenRisc |
// Ultra-Embedded.com |
// Copyright 2011 - 2013 |
// |
// Email: admin@ultra-embedded.com |
// |
// License: LGPL |
// |
// If you would like a version with a different license for use |
// in commercial projects please contact the above email address |
// for more details. |
//----------------------------------------------------------------- |
// |
// Copyright (C) 2011 - 2013 Ultra-Embedded.com |
// |
// This source file may be used and distributed without |
// restriction provided that this copyright statement is not |
// removed from the file and that any derivative work contains |
// the original copyright notice and the associated disclaimer. |
// |
// This source file is free software; you can redistribute it |
// and/or modify it under the terms of the GNU Lesser General |
// Public License as published by the Free Software Foundation; |
// either version 2.1 of the License, or (at your option) any |
// later version. |
// |
// This source is distributed in the hope that it will be |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
// PURPOSE. See the GNU Lesser General Public License for more |
// details. |
// |
// You should have received a copy of the GNU Lesser General |
// Public License along with this source; if not, write to the |
// Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
// Boston, MA 02111-1307 USA |
//----------------------------------------------------------------- |
#include "serial.h" |
#include "printf.h" |
#include "mem_map.h" |
|
//----------------------------------------------------------------- |
// main: |
//----------------------------------------------------------------- |
int main(void) |
{ |
unsigned short port_w1a = 0; |
unsigned short port_w1b = 0; |
unsigned short port_w2c = 0; |
|
unsigned short last_w1a = 0; |
unsigned short last_w1b = 0; |
unsigned short last_w2c = 0; |
|
// Setup printf to serial port |
printf_register(serial_putchar); |
|
GPIO_W1A_DIR = GPIO_DIR_ALL_INPUTS; |
GPIO_W1B_DIR = GPIO_DIR_ALL_INPUTS; |
GPIO_W2C_DIR = GPIO_DIR_ALL_INPUTS; |
|
printf("\n\nHello!\n"); |
|
while (1) |
{ |
port_w1a = GPIO_W1A_IN; |
port_w1b = GPIO_W1B_IN; |
port_w2c = GPIO_W2C_IN; |
|
if (last_w1a != port_w1a) |
printf("Port 1A = 0x%04x\n", port_w1a); |
|
if (last_w1b != port_w1b) |
printf("Port 1B = 0x%04x\n", port_w1b); |
|
if (last_w2c != port_w2c) |
printf("Port 2C = 0x%04x\n", port_w2c); |
|
last_w1a = port_w1a; |
last_w1b = port_w1b; |
last_w2c = port_w2c; |
} |
} |
/fpga/papilio_pro/sw/serial.h
0,0 → 1,12
#ifndef __SERIAL_H__ |
#define __SERIAL_H__ |
|
//----------------------------------------------------------------- |
// Prototypes: |
//----------------------------------------------------------------- |
void serial_init (void); |
int serial_putchar(char ch); |
int serial_getchar(void); |
int serial_haschar(); |
|
#endif // __SERIAL_H__ |
/fpga/papilio_pro/sw/timer.h
0,0 → 1,21
#ifndef __TIMER_H__ |
#define __TIMER_H__ |
|
#include "mem_map.h" |
|
//----------------------------------------------------------------- |
// Defines: |
//----------------------------------------------------------------- |
typedef unsigned long t_time; |
|
//----------------------------------------------------------------- |
// Prototypes: |
//----------------------------------------------------------------- |
|
// General timer |
void timer_init(void); |
static t_time timer_now(void) { return TIMER_VAL; } |
static long timer_diff(t_time a, t_time b) { return (long)(a - b); } |
void timer_sleep(int timeMs); |
|
#endif |
/fpga/papilio_pro/sw/printf.h
0,0 → 1,41
#ifndef __PRINTF_H__ |
#define __PRINTF_H__ |
|
#include "stdarg.h" |
|
//----------------------------------------------------------------- |
// Types: |
//----------------------------------------------------------------- |
typedef int (*FP_OUTCHAR)(char c); |
|
#ifdef LIBSTD_SIZE_T_2 |
typedef long unsigned int libsize_t; |
#else |
typedef unsigned int libsize_t; |
#endif |
|
//----------------------------------------------------------------- |
// Structures |
//----------------------------------------------------------------- |
struct vbuf |
{ |
FP_OUTCHAR function; |
char * buffer; |
int offset; |
int max_length; |
}; |
|
//----------------------------------------------------------------- |
// Prototypes: |
//----------------------------------------------------------------- |
int printf(const char* ctrl1, ... ); |
void printf_register(FP_OUTCHAR f); |
int vsprintf(char *s, const char *format, va_list arg); |
int vsnprintf(char *s, libsize_t maxlen, const char *format, va_list arg); |
int sprintf(char *s, const char *format, ...); |
int snprintf(char *s, libsize_t maxlen, const char *format, ...); |
int vbuf_printf(struct vbuf *buf, const char* ctrl1, va_list argp); |
|
#define PRINTF printf |
|
#endif // __PRINTF_H__ |
/fpga/papilio_pro/sw/linker_script
0,0 → 1,52
GROUP("libgcc.a" |
"libstd.a") |
|
MEMORY |
{ |
sram (rwx) : ORIGIN = 0x10002000, LENGTH = 16K |
} |
|
SECTIONS |
{ |
/* first section is .text which is used for code */ |
.text : |
{ |
*(.text .text.*) /* remaining code */ |
*(.rodata) /* read-only data (constants) */ |
*(.rodata*) |
*(.rdata*) |
. = ALIGN(4); |
} > sram |
|
/* .data section which is used for initialized data */ |
.data : |
{ |
*(.got.plt) *(.got) |
*(.shdata) |
*(.data .data.* .gnu.linkonce.d.*) |
. = ALIGN(16); |
*(.lit8) |
*(.lit4) |
*(.sdata .sdata.* .gnu.linkonce.s.*) |
. = ALIGN (8); |
*(.ram) |
. = ALIGN (8); |
_edata = .; |
} > sram |
|
.bss : |
{ |
. = ALIGN(4); |
_bss_start = . ; |
|
*(.bss*) |
*(COMMON) |
/* Allocate room for stack */ |
. = ALIGN(8) ; |
. += 4096 ; |
_sp = . - 16; |
} > sram |
|
. = ALIGN(4); |
_end = . ; |
} |
/fpga/papilio_pro/sw/makefile
0,0 → 1,7
########################################################################## |
# Files |
########################################################################## |
OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) |
|
include ./makefile.mk |
|
/fpga/papilio_pro/BPC3011-Papilio_Pro-general.ucf
0,0 → 1,123
# UCF file for the Papilio Pro board |
# Generated by pin_converter, written by Kevin Lindsey |
# https://github.com/thelonious/papilio_pins/tree/development/pin_converter |
|
# Main board wing pin [] to FPGA pin Pxx map |
# -------C------- -------B------- -------A------- |
# [GND] [C00] P114 [GND] [B00] P99 P100 [A15] |
# [2V5] [C01] P115 [2V5] [B01] P97 P98 [A14] |
# [3V3] [C02] P116 [3V3] [B02] P92 P93 [A13] |
# [5V0] [C03] P117 [5V0] [B03] P87 P88 [A12] |
# [C04] P118 [B04] P84 P85 [A11] [5V0] |
# [C05] P119 [B05] P82 P83 [A10] [3V3] |
# [C06] P120 [B06] P80 P81 [A09] [2V5] |
# [C07] P121 [B07] P78 P79 [A08] [GND] |
# [GND] [C08] P123 [GND] [B08] P74 P75 [A07] |
# [2V5] [C09] P124 [2V5] [B09] P95 P67 [A06] |
# [3V3] [C10] P126 [3V3] [B10] P62 P66 [A05] |
# [5V0] [C11] P127 [5V0] [B11] P59 P61 [A04] |
# [C12] P131 [B12] P57 P58 [A03] [5V0] |
# [C13] P132 [B13] P55 P56 [A02] [3V3] |
# [C14] P133 [B14] P50 P51 [A01] [2V5] |
# [C15] P134 [B15] P47 P48 [A00] [GND] |
|
## Prohibit the automatic placement of pins that are connected to VCC or GND for configuration. |
CONFIG PROHIBIT=P144; |
CONFIG PROHIBIT=P69; |
CONFIG PROHIBIT=P60; |
|
NET CLK LOC="P94" | IOSTANDARD=LVTTL | PERIOD=31.25ns; # CLK |
NET RX LOC="P101" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # RX |
NET TX LOC="P105" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # TX |
NET A(0) LOC="P48" | IOSTANDARD=LVTTL; # A0 |
NET A(1) LOC="P51" | IOSTANDARD=LVTTL; # A1 |
NET A(2) LOC="P56" | IOSTANDARD=LVTTL; # A2 |
NET A(3) LOC="P58" | IOSTANDARD=LVTTL; # A3 |
NET A(4) LOC="P61" | IOSTANDARD=LVTTL; # A4 |
NET A(5) LOC="P66" | IOSTANDARD=LVTTL; # A5 |
NET A(6) LOC="P67" | IOSTANDARD=LVTTL; # A6 |
NET A(7) LOC="P75" | IOSTANDARD=LVTTL; # A7 |
NET A(8) LOC="P79" | IOSTANDARD=LVTTL; # A8 |
NET A(9) LOC="P81" | IOSTANDARD=LVTTL; # A9 |
NET A(10) LOC="P83" | IOSTANDARD=LVTTL; # A10 |
NET A(11) LOC="P85" | IOSTANDARD=LVTTL; # A11 |
NET A(12) LOC="P88" | IOSTANDARD=LVTTL; # A12 |
NET A(13) LOC="P93" | IOSTANDARD=LVTTL; # A13 |
NET A(14) LOC="P98" | IOSTANDARD=LVTTL; # A14 |
NET A(15) LOC="P100" | IOSTANDARD=LVTTL; # A15 |
NET B(0) LOC="P99" | IOSTANDARD=LVTTL; # B0 |
NET B(1) LOC="P97" | IOSTANDARD=LVTTL; # B1 |
NET B(2) LOC="P92" | IOSTANDARD=LVTTL; # B2 |
NET B(3) LOC="P87" | IOSTANDARD=LVTTL; # B3 |
NET B(4) LOC="P84" | IOSTANDARD=LVTTL; # B4 |
NET B(5) LOC="P82" | IOSTANDARD=LVTTL; # B5 |
NET B(6) LOC="P80" | IOSTANDARD=LVTTL; # B6 |
NET B(7) LOC="P78" | IOSTANDARD=LVTTL; # B7 |
NET B(8) LOC="P74" | IOSTANDARD=LVTTL; # B8 |
NET B(9) LOC="P95" | IOSTANDARD=LVTTL; # B9 |
NET B(10) LOC="P62" | IOSTANDARD=LVTTL; # B10 |
NET B(11) LOC="P59" | IOSTANDARD=LVTTL; # B11 |
NET B(12) LOC="P57" | IOSTANDARD=LVTTL; # B12 |
NET B(13) LOC="P55" | IOSTANDARD=LVTTL; # B13 |
NET B(14) LOC="P50" | IOSTANDARD=LVTTL; # B14 |
NET B(15) LOC="P47" | IOSTANDARD=LVTTL; # B15 |
NET C(0) LOC="P114" | IOSTANDARD=LVTTL; # C0 |
NET C(1) LOC="P115" | IOSTANDARD=LVTTL; # C1 |
NET C(2) LOC="P116" | IOSTANDARD=LVTTL; # C2 |
NET C(3) LOC="P117" | IOSTANDARD=LVTTL; # C3 |
NET C(4) LOC="P118" | IOSTANDARD=LVTTL; # C4 |
NET C(5) LOC="P119" | IOSTANDARD=LVTTL; # C5 |
NET C(6) LOC="P120" | IOSTANDARD=LVTTL; # C6 |
NET C(7) LOC="P121" | IOSTANDARD=LVTTL; # C7 |
NET C(8) LOC="P123" | IOSTANDARD=LVTTL; # C8 |
NET C(9) LOC="P124" | IOSTANDARD=LVTTL; # C9 |
NET C(10) LOC="P126" | IOSTANDARD=LVTTL; # C10 |
NET C(11) LOC="P127" | IOSTANDARD=LVTTL; # C11 |
NET C(12) LOC="P131" | IOSTANDARD=LVTTL; # C12 |
NET C(13) LOC="P132" | IOSTANDARD=LVTTL; # C13 |
NET C(14) LOC="P133" | IOSTANDARD=LVTTL; # C14 |
NET C(15) LOC="P134" | IOSTANDARD=LVTTL; # C15 |
NET SDRAM_ADDR(0) LOC="P140" | IOSTANDARD=LVTTL; # SDRAM_ADDR0 |
NET SDRAM_ADDR(1) LOC="P139" | IOSTANDARD=LVTTL; # SDRAM_ADDR1 |
NET SDRAM_ADDR(2) LOC="P138" | IOSTANDARD=LVTTL; # SDRAM_ADDR2 |
NET SDRAM_ADDR(3) LOC="P137" | IOSTANDARD=LVTTL; # SDRAM_ADDR3 |
NET SDRAM_ADDR(4) LOC="P46" | IOSTANDARD=LVTTL; # SDRAM_ADDR4 |
NET SDRAM_ADDR(5) LOC="P45" | IOSTANDARD=LVTTL; # SDRAM_ADDR5 |
NET SDRAM_ADDR(6) LOC="P44" | IOSTANDARD=LVTTL; # SDRAM_ADDR6 |
NET SDRAM_ADDR(7) LOC="P43" | IOSTANDARD=LVTTL; # SDRAM_ADDR7 |
NET SDRAM_ADDR(8) LOC="P41" | IOSTANDARD=LVTTL; # SDRAM_ADDR8 |
NET SDRAM_ADDR(9) LOC="P40" | IOSTANDARD=LVTTL; # SDRAM_ADDR9 |
NET SDRAM_ADDR(10) LOC="P141" | IOSTANDARD=LVTTL; # SDRAM_ADDR10 |
NET SDRAM_ADDR(11) LOC="P35" | IOSTANDARD=LVTTL; # SDRAM_ADDR11 |
NET SDRAM_ADDR(12) LOC="P34" | IOSTANDARD=LVTTL; # SDRAM_ADDR12 |
NET SDRAM_DATA(0) LOC="P9" | IOSTANDARD=LVTTL; # SDRAM_DATA0 |
NET SDRAM_DATA(1) LOC="P10" | IOSTANDARD=LVTTL; # SDRAM_DATA1 |
NET SDRAM_DATA(2) LOC="P11" | IOSTANDARD=LVTTL; # SDRAM_DATA2 |
NET SDRAM_DATA(3) LOC="P12" | IOSTANDARD=LVTTL; # SDRAM_DATA3 |
NET SDRAM_DATA(4) LOC="P14" | IOSTANDARD=LVTTL; # SDRAM_DATA4 |
NET SDRAM_DATA(5) LOC="P15" | IOSTANDARD=LVTTL; # SDRAM_DATA5 |
NET SDRAM_DATA(6) LOC="P16" | IOSTANDARD=LVTTL; # SDRAM_DATA6 |
NET SDRAM_DATA(7) LOC="P8" | IOSTANDARD=LVTTL; # SDRAM_DATA7 |
NET SDRAM_DATA(8) LOC="P21" | IOSTANDARD=LVTTL; # SDRAM_DATA8 |
NET SDRAM_DATA(9) LOC="P22" | IOSTANDARD=LVTTL; # SDRAM_DATA9 |
NET SDRAM_DATA(10) LOC="P23" | IOSTANDARD=LVTTL; # SDRAM_DATA10 |
NET SDRAM_DATA(11) LOC="P24" | IOSTANDARD=LVTTL; # SDRAM_DATA11 |
NET SDRAM_DATA(12) LOC="P26" | IOSTANDARD=LVTTL; # SDRAM_DATA12 |
NET SDRAM_DATA(13) LOC="P27" | IOSTANDARD=LVTTL; # SDRAM_DATA13 |
NET SDRAM_DATA(14) LOC="P29" | IOSTANDARD=LVTTL; # SDRAM_DATA14 |
NET SDRAM_DATA(15) LOC="P30" | IOSTANDARD=LVTTL; # SDRAM_DATA15 |
NET SDRAM_DQML LOC="P7" | IOSTANDARD=LVTTL; # SDRAM_DQML |
NET SDRAM_DQMH LOC="P17" | IOSTANDARD=LVTTL; # SDRAM_DQMH |
NET SDRAM_BA(0) LOC="P143" | IOSTANDARD=LVTTL; # SDRAM_BA0 |
NET SDRAM_BA(1) LOC="P142" | IOSTANDARD=LVTTL; # SDRAM_BA1 |
NET SDRAM_nWE LOC="P6" | IOSTANDARD=LVTTL; # SDRAM_nWE |
NET SDRAM_nCAS LOC="P5" | IOSTANDARD=LVTTL; # SDRAM_nCAS |
NET SDRAM_nRAS LOC="P2" | IOSTANDARD=LVTTL; # SDRAM_nRAS |
NET SDRAM_CS LOC="P1" | IOSTANDARD=LVTTL; # SDRAM_CS |
NET SDRAM_CLK LOC="P32" | IOSTANDARD=LVTTL; # SDRAM_CLK |
NET SDRAM_CKE LOC="P33" | IOSTANDARD=LVTTL; # SDRAM_CKE |
NET LED1 LOC="P112" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW; # LED1 |
NET FLASH_CS LOC="P38" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # FLASH_CS |
NET FLASH_CK LOC="P70" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # FLASH_CK |
NET FLASH_SI LOC="P64" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # FLASH_SI |
NET FLASH_SO LOC="P65" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # FLASH_SO |
/fpga/papilio_pro/fpga_top.bit
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
fpga/papilio_pro/fpga_top.bit
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: fpga/papilio_pro/project.xise
===================================================================
--- fpga/papilio_pro/project.xise (nonexistent)
+++ fpga/papilio_pro/project.xise (revision 25)
@@ -0,0 +1,429 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: fpga/papilio_pro/bit_to_bin.bat
===================================================================
--- fpga/papilio_pro/bit_to_bin.bat (nonexistent)
+++ fpga/papilio_pro/bit_to_bin.bat (revision 25)
@@ -0,0 +1 @@
+promgen -u 0x0 project\fpga_top.bit -p bin -w -b -o fpga.bin