--------------------------------------------------------------------- -- TITLE: Random Access Memory for Xilinx -- AUTHOR: Steve Rhoads (rhoadss@yahoo.com) -- DATE CREATED: 11/06/05 -- FILENAME: ram_xilinx.vhd -- PROJECT: Plasma CPU core -- COPYRIGHT: Software placed into the public domain by the author. -- Software 'as is' without warranty. Author liable for nothing. -- DESCRIPTION: -- Implements the RAM for Spartan 3 Xilinx FPGA -- -- Compile the MIPS C and assembly code into "test.axf". -- Run convert.exe to change "test.axf" to "code.txt" which -- will contain the hex values of the opcodes. -- Next run "ram_image ram_xilinx.vhd code.txt ram_image.vhd", -- to create the "ram_image.vhd" file that will have the opcodes -- correctly placed inside the INIT_00 => strings. -- Then include ram_image.vhd in the simulation/synthesis. --------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_misc.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use work.mlite_pack.all; library UNISIM; use UNISIM.vcomponents.all; entity ram is generic(memory_type : string := "DEFAULT"); port(clk : in std_logic; enable : in std_logic; write_byte_enable : in std_logic_vector(3 downto 0); address : in std_logic_vector(31 downto 2); data_write : in std_logic_vector(31 downto 0); data_read : out std_logic_vector(31 downto 0)); end; --entity ram architecture logic of ram is begin RAMB16_S9_inst0 : RAMB16_S9 generic map ( INIT_00 => X"afafafafafafafafafafafafafafafaf2308000c241400ac273c243c243c273c", INIT_01 => X"8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f230c008c8c3caf00af00af2340afaf", INIT_02 => X"acacacac0003373cac038cac8cac8cac8c243c40034040033423038f038f8f8f", INIT_03 => X"000300ac0300000034038c8c8c8c8c8c8c8c8c8c8c8c3403acacacacacacacac", INIT_04 => X"1c24001030008c24ac24ac9424003c00180003241c24a4248c0018ac2400003c", INIT_05 => X"002400002424102830242400a0243c0003001030008cacac242400003c000300", INIT_06 => X"24100010000c00102a0200260c24af08af2424240000afafafafaf270103a014", INIT_07 => X"0c240c001a001427038f8f8f8f8f8f8f02240c240c000824102c24142c24142e", INIT_08 => X"0c3c240c3c240c3c240c3c240c3caf0cafafafafafafafafaf270008260c2424", INIT_09 => X"0c3c3c3c3c3c3c003c3c0c003c240c3c3c1430248c3c1030008c34ac3c3c2424", INIT_0A => X"240c3c240c3c270c260c260c260c260c240c3c240c3c240c3c240c3c240c3c24", INIT_0B => X"0c3c3c08240c3c000c000c8e0000008c0024003c3c102c260000142c2400000c", INIT_0C => X"0c3c3c080002a208000c000c00000c240c3c0008923c08ae000c000c00000c24", INIT_0D => X"3c080216a002260c00000010000c240c3c3c080216260c900200000010000c24", INIT_0E => X"000010000c240c3c3c08240c000c000c0014002490020000000010000c240c3c", INIT_0F => X"08240c3c021402240c000c260c8c021032021002240c000c260c8c02240c3c00", INIT_10 => X"0014343c000c240c3c3c0800003c0016260c262610000c3c120008a23c243c3c", INIT_11 => X"000c000c2608240c3c000c020c240c3c00000c240c3c020c3c083c0c003c000c", INIT_12 => X"1400100082260c00240800100080afafaf270003ac001030008c343c3c08240c", INIT_13 => X"0c2424142c3002242400afafafaf272703008f8f8f00140082000c2682000c24", INIT_14 => X"3c24243c3c2703008f8c3c10000caf2730038c343c240827038f8f8f8f021626", INIT_15 => X"20740a00616d20423a003931303144656c62747267650a24038c0014ac00248c", INIT_16 => X"79617965330a7769796532006f61796531006e706e724f303030206e65696120", INIT_17 => X"6f4600753900736838006979656137617965613673647475350a626979653400", INIT_18 => X"0037336820660a0d786e6e0a786e750a3d6541206820720a3e00616f446f4231", INIT_19 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000") port map ( DO => data_read(31 downto 24), DOP => open, ADDR => address(12 downto 2), CLK => clk, DI => data_write(31 downto 24), DIP => ZERO(0 downto 0), EN => enable, SSR => ZERO(0), WE => write_byte_enable(3)); RAMB16_S9_inst1 : RAMB16_S9 generic map ( INIT_00 => X"b8afaeadacabaaa9a8a7a6a5a4a3a2a1bd000000a560a4a0bd1d8404a5059c1c", INIT_01 => X"b9b8afaeadacabaaa9a8a7a6a5a4a3a2a1a50086c6c406bb00bb00ba5a1abfb9", INIT_02 => X"9392919000405a1a06e0a606a606a606a6a50584e0029b401bbd60bb60bbbabf", INIT_03 => X"00e000c4e0000085a2e09f9d9c9e979695949392919002e09f9d9c9e97969594", INIT_04 => X"c0c60040420062636284658205620205c000e084c0a582c6a200c0a202a20502", INIT_05 => X"04a5c3a8060640628307054040420200e000404200828283020382040200e000", INIT_06 => X"5054405300000040220312310090b000bf1514130000b1b2b3b4b5bd00e043a7", INIT_07 => X"00040000208095bde0b0b1b2b3b4b5bf40040004000000904042824042824002", INIT_08 => X"0004840004840004840004840004b000b1b2b3b4b5b6b7bebfbd120031000404", INIT_09 => X"00021e1716151440020600000484000415434203821460630043428302040384", INIT_0A => X"440002440002c400e400c400a400840044000244000244000244000244000244", INIT_0B => X"0002020044000240000000440080004443830304024062030000404242400000", INIT_0C => X"0002020000405000400040004000004400020000440200504000400040000044", INIT_0D => X"0200001362511000000040400000440002020000111000444200004040000044", INIT_0E => X"00404000004400020200040040000000a0a683a5434200000040400000440002", INIT_0F => X"0044000200601304004000300044504002006013040040003000445044000200", INIT_10 => X"0043630300004400020200004002405352001010400000021100005013111202", INIT_11 => X"4000000003004400024000400044000240000044000200000200060000040000", INIT_12 => X"5100400002100040110080400082b1bfb0bd00e0a40040420062a30502000400", INIT_13 => X"00646440624312111080bfb0b1b2bdbde000b0b1bf0040000240001002000004", INIT_14 => X"0563440302bde000bf6203400000bfbd42e06263030400bde0b0b1b2bf121110", INIT_15 => X"666957007320666f0a003a36303465726f6f686f73744742e0a2008340458482", INIT_16 => X"7464206d2e006f74206d2e007264206d2e007374752074303078616b206d7262", INIT_17 => X"702e006d2e0075652e0074206d772e64206d772e73646f6d2e007974206d2e00", INIT_18 => X"003834207769430a3e2074433e206556207364006569654120007320526d2032", INIT_19 => X"0000040000802400800000000000000000000000000000000000000000000000", INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000") port map ( DO => data_read(23 downto 16), DOP => open, ADDR => address(12 downto 2), CLK => clk, DI => data_write(23 downto 16), DIP => ZERO(0 downto 0), EN => enable, SSR => ZERO(0), WE => write_byte_enable(2)); RAMB16_S9_inst2 : RAMB16_S9 generic map ( INIT_00 => X"00000000000000000000000000000000ff00000100ff18000e000f000c008c00", INIT_01 => X"000000000000000000000000000000000000022000002000d800d800ff700000", INIT_02 => X"0000000000000010000000000000000000010060006060000000000000000000", INIT_03 => X"0000000000201000000000000000000000000000000000000000000000000000", INIT_04 => X"ffff00ff00000000000000000018301800000000ff0000ff0000000000282830", INIT_05 => X"21ff18100000000000ff0040000d00000000ff00000000000000202030000000", INIT_06 => X"ff002000000200000090190002ff00000000000088900000000000ff100000ff", INIT_07 => X"020002000080ff00000000000000000010000200020000ff0000ffff00ffff00", INIT_08 => X"02000a02000c02000a02000a02000002000000000000000000ff9100ff020000", INIT_09 => X"02000000000000f810000028100a02000000ff3c00000000000000002030000a", INIT_0A => X"0c02000b02000b020b020b020b020b020b02000b02000b02000b02000b02000a", INIT_0B => X"020000010b0200200200000000000000100c100000ff00ff90000000ff800002", INIT_0C => X"0200000100f80001200280002000000c0200000100000100200280002000000c", INIT_0D => X"000188ff00180002888098ff00000c0200000110ff00020010108088ff00000c", INIT_0E => X"80980000000c0200000100022002000010ff20000010102028300000000c0200", INIT_0F => X"010c020088ff180002200200000010ff0088001800022002000000100c020088", INIT_10 => X"00ff561200000c0200000100f81080ff0002ff00ff0002100080020010271000", INIT_11 => X"20022000ff010b0200200220000c02009000000c020020020001000028102000", INIT_12 => X"ff00000000000220000280000000000000ff00000010ff000000002000010002", INIT_13 => X"02000000000010ff009000000000ff00001000000000ff000020020000000200", INIT_14 => X"100c0c0000000000000020ff000200ff0000000020000200000000000010ffff", INIT_15 => X"6f6e61006866726f0000303a38206320616f656d20697200000000ff00100000", INIT_16 => X"6520726f20007265776f20006420726f20003a69204d680a303174656c617969", INIT_17 => X"7920007020006d63200065776f20200a726f20200a72207020007465776f2000", INIT_18 => X"003e353169726f002068206f2068206100736400786e73640000686620206638", INIT_19 => X"0000200000002028000008040404040404040404080404070706060606060505", INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000") port map ( DO => data_read(15 downto 8), DOP => open, ADDR => address(12 downto 2), CLK => clk, DI => data_write(15 downto 8), DIP => ZERO(0 downto 0), EN => enable, SSR => ZERO(0), WE => write_byte_enable(1)); RAMB16_S9_inst3 : RAMB16_S9 generic map ( INIT_00 => X"4c4844403c3834302c2824201c181410980e000604fd2a00f8001000f800f001", INIT_01 => X"504c4844403c3834302c2824201c18141000892410200060125c1058fc005450", INIT_02 => X"0c08040000083c0048080c440840043c006000000800000801681360115c5854", INIT_03 => X"00080c000810121900082c2824201c1814100c08040000082c2824201c181410", INIT_04 => X"f4fe00fc80000004000200004021004011000802fb0400fe00000700ff214000", INIT_05 => X"02ff21213037020a0fff0721080000000800fc8000000000d020214000000800", INIT_06 => X"d00c210e009000121021000144c910da28080d0a212114181c2024d0210800f6", INIT_07 => X"440844000821d930081014181c202428210a440d4400d3a9111a9fed1abff10a", INIT_08 => X"4e00d04e00304e00c44e00a44e00109b14181c2024282c3034c802d7ff440820", INIT_09 => X"4e000000000000090002802100e04e00000cff1c00001001000050000000ffdc", INIT_0A => X"1c4e00f84e00ec4edc4ec44eb04e9c4e844e006c4e00544e003c4e00244e00f4", INIT_0B => X"4e00003f684e00214e00b100000800002180800000d416cf2100c20ad0210090", INIT_0C => X"4e00003f0009003e214e21b12100c4404e00007500003f00214e21b12100c440", INIT_0D => X"003f21fb002101902121218900c4504e00003f21fb014400212121219a00c450", INIT_0E => X"21211e00c4504e00003f0a44214e00b121fb21010021212121217600c4504e00", INIT_0F => X"3f604e0021f42b2044214e04b10021f00f210e2b2044214e04b10021604e0021", INIT_10 => X"001f783400c4644e00003f00090021f30190ff01fb008b000b21090010100000", INIT_11 => X"214e21b1cf69684e00214e21b1344e002100c4204e002144003f028f210021a3", INIT_12 => X"f8000d00000144210a5f21160000141810e000080021fc0200002000003f0a44", INIT_13 => X"445730020a0f06fc1c211c101418e020082110141800f500002144010000440d", INIT_14 => X"00f8d80000180800100000fd008b10e80108002000494420081014181c06f8fc", INIT_15 => X"726769000a6c6f74000034330032200064742020666e6584080000fb00210400", INIT_16 => X"0a6265724d00642072724d000a7765724d000a6f4f656500303020646967206e", INIT_17 => X"2043000a44000a6b43000a72726d520065726d52006561204a00652072724d00", INIT_18 => X"00203632746d6e00006569750065696c002072003e20736400000a6c7444724b", INIT_19 => X"000000101020000020705cf8f8f8f8f8f8f8f8f804f8f86000bc7868382cf8d0", INIT_1A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_1F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_20 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_21 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_22 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_23 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_24 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_25 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_26 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_27 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_28 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_29 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_2F => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_30 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_31 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_32 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_33 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_34 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_35 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_36 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_37 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_38 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_39 => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3A => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3B => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3C => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3D => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3E => X"0000000000000000000000000000000000000000000000000000000000000000", INIT_3F => X"0000000000000000000000000000000000000000000000000000000000000000") port map ( DO => data_read(7 downto 0), DOP => open, ADDR => address(12 downto 2), CLK => clk, DI => data_write(7 downto 0), DIP => ZERO(0 downto 0), EN => enable, SSR => ZERO(0), WE => write_byte_enable(0)); end; --architecture logic