Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

-Added the ability to merge ROMs.

-Fixed coin and start buttons.
  • Loading branch information...
commit 7c91a9d0332fddeffaeb927bf2cb96e28d15011f 1 parent 431ea3d
@jackgassett jackgassett authored
View
BIN  galaxian_papilio/bit_files/galaxian_hardware_p1_500K.bit
Binary file not shown
View
96 galaxian_papilio/bit_files/galaxian_hardware_p1_500K_bd.bmm
@@ -0,0 +1,96 @@
+// BMM LOC annotation file.
+//
+// Release 13.2 - Data2MEM O.61xd, build 2.2 May 20, 2011
+// Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved.
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Processor 'avrmap', ID 0, memory map.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+ADDRESS_MAP avrmap PPC405 0
+
+
+ ///////////////////////////////////////////////////////////////////////////////
+ //
+ // Processor 'avrmap' address space 'galaxian_6l' 0x00000000:0x000007FF (2 KBytes).
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ ADDRESS_SPACE galaxian_6l RAMB16 [0x00000000:0x000007FF]
+ BUS_BLOCK
+ mc_col_pal/galaxian_6l/rom0.inst [7:0] PLACED = X0Y7;
+ END_BUS_BLOCK;
+ END_ADDRESS_SPACE;
+
+
+ ///////////////////////////////////////////////////////////////////////////////
+ //
+ // Processor 'avrmap' address space 'rom_1k' 0x00000000:0x000007FF (2 KBytes).
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ ADDRESS_SPACE rom_1k RAMB16 [0x00000000:0x000007FF]
+ BUS_BLOCK
+ mc_vid/k_rom/rom0.inst [7:0] PLACED = X0Y5;
+ END_BUS_BLOCK;
+ END_ADDRESS_SPACE;
+
+
+ ///////////////////////////////////////////////////////////////////////////////
+ //
+ // Processor 'avrmap' address space 'rom_1h' 0x00000000:0x000007FF (2 KBytes).
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ ADDRESS_SPACE rom_1h RAMB16 [0x00000000:0x000007FF]
+ BUS_BLOCK
+ mc_vid/h_rom/rom0.inst [7:0] PLACED = X0Y4;
+ END_BUS_BLOCK;
+ END_ADDRESS_SPACE;
+
+
+ ///////////////////////////////////////////////////////////////////////////////
+ //
+ // Processor 'avrmap' address space 'rom_code' 0x00000000:0x00003FFF (16 KBytes).
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ ADDRESS_SPACE rom_code RAMB16 [0x00000000:0x00003FFF]
+ BUS_BLOCK
+ roms/u_rom/rom0.inst [7:0] PLACED = X1Y3;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom1.inst [7:0] PLACED = X1Y0;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom2.inst [7:0] PLACED = X1Y4;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom3.inst [7:0] PLACED = X1Y5;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom4.inst [7:0] PLACED = X1Y6;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom5.inst [7:0] PLACED = X1Y7;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom6.inst [7:0] PLACED = X1Y2;
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom7.inst [7:0] PLACED = X1Y1;
+ END_BUS_BLOCK;
+ END_ADDRESS_SPACE;
+
+END_ADDRESS_MAP;
+
View
62 galaxian_papilio/build/galaxian.bmm
@@ -0,0 +1,62 @@
+
+
+ADDRESS_MAP avrmap PPC405 0
+
+ ADDRESS_SPACE rom_code RAMB16 [0x00000000:0x00003fff]
+ BUS_BLOCK
+ roms/u_rom/rom0.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom1.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom2.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom3.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom4.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom5.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom6.inst [7:0];
+ END_BUS_BLOCK;
+
+ BUS_BLOCK
+ roms/u_rom/rom7.inst [7:0];
+ END_BUS_BLOCK;
+
+ END_ADDRESS_SPACE;
+
+
+ ADDRESS_SPACE rom_1h RAMB16 [0x00000000:0x000007ff]
+ BUS_BLOCK
+ mc_vid/h_rom/rom0.inst [7:0];
+ END_BUS_BLOCK;
+
+ END_ADDRESS_SPACE;
+
+ ADDRESS_SPACE rom_1k RAMB16 [0x00000000:0x000007ff]
+ BUS_BLOCK
+ mc_vid/k_rom/rom0.inst [7:0];
+ END_BUS_BLOCK;
+
+ END_ADDRESS_SPACE;
+
+ ADDRESS_SPACE galaxian_6l RAMB16 [0x00000000:0x000007ff]
+ BUS_BLOCK
+ mc_col_pal/galaxian_6l/rom0.inst [7:0];
+ END_BUS_BLOCK;
+
+ END_ADDRESS_SPACE;
+
+END_ADDRESS_MAP;
View
316 galaxian_papilio/build/galaxian_1h.vhd
@@ -0,0 +1,316 @@
+-- generated with romgen v3.0 by MikeJ
+library ieee;
+ use ieee.std_logic_1164.all;
+ use ieee.std_logic_unsigned.all;
+ use ieee.numeric_std.all;
+
+library UNISIM;
+ use UNISIM.Vcomponents.all;
+
+entity GALAXIAN_1H is
+ port (
+ CLK : in std_logic;
+ ENA : in std_logic;
+ ADDR : in std_logic_vector(10 downto 0);
+ DATA : out std_logic_vector(7 downto 0)
+ );
+end;
+
+architecture RTL of GALAXIAN_1H is
+
+ function romgen_str2bv (str : string) return bit_vector is
+ variable result : bit_vector (str'length*4-1 downto 0);
+ begin
+ for i in 0 to str'length-1 loop
+ case str(str'high-i) is
+ when '0' => result(i*4+3 downto i*4) := x"0";
+ when '1' => result(i*4+3 downto i*4) := x"1";
+ when '2' => result(i*4+3 downto i*4) := x"2";
+ when '3' => result(i*4+3 downto i*4) := x"3";
+ when '4' => result(i*4+3 downto i*4) := x"4";
+ when '5' => result(i*4+3 downto i*4) := x"5";
+ when '6' => result(i*4+3 downto i*4) := x"6";
+ when '7' => result(i*4+3 downto i*4) := x"7";
+ when '8' => result(i*4+3 downto i*4) := x"8";
+ when '9' => result(i*4+3 downto i*4) := x"9";
+ when 'A' => result(i*4+3 downto i*4) := x"A";
+ when 'B' => result(i*4+3 downto i*4) := x"B";
+ when 'C' => result(i*4+3 downto i*4) := x"C";
+ when 'D' => result(i*4+3 downto i*4) := x"D";
+ when 'E' => result(i*4+3 downto i*4) := x"E";
+ when 'F' => result(i*4+3 downto i*4) := x"F";
+ when others => null;
+ end case;
+ end loop;
+ return result;
+ end romgen_str2bv;
+
+ attribute INITP_00 : string;
+ attribute INITP_01 : string;
+ attribute INITP_02 : string;
+ attribute INITP_03 : string;
+ attribute INITP_04 : string;
+ attribute INITP_05 : string;
+ attribute INITP_06 : string;
+ attribute INITP_07 : string;
+
+ attribute INIT_00 : string;
+ attribute INIT_01 : string;
+ attribute INIT_02 : string;
+ attribute INIT_03 : string;
+ attribute INIT_04 : string;
+ attribute INIT_05 : string;
+ attribute INIT_06 : string;
+ attribute INIT_07 : string;
+ attribute INIT_08 : string;
+ attribute INIT_09 : string;
+ attribute INIT_0A : string;
+ attribute INIT_0B : string;
+ attribute INIT_0C : string;
+ attribute INIT_0D : string;
+ attribute INIT_0E : string;
+ attribute INIT_0F : string;
+ attribute INIT_10 : string;
+ attribute INIT_11 : string;
+ attribute INIT_12 : string;
+ attribute INIT_13 : string;
+ attribute INIT_14 : string;
+ attribute INIT_15 : string;
+ attribute INIT_16 : string;
+ attribute INIT_17 : string;
+ attribute INIT_18 : string;
+ attribute INIT_19 : string;
+ attribute INIT_1A : string;
+ attribute INIT_1B : string;
+ attribute INIT_1C : string;
+ attribute INIT_1D : string;
+ attribute INIT_1E : string;
+ attribute INIT_1F : string;
+ attribute INIT_20 : string;
+ attribute INIT_21 : string;
+ attribute INIT_22 : string;
+ attribute INIT_23 : string;
+ attribute INIT_24 : string;
+ attribute INIT_25 : string;
+ attribute INIT_26 : string;
+ attribute INIT_27 : string;
+ attribute INIT_28 : string;
+ attribute INIT_29 : string;
+ attribute INIT_2A : string;
+ attribute INIT_2B : string;
+ attribute INIT_2C : string;
+ attribute INIT_2D : string;
+ attribute INIT_2E : string;
+ attribute INIT_2F : string;
+ attribute INIT_30 : string;
+ attribute INIT_31 : string;
+ attribute INIT_32 : string;
+ attribute INIT_33 : string;
+ attribute INIT_34 : string;
+ attribute INIT_35 : string;
+ attribute INIT_36 : string;
+ attribute INIT_37 : string;
+ attribute INIT_38 : string;
+ attribute INIT_39 : string;
+ attribute INIT_3A : string;
+ attribute INIT_3B : string;
+ attribute INIT_3C : string;
+ attribute INIT_3D : string;
+ attribute INIT_3E : string;
+ attribute INIT_3F : string;
+
+ component RAMB16_S9
+ --pragma translate_off
+ generic (
+ INITP_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+
+ INIT_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_08 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_09 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_10 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_11 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_12 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_13 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_14 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_15 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_16 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_17 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_18 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_19 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_20 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_21 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_22 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_23 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_24 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_25 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_26 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_27 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_28 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_29 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_30 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_31 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_32 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_33 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_34 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_35 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_36 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_37 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_38 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_39 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000"
+ );
+ --pragma translate_on
+ port (
+ DO : out std_logic_vector (7 downto 0);
+ DOP : out std_logic_vector (0 downto 0);
+ ADDR : in std_logic_vector (10 downto 0);
+ CLK : in std_logic;
+ DI : in std_logic_vector (7 downto 0);
+ DIP : in std_logic_vector (0 downto 0);
+ EN : in std_logic;
+ SSR : in std_logic;
+ WE : in std_logic
+ );
+ end component;
+
+ signal rom_addr : std_logic_vector(10 downto 0);
+
+begin
+
+ p_addr : process(ADDR)
+ begin
+ rom_addr <= (others => '0');
+ rom_addr(10 downto 0) <= ADDR;
+ end process;
+
+ rom0 : if true generate
+
+ begin
+ inst : RAMB16_S9
+ --pragma translate_off
+ generic map (
+ INITP_00 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_01 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_02 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_03 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_04 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_05 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_06 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_07 => x"0000000000000000000000000000000000000000000000000000000000000000",
+
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(7 downto 0),
+ DOP => open,
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "00000000",
+ DIP => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+end RTL;
View
316 galaxian_papilio/build/galaxian_1k.vhd
@@ -0,0 +1,316 @@
+-- generated with romgen v3.0 by MikeJ
+library ieee;
+ use ieee.std_logic_1164.all;
+ use ieee.std_logic_unsigned.all;
+ use ieee.numeric_std.all;
+
+library UNISIM;
+ use UNISIM.Vcomponents.all;
+
+entity GALAXIAN_1K is
+ port (
+ CLK : in std_logic;
+ ENA : in std_logic;
+ ADDR : in std_logic_vector(10 downto 0);
+ DATA : out std_logic_vector(7 downto 0)
+ );
+end;
+
+architecture RTL of GALAXIAN_1K is
+
+ function romgen_str2bv (str : string) return bit_vector is
+ variable result : bit_vector (str'length*4-1 downto 0);
+ begin
+ for i in 0 to str'length-1 loop
+ case str(str'high-i) is
+ when '0' => result(i*4+3 downto i*4) := x"0";
+ when '1' => result(i*4+3 downto i*4) := x"1";
+ when '2' => result(i*4+3 downto i*4) := x"2";
+ when '3' => result(i*4+3 downto i*4) := x"3";
+ when '4' => result(i*4+3 downto i*4) := x"4";
+ when '5' => result(i*4+3 downto i*4) := x"5";
+ when '6' => result(i*4+3 downto i*4) := x"6";
+ when '7' => result(i*4+3 downto i*4) := x"7";
+ when '8' => result(i*4+3 downto i*4) := x"8";
+ when '9' => result(i*4+3 downto i*4) := x"9";
+ when 'A' => result(i*4+3 downto i*4) := x"A";
+ when 'B' => result(i*4+3 downto i*4) := x"B";
+ when 'C' => result(i*4+3 downto i*4) := x"C";
+ when 'D' => result(i*4+3 downto i*4) := x"D";
+ when 'E' => result(i*4+3 downto i*4) := x"E";
+ when 'F' => result(i*4+3 downto i*4) := x"F";
+ when others => null;
+ end case;
+ end loop;
+ return result;
+ end romgen_str2bv;
+
+ attribute INITP_00 : string;
+ attribute INITP_01 : string;
+ attribute INITP_02 : string;
+ attribute INITP_03 : string;
+ attribute INITP_04 : string;
+ attribute INITP_05 : string;
+ attribute INITP_06 : string;
+ attribute INITP_07 : string;
+
+ attribute INIT_00 : string;
+ attribute INIT_01 : string;
+ attribute INIT_02 : string;
+ attribute INIT_03 : string;
+ attribute INIT_04 : string;
+ attribute INIT_05 : string;
+ attribute INIT_06 : string;
+ attribute INIT_07 : string;
+ attribute INIT_08 : string;
+ attribute INIT_09 : string;
+ attribute INIT_0A : string;
+ attribute INIT_0B : string;
+ attribute INIT_0C : string;
+ attribute INIT_0D : string;
+ attribute INIT_0E : string;
+ attribute INIT_0F : string;
+ attribute INIT_10 : string;
+ attribute INIT_11 : string;
+ attribute INIT_12 : string;
+ attribute INIT_13 : string;
+ attribute INIT_14 : string;
+ attribute INIT_15 : string;
+ attribute INIT_16 : string;
+ attribute INIT_17 : string;
+ attribute INIT_18 : string;
+ attribute INIT_19 : string;
+ attribute INIT_1A : string;
+ attribute INIT_1B : string;
+ attribute INIT_1C : string;
+ attribute INIT_1D : string;
+ attribute INIT_1E : string;
+ attribute INIT_1F : string;
+ attribute INIT_20 : string;
+ attribute INIT_21 : string;
+ attribute INIT_22 : string;
+ attribute INIT_23 : string;
+ attribute INIT_24 : string;
+ attribute INIT_25 : string;
+ attribute INIT_26 : string;
+ attribute INIT_27 : string;
+ attribute INIT_28 : string;
+ attribute INIT_29 : string;
+ attribute INIT_2A : string;
+ attribute INIT_2B : string;
+ attribute INIT_2C : string;
+ attribute INIT_2D : string;
+ attribute INIT_2E : string;
+ attribute INIT_2F : string;
+ attribute INIT_30 : string;
+ attribute INIT_31 : string;
+ attribute INIT_32 : string;
+ attribute INIT_33 : string;
+ attribute INIT_34 : string;
+ attribute INIT_35 : string;
+ attribute INIT_36 : string;
+ attribute INIT_37 : string;
+ attribute INIT_38 : string;
+ attribute INIT_39 : string;
+ attribute INIT_3A : string;
+ attribute INIT_3B : string;
+ attribute INIT_3C : string;
+ attribute INIT_3D : string;
+ attribute INIT_3E : string;
+ attribute INIT_3F : string;
+
+ component RAMB16_S9
+ --pragma translate_off
+ generic (
+ INITP_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+
+ INIT_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_08 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_09 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_10 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_11 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_12 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_13 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_14 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_15 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_16 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_17 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_18 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_19 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_20 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_21 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_22 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_23 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_24 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_25 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_26 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_27 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_28 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_29 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_30 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_31 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_32 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_33 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_34 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_35 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_36 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_37 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_38 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_39 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000"
+ );
+ --pragma translate_on
+ port (
+ DO : out std_logic_vector (7 downto 0);
+ DOP : out std_logic_vector (0 downto 0);
+ ADDR : in std_logic_vector (10 downto 0);
+ CLK : in std_logic;
+ DI : in std_logic_vector (7 downto 0);
+ DIP : in std_logic_vector (0 downto 0);
+ EN : in std_logic;
+ SSR : in std_logic;
+ WE : in std_logic
+ );
+ end component;
+
+ signal rom_addr : std_logic_vector(10 downto 0);
+
+begin
+
+ p_addr : process(ADDR)
+ begin
+ rom_addr <= (others => '0');
+ rom_addr(10 downto 0) <= ADDR;
+ end process;
+
+ rom0 : if true generate
+
+ begin
+ inst : RAMB16_S9
+ --pragma translate_off
+ generic map (
+ INITP_00 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_01 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_02 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_03 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_04 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_05 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_06 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_07 => x"0000000000000000000000000000000000000000000000000000000000000000",
+
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(7 downto 0),
+ DOP => open,
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "00000000",
+ DIP => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+end RTL;
View
316 galaxian_papilio/build/galaxian_6l.vhd
@@ -0,0 +1,316 @@
+-- generated with romgen v3.0 by MikeJ
+library ieee;
+ use ieee.std_logic_1164.all;
+ use ieee.std_logic_unsigned.all;
+ use ieee.numeric_std.all;
+
+library UNISIM;
+ use UNISIM.Vcomponents.all;
+
+entity GALAXIAN_6L is
+ port (
+ CLK : in std_logic;
+ ENA : in std_logic;
+ ADDR : in std_logic_vector(4 downto 0);
+ DATA : out std_logic_vector(7 downto 0)
+ );
+end;
+
+architecture RTL of GALAXIAN_6L is
+
+ function romgen_str2bv (str : string) return bit_vector is
+ variable result : bit_vector (str'length*4-1 downto 0);
+ begin
+ for i in 0 to str'length-1 loop
+ case str(str'high-i) is
+ when '0' => result(i*4+3 downto i*4) := x"0";
+ when '1' => result(i*4+3 downto i*4) := x"1";
+ when '2' => result(i*4+3 downto i*4) := x"2";
+ when '3' => result(i*4+3 downto i*4) := x"3";
+ when '4' => result(i*4+3 downto i*4) := x"4";
+ when '5' => result(i*4+3 downto i*4) := x"5";
+ when '6' => result(i*4+3 downto i*4) := x"6";
+ when '7' => result(i*4+3 downto i*4) := x"7";
+ when '8' => result(i*4+3 downto i*4) := x"8";
+ when '9' => result(i*4+3 downto i*4) := x"9";
+ when 'A' => result(i*4+3 downto i*4) := x"A";
+ when 'B' => result(i*4+3 downto i*4) := x"B";
+ when 'C' => result(i*4+3 downto i*4) := x"C";
+ when 'D' => result(i*4+3 downto i*4) := x"D";
+ when 'E' => result(i*4+3 downto i*4) := x"E";
+ when 'F' => result(i*4+3 downto i*4) := x"F";
+ when others => null;
+ end case;
+ end loop;
+ return result;
+ end romgen_str2bv;
+
+ attribute INITP_00 : string;
+ attribute INITP_01 : string;
+ attribute INITP_02 : string;
+ attribute INITP_03 : string;
+ attribute INITP_04 : string;
+ attribute INITP_05 : string;
+ attribute INITP_06 : string;
+ attribute INITP_07 : string;
+
+ attribute INIT_00 : string;
+ attribute INIT_01 : string;
+ attribute INIT_02 : string;
+ attribute INIT_03 : string;
+ attribute INIT_04 : string;
+ attribute INIT_05 : string;
+ attribute INIT_06 : string;
+ attribute INIT_07 : string;
+ attribute INIT_08 : string;
+ attribute INIT_09 : string;
+ attribute INIT_0A : string;
+ attribute INIT_0B : string;
+ attribute INIT_0C : string;
+ attribute INIT_0D : string;
+ attribute INIT_0E : string;
+ attribute INIT_0F : string;
+ attribute INIT_10 : string;
+ attribute INIT_11 : string;
+ attribute INIT_12 : string;
+ attribute INIT_13 : string;
+ attribute INIT_14 : string;
+ attribute INIT_15 : string;
+ attribute INIT_16 : string;
+ attribute INIT_17 : string;
+ attribute INIT_18 : string;
+ attribute INIT_19 : string;
+ attribute INIT_1A : string;
+ attribute INIT_1B : string;
+ attribute INIT_1C : string;
+ attribute INIT_1D : string;
+ attribute INIT_1E : string;
+ attribute INIT_1F : string;
+ attribute INIT_20 : string;
+ attribute INIT_21 : string;
+ attribute INIT_22 : string;
+ attribute INIT_23 : string;
+ attribute INIT_24 : string;
+ attribute INIT_25 : string;
+ attribute INIT_26 : string;
+ attribute INIT_27 : string;
+ attribute INIT_28 : string;
+ attribute INIT_29 : string;
+ attribute INIT_2A : string;
+ attribute INIT_2B : string;
+ attribute INIT_2C : string;
+ attribute INIT_2D : string;
+ attribute INIT_2E : string;
+ attribute INIT_2F : string;
+ attribute INIT_30 : string;
+ attribute INIT_31 : string;
+ attribute INIT_32 : string;
+ attribute INIT_33 : string;
+ attribute INIT_34 : string;
+ attribute INIT_35 : string;
+ attribute INIT_36 : string;
+ attribute INIT_37 : string;
+ attribute INIT_38 : string;
+ attribute INIT_39 : string;
+ attribute INIT_3A : string;
+ attribute INIT_3B : string;
+ attribute INIT_3C : string;
+ attribute INIT_3D : string;
+ attribute INIT_3E : string;
+ attribute INIT_3F : string;
+
+ component RAMB16_S9
+ --pragma translate_off
+ generic (
+ INITP_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INITP_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+
+ INIT_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_08 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_09 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_10 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_11 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_12 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_13 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_14 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_15 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_16 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_17 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_18 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_19 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_20 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_21 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_22 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_23 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_24 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_25 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_26 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_27 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_28 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_29 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_30 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_31 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_32 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_33 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_34 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_35 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_36 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_37 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_38 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_39 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000"
+ );
+ --pragma translate_on
+ port (
+ DO : out std_logic_vector (7 downto 0);
+ DOP : out std_logic_vector (0 downto 0);
+ ADDR : in std_logic_vector (10 downto 0);
+ CLK : in std_logic;
+ DI : in std_logic_vector (7 downto 0);
+ DIP : in std_logic_vector (0 downto 0);
+ EN : in std_logic;
+ SSR : in std_logic;
+ WE : in std_logic
+ );
+ end component;
+
+ signal rom_addr : std_logic_vector(10 downto 0);
+
+begin
+
+ p_addr : process(ADDR)
+ begin
+ rom_addr <= (others => '0');
+ rom_addr(4 downto 0) <= ADDR;
+ end process;
+
+ rom0 : if true generate
+
+ begin
+ inst : RAMB16_S9
+ --pragma translate_off
+ generic map (
+ INITP_00 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_01 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_02 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_03 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_04 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_05 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_06 => x"0000000000000000000000000000000000000000000000000000000000000000",
+ INITP_07 => x"0000000000000000000000000000000000000000000000000000000000000000",
+
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(7 downto 0),
+ DOP => open,
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "00000000",
+ DIP => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+end RTL;
View
5 galaxian_papilio/build/galaxian_papilio_one_500k_Arcade_MegaWing.xise
@@ -131,11 +131,10 @@
<association xil_pn:name="BehavioralSimulation" xil_pn:seqID="47"/>
<association xil_pn:name="Implementation" xil_pn:seqID="11"/>
</file>
- <file xil_pn:name="gfx1.vhd" xil_pn:type="FILE_VHDL">
- <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="48"/>
+ <file xil_pn:name="../source/p1_500_Arcade_MegaWing.ucf" xil_pn:type="FILE_UCF">
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
</file>
- <file xil_pn:name="../source/p1_500_Arcade_MegaWing.ucf" xil_pn:type="FILE_UCF">
+ <file xil_pn:name="galaxian.bmm" xil_pn:type="FILE_BMM">
<association xil_pn:name="Implementation" xil_pn:seqID="0"/>
</file>
</files>
View
859 galaxian_papilio/build/rom0.vhd
@@ -0,0 +1,859 @@
+-- generated with romgen v3.0 by MikeJ
+library ieee;
+ use ieee.std_logic_1164.all;
+ use ieee.std_logic_unsigned.all;
+ use ieee.numeric_std.all;
+
+library UNISIM;
+ use UNISIM.Vcomponents.all;
+
+entity ROM_PGM_0 is
+ port (
+ CLK : in std_logic;
+ ENA : in std_logic;
+ ADDR : in std_logic_vector(13 downto 0);
+ DATA : out std_logic_vector(7 downto 0)
+ );
+end;
+
+architecture RTL of ROM_PGM_0 is
+
+ function romgen_str2bv (str : string) return bit_vector is
+ variable result : bit_vector (str'length*4-1 downto 0);
+ begin
+ for i in 0 to str'length-1 loop
+ case str(str'high-i) is
+ when '0' => result(i*4+3 downto i*4) := x"0";
+ when '1' => result(i*4+3 downto i*4) := x"1";
+ when '2' => result(i*4+3 downto i*4) := x"2";
+ when '3' => result(i*4+3 downto i*4) := x"3";
+ when '4' => result(i*4+3 downto i*4) := x"4";
+ when '5' => result(i*4+3 downto i*4) := x"5";
+ when '6' => result(i*4+3 downto i*4) := x"6";
+ when '7' => result(i*4+3 downto i*4) := x"7";
+ when '8' => result(i*4+3 downto i*4) := x"8";
+ when '9' => result(i*4+3 downto i*4) := x"9";
+ when 'A' => result(i*4+3 downto i*4) := x"A";
+ when 'B' => result(i*4+3 downto i*4) := x"B";
+ when 'C' => result(i*4+3 downto i*4) := x"C";
+ when 'D' => result(i*4+3 downto i*4) := x"D";
+ when 'E' => result(i*4+3 downto i*4) := x"E";
+ when 'F' => result(i*4+3 downto i*4) := x"F";
+ when others => null;
+ end case;
+ end loop;
+ return result;
+ end romgen_str2bv;
+
+ attribute INIT_00 : string;
+ attribute INIT_01 : string;
+ attribute INIT_02 : string;
+ attribute INIT_03 : string;
+ attribute INIT_04 : string;
+ attribute INIT_05 : string;
+ attribute INIT_06 : string;
+ attribute INIT_07 : string;
+ attribute INIT_08 : string;
+ attribute INIT_09 : string;
+ attribute INIT_0A : string;
+ attribute INIT_0B : string;
+ attribute INIT_0C : string;
+ attribute INIT_0D : string;
+ attribute INIT_0E : string;
+ attribute INIT_0F : string;
+ attribute INIT_10 : string;
+ attribute INIT_11 : string;
+ attribute INIT_12 : string;
+ attribute INIT_13 : string;
+ attribute INIT_14 : string;
+ attribute INIT_15 : string;
+ attribute INIT_16 : string;
+ attribute INIT_17 : string;
+ attribute INIT_18 : string;
+ attribute INIT_19 : string;
+ attribute INIT_1A : string;
+ attribute INIT_1B : string;
+ attribute INIT_1C : string;
+ attribute INIT_1D : string;
+ attribute INIT_1E : string;
+ attribute INIT_1F : string;
+ attribute INIT_20 : string;
+ attribute INIT_21 : string;
+ attribute INIT_22 : string;
+ attribute INIT_23 : string;
+ attribute INIT_24 : string;
+ attribute INIT_25 : string;
+ attribute INIT_26 : string;
+ attribute INIT_27 : string;
+ attribute INIT_28 : string;
+ attribute INIT_29 : string;
+ attribute INIT_2A : string;
+ attribute INIT_2B : string;
+ attribute INIT_2C : string;
+ attribute INIT_2D : string;
+ attribute INIT_2E : string;
+ attribute INIT_2F : string;
+ attribute INIT_30 : string;
+ attribute INIT_31 : string;
+ attribute INIT_32 : string;
+ attribute INIT_33 : string;
+ attribute INIT_34 : string;
+ attribute INIT_35 : string;
+ attribute INIT_36 : string;
+ attribute INIT_37 : string;
+ attribute INIT_38 : string;
+ attribute INIT_39 : string;
+ attribute INIT_3A : string;
+ attribute INIT_3B : string;
+ attribute INIT_3C : string;
+ attribute INIT_3D : string;
+ attribute INIT_3E : string;
+ attribute INIT_3F : string;
+
+ component RAMB16_S1
+ --pragma translate_off
+ generic (
+ INIT_00 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_01 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_02 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_03 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_04 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_05 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_06 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_07 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_08 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_09 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_0F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_10 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_11 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_12 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_13 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_14 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_15 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_16 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_17 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_18 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_19 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_1F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_20 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_21 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_22 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_23 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_24 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_25 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_26 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_27 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_28 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_29 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_2F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_30 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_31 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_32 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_33 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_34 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_35 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_36 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_37 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_38 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_39 : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3A : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3B : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3C : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3D : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3E : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000";
+ INIT_3F : bit_vector (255 downto 0) := x"0000000000000000000000000000000000000000000000000000000000000000"
+ );
+ --pragma translate_on
+ port (
+ DO : out std_logic_vector (0 downto 0);
+ ADDR : in std_logic_vector (13 downto 0);
+ CLK : in std_logic;
+ DI : in std_logic_vector (0 downto 0);
+ EN : in std_logic;
+ SSR : in std_logic;
+ WE : in std_logic
+ );
+ end component;
+
+ signal rom_addr : std_logic_vector(13 downto 0);
+
+begin
+
+ p_addr : process(ADDR)
+ begin
+ rom_addr <= (others => '0');
+ rom_addr(13 downto 0) <= ADDR;
+ end process;
+
+ rom0 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(0 downto 0),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom1 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(1 downto 1),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom2 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(2 downto 2),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom3 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(3 downto 3),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom4 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(4 downto 4),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom5 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(5 downto 5),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom6 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(6 downto 6),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+ rom7 : if true generate
+
+ begin
+ inst : RAMB16_S1
+ --pragma translate_off
+ generic map (
+ INIT_00 => romgen_str2bv(inst'INIT_00),
+ INIT_01 => romgen_str2bv(inst'INIT_01),
+ INIT_02 => romgen_str2bv(inst'INIT_02),
+ INIT_03 => romgen_str2bv(inst'INIT_03),
+ INIT_04 => romgen_str2bv(inst'INIT_04),
+ INIT_05 => romgen_str2bv(inst'INIT_05),
+ INIT_06 => romgen_str2bv(inst'INIT_06),
+ INIT_07 => romgen_str2bv(inst'INIT_07),
+ INIT_08 => romgen_str2bv(inst'INIT_08),
+ INIT_09 => romgen_str2bv(inst'INIT_09),
+ INIT_0A => romgen_str2bv(inst'INIT_0A),
+ INIT_0B => romgen_str2bv(inst'INIT_0B),
+ INIT_0C => romgen_str2bv(inst'INIT_0C),
+ INIT_0D => romgen_str2bv(inst'INIT_0D),
+ INIT_0E => romgen_str2bv(inst'INIT_0E),
+ INIT_0F => romgen_str2bv(inst'INIT_0F),
+ INIT_10 => romgen_str2bv(inst'INIT_10),
+ INIT_11 => romgen_str2bv(inst'INIT_11),
+ INIT_12 => romgen_str2bv(inst'INIT_12),
+ INIT_13 => romgen_str2bv(inst'INIT_13),
+ INIT_14 => romgen_str2bv(inst'INIT_14),
+ INIT_15 => romgen_str2bv(inst'INIT_15),
+ INIT_16 => romgen_str2bv(inst'INIT_16),
+ INIT_17 => romgen_str2bv(inst'INIT_17),
+ INIT_18 => romgen_str2bv(inst'INIT_18),
+ INIT_19 => romgen_str2bv(inst'INIT_19),
+ INIT_1A => romgen_str2bv(inst'INIT_1A),
+ INIT_1B => romgen_str2bv(inst'INIT_1B),
+ INIT_1C => romgen_str2bv(inst'INIT_1C),
+ INIT_1D => romgen_str2bv(inst'INIT_1D),
+ INIT_1E => romgen_str2bv(inst'INIT_1E),
+ INIT_1F => romgen_str2bv(inst'INIT_1F),
+ INIT_20 => romgen_str2bv(inst'INIT_20),
+ INIT_21 => romgen_str2bv(inst'INIT_21),
+ INIT_22 => romgen_str2bv(inst'INIT_22),
+ INIT_23 => romgen_str2bv(inst'INIT_23),
+ INIT_24 => romgen_str2bv(inst'INIT_24),
+ INIT_25 => romgen_str2bv(inst'INIT_25),
+ INIT_26 => romgen_str2bv(inst'INIT_26),
+ INIT_27 => romgen_str2bv(inst'INIT_27),
+ INIT_28 => romgen_str2bv(inst'INIT_28),
+ INIT_29 => romgen_str2bv(inst'INIT_29),
+ INIT_2A => romgen_str2bv(inst'INIT_2A),
+ INIT_2B => romgen_str2bv(inst'INIT_2B),
+ INIT_2C => romgen_str2bv(inst'INIT_2C),
+ INIT_2D => romgen_str2bv(inst'INIT_2D),
+ INIT_2E => romgen_str2bv(inst'INIT_2E),
+ INIT_2F => romgen_str2bv(inst'INIT_2F),
+ INIT_30 => romgen_str2bv(inst'INIT_30),
+ INIT_31 => romgen_str2bv(inst'INIT_31),
+ INIT_32 => romgen_str2bv(inst'INIT_32),
+ INIT_33 => romgen_str2bv(inst'INIT_33),
+ INIT_34 => romgen_str2bv(inst'INIT_34),
+ INIT_35 => romgen_str2bv(inst'INIT_35),
+ INIT_36 => romgen_str2bv(inst'INIT_36),
+ INIT_37 => romgen_str2bv(inst'INIT_37),
+ INIT_38 => romgen_str2bv(inst'INIT_38),
+ INIT_39 => romgen_str2bv(inst'INIT_39),
+ INIT_3A => romgen_str2bv(inst'INIT_3A),
+ INIT_3B => romgen_str2bv(inst'INIT_3B),
+ INIT_3C => romgen_str2bv(inst'INIT_3C),
+ INIT_3D => romgen_str2bv(inst'INIT_3D),
+ INIT_3E => romgen_str2bv(inst'INIT_3E),
+ INIT_3F => romgen_str2bv(inst'INIT_3F)
+ )
+ --pragma translate_on
+ port map (
+ DO => DATA(7 downto 7),
+ ADDR => rom_addr,
+ CLK => CLK,
+ DI => "0",
+ EN => ENA,
+ SSR => '0',
+ WE => '0'
+ );
+ end generate;
+end RTL;
View
BIN  galaxian_papilio/romgen_source/libgcc_s_dw2-1.dll
Binary file not shown
View
BIN  galaxian_papilio/romgen_source/libstdc++-6.dll
Binary file not shown
View
90 galaxian_papilio/romgen_source/romgen.cpp
@@ -29,6 +29,7 @@ int main(int argc, char* argv[])
cerr << " b - Xilinx block ram4 (registered output always)\n";
cerr << " l - Xilinx block ram16 (registered output always)\n";
cerr << " d - Xilinx distributed ram [not supported yet]\n";
+ cerr << " m - Xilinx mem file\n";
cerr << "\n";
cerr << "for the registered paramater (optional) use :\n";
cerr << " r - registered output (combinatorial otherwise) \n";
@@ -63,6 +64,7 @@ int main(int argc, char* argv[])
bool format_clock = false;
bool format_ram16 = false;
bool format_ena = false;
+ bool format_mem = false;
cerr << "INFO : creating entity : " << argv[2] << "\n";
@@ -97,6 +99,8 @@ int main(int argc, char* argv[])
cerr << "INFO : block4 ram, registered \n"; format_block = true; format_clock = true; }
else if ((rom_type == 'l') || (rom_type == 'L')) {
cerr << "INFO : block16 ram, registered \n"; format_block = true; format_clock = true; format_ram16 = true; }
+ else if ((rom_type == 'm') || (rom_type == 'M')) {
+ cerr << "INFO : mem file \n"; format_mem = true; format_clock = true; format_ram16 = true;}
//else if ((rom_type == 'd') || (rom_type == 'D')) {
// cerr << "INFO : distributed ram, combinatorial; \n"; format_dist = true; }
else {
@@ -114,7 +118,7 @@ int main(int argc, char* argv[])
int max_addr_bits = 16;
int rom_inits = 16;
- if (format_block == true) {
+ if (format_block == true || format_mem == true) {
if (format_ram16 == true) {
max_addr_bits = 14;
rom_inits = 64;
@@ -211,6 +215,87 @@ int main(int argc, char* argv[])
fclose(fin);
+ if (format_mem == true) {
+
+
+ for (k = 0; k < number_of_block_rams; k ++){
+ //printf(" rom%d : if true generate\n",k);
+
+ for (j = 0; j < rom_inits; j++) {
+ //printf(" attribute INIT_%02X of inst : label is \042",j);
+ switch (block_ram_width) {
+
+ case 1 : // width 1
+ mask = 0x1 << (k);
+ //for (i = 0; i < 256; i+=8) {
+ for (i = 248; i >= 0; i-=8) {
+ data = ((mem[(j*256) + (255 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (254 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (253 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (252 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (251 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (250 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (249 - i)] & mask) >> k);
+ data <<= 1;
+ data += ((mem[(j*256) + (248 - i)] & mask) >> k);
+ printf("%02X ",data);
+ }
+ break;
+
+ case 2 : // width 2
+ //printf("case 2\n");
+ mask = 0x3 << (k * 2);
+ //for (i = 0; i < 128; i+=4) {
+ for (i = 124; i >= 0; i-=4) {
+ data = ((mem[(j*128) + (127 - i)] & mask) >> k * 2);
+ data <<= 2;
+ data += ((mem[(j*128) + (126 - i)] & mask) >> k * 2);
+ data <<= 2;
+ data += ((mem[(j*128) + (125 - i)] & mask) >> k * 2);
+ data <<= 2;
+ data += ((mem[(j*128) + (124 - i)] & mask) >> k * 2);
+ printf("%02X ",data);
+ }
+ break;
+
+ case 4 : // width 4
+ printf("case 4\n");
+ mask = 0xF << (k * 4);
+ for (i = 0; i < 64; i+=2) {
+ data = ((mem[(j*64) + (63 - i)] & mask) >> k * 4);
+ data <<= 4;
+ data += ((mem[(j*64) + (62 - i)] & mask) >> k * 4);
+
+ printf("%02X ",data);
+ }
+ break;
+
+
+ case 8 : // width 8
+ //for (i = 0; i < 32; i++) {
+ //printf("case 8\n");
+ for (i = 31; i >= 0; i--) {
+ data = ((mem[(j*32) + (31 - i)]));
+ printf("%02X ",data);
+ }
+ break;
+ } // end switch
+
+ //printf("\042;\n");
+ }
+
+ // for (i = 0; i <= last_nz_addr; i ++ ) {
+ // printf("%02X",i,mem[i]);
+ }
+ return 0;
+ } // end case
+
printf("-- generated with romgen v3.0 by MikeJ\n");
printf("library ieee;\n");
printf(" use ieee.std_logic_1164.all;\n");
@@ -504,7 +589,8 @@ int main(int argc, char* argv[])
printf(" end if;\n");
printf(" end process;\n");
//}}}
- } // end case
+ } // end case
+
printf("end RTL;\n");
return 0;
View
BIN  galaxian_papilio/romgen_source/romgen.exe
Binary file not shown
View
0  galaxian_papilio/roms/galaxian/placeholder.txt
No changes.
View
BIN  galaxian_papilio/scripts/bin/data2mem.exe
Binary file not shown
View
3  galaxian_papilio/scripts/build_roms_galaxian.bat
@@ -19,7 +19,8 @@ copy /b/y %rom_path_src%\1h.bin + %rom_path_src%\1k.bin %rom_path%\gfx1.bin > NU
copy /b/y %rom_path_src%\galmidw.u + %rom_path_src%\galmidw.v + %rom_path_src%\galmidw.w + %rom_path_src%\galmidw.y + %rom_path_src%\7l %rom_path%\main.bin > NUL
REM generate RTL code for small PROMS
-%romgen_path%\romgen %rom_path_src%\6l.bpr GALAXIAN_6L 5 c > %rom_path%\galaxian_6l.vhd
+REM %romgen_path%\romgen %rom_path_src%\6l.bpr GALAXIAN_6L 5 c > %rom_path%\galaxian_6l.vhd
+%romgen_path%\romgen %rom_path_src%\6l.bpr GALAXIAN_6L 5 l r e > %rom_path%\galaxian_6l.vhd
REM generate RAMB structures for larger ROMS
%romgen_path%\romgen %rom_path%\gfx1.bin GFX1 12 l r e > %rom_path%\gfx1.vhd
View
58 galaxian_papilio/scripts/merge_roms_galaxian.bat
@@ -0,0 +1,58 @@
+@echo off
+
+REM SHA1 sums of files required
+REM 4755609bd974976f04855d51e08ec0d62ab4bc07 *1h.bin
+REM a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa *1k.bin
+REM f382ad5a34d282056c78a5ec00c30ec43772bae2 *6l.bpr
+REM 8b44b0f74420871454e27894d0f004859f9e59a9 *7l
+REM e65f74e35b1bfaccd407e168ea55678ae9b68edf *galmidw.u
+REM 02fdcd95d8511e64c0d2b007b874112d53e41045 *galmidw.v
+REM 0046b9ed697a34d088de1aead8bd7cbe526a2396 *galmidw.w
+REM 18d8714e5ef52f63ba8888ecc5a25b17b3bf17d1 *galmidw.y
+
+set rom_path_src=..\roms\galaxian
+set bit_file_path=..\bit_files
+set temp_path=..\scripts\tmp
+set romgen_path=..\romgen_source
+set data2mem=..\scripts\bin\data2mem
+
+REM Bit file to merge the ROMs into. Uncomment the bit file for the Papilio Arcade board you are using.
+REM This is for the papilio Logic with LX9 chip
+REM set bit_file=pacman_hardware_papilio_logic_lx9
+REM this is for the Papilio One with 500K chip
+set bit_file=galaxian_hardware_p1_500K
+
+set output_bitfile=galaxian_on_%bit_file%.bit
+
+REM concatenate consecutive ROM regions
+copy /b/y %rom_path_src%\1h.bin + %rom_path_src%\1k.bin %temp_path%\gfx1.bin > NUL
+copy /b/y %rom_path_src%\galmidw.u + %rom_path_src%\galmidw.v + %rom_path_src%\galmidw.w + %rom_path_src%\galmidw.y + %rom_path_src%\7l %temp_path%\main.bin > NUL
+
+REM generate RTL code for small PROMS
+REM %romgen_path%\romgen %rom_path_src%\6l.bpr GALAXIAN_6L 5 c > %rom_path%\galaxian_6l.vhd
+%romgen_path%\romgen %rom_path_src%\6l.bpr GALAXIAN_6L 5 m r e > %temp_path%\galaxian_6l.mem
+
+REM generate RAMB structures for larger ROMS
+%romgen_path%\romgen %temp_path%\gfx1.bin GFX1 12 m r e > %temp_path%\gfx1.mem
+%romgen_path%\romgen %temp_path%\main.bin ROM_PGM_0 14 m r e > %temp_path%\rom0.mem
+
+%romgen_path%\romgen %rom_path_src%\1h.bin GALAXIAN_1H 11 m r e > %temp_path%\galaxian_1h.mem
+%romgen_path%\romgen %rom_path_src%\1k.bin GALAXIAN_1K 11 m r e > %temp_path%\galaxian_1k.mem
+
+REM %romgen_path%\romgen %rom_path_src%\mc_wav_2.bin GALAXIAN_WAV 18 l r e > %rom_path%\galaxian_wav.vhd
+
+%data2mem% -bm %bit_file_path%\%bit_file%_bd.bmm -bt %bit_file_path%\%bit_file%.bit -bd %temp_path%\galaxian_6l.mem tag avrmap.galaxian_6l -o b %temp_path%\out1.bit
+%data2mem% -bm %bit_file_path%\%bit_file%_bd.bmm -bt %temp_path%\out1.bit -bd %temp_path%\rom0.mem tag avrmap.rom_code -o b %temp_path%\out2.bit
+%data2mem% -bm %bit_file_path%\%bit_file%_bd.bmm -bt %temp_path%\out2.bit -bd %temp_path%\galaxian_1h.mem tag avrmap.rom_1h -o b %temp_path%\out3.bit
+%data2mem% -bm %bit_file_path%\%bit_file%_bd.bmm -bt %temp_path%\out3.bit -bd %temp_path%\galaxian_1k.mem tag avrmap.rom_1k -o b %bit_file_path%\%output_bitfile%
+
+REM %data2mem% -bm %bit_file_path%\%bit_file%_bd.bmm -bt %temp_path%\out4.bit -bd %temp_path%\rom0.mem tag avrmap.rom_code -o b %temp_path%\out5.bit
+REM %data2mem% -bm %bit_file_path%\%bit_file%_bd.bmm -bt %temp_path%\out5.bit -bd %temp_path%\rom1.mem tag avrmap.rom_wiz -o b %bit_file_path%\%output_bitfile%
+
+REM Cleanup
+del %temp_path%\out*.bit
+del %temp_path%\*.mem
+del %temp_path%\*.bin
+
+echo Merged bit file is located at: %bit_file_path%\%output_bitfile%
+pause
View
0  galaxian_papilio/scripts/tmp/placeholder.txt
No changes.
View
11 galaxian_papilio/source/galaxian_top.vhd
@@ -481,11 +481,11 @@ begin
R1 <= not I_SW(3);
J1 <= not I_SW(4);
- S1 <= I_SW(0);
- S2 <= '1';
+ S1 <= not I_SW(5);
+ S2 <= not I_SW(7);
- C1 <= I_SW(0);
- C2 <= '1';
+ C1 <= not I_SW(6);
+ C2 <= not I_SW(8);
-- S1 <= not I_SW(5);
-- S2 <= not I_SW(7);
@@ -517,7 +517,8 @@ begin
W_CLK_12M <= WB_CLK_12M;
W_CLK_6M <= WB_CLK_6M;
- W_RESETn <= I_SW(8) or I_SW(7) or I_SW(6) or I_SW(5);
+-- W_RESETn <= I_SW(8) or I_SW(7) or I_SW(6) or I_SW(5);
+ W_RESETn <= '1';
W_BDO <= W_SW_DO or W_VID_DO or W_CPU_RAM_DO or W_CPU_ROM_DOB ;
View
2  galaxian_papilio/source/mc_col_pal.vhd
@@ -66,6 +66,8 @@ end process;
galaxian_6l : entity work.GALAXIAN_6L
port map (
+ CLK => I_CLK_12M,
+ ENA => '1',
ADDR => W_COL_ROM_A,
DATA => W_COL_ROM_DO