]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
*** empty log message ***
authorhadeshyp <hadeshyp>
Mon, 12 Apr 2010 17:15:58 +0000 (17:15 +0000)
committerhadeshyp <hadeshyp>
Mon, 12 Apr 2010 17:15:58 +0000 (17:15 +0000)
64 files changed:
gbe_ecp2m/feeder.vhd [new file with mode: 0755]
gbe_ecp2m/ip_configurator.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/.cvsignore [new file with mode: 0644]
gbe_ecp2m/ipcores/fifo_2048x8.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_2048x8.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_4096x32.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_4096x32.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_4096x9.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_4096x9.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_64kx8.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_64kx8.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/ip_mem.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/ip_mem.mem [new file with mode: 0755]
gbe_ecp2m/ipcores/ip_mem.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/ip_mem_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/macInitDataInvWithMac.mem [new file with mode: 0755]
gbe_ecp2m/ipcores/mac_init_mem.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/mac_init_mem.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/serdes/.cvsignore [new file with mode: 0644]
gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt [new file with mode: 0755]
gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore [new file with mode: 0644]
gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo [new file with mode: 0755]
gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo [new file with mode: 0755]
gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar [new file with mode: 0644]
gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd [new file with mode: 0755]
gbe_ecp2m/ipcores/tsmac3/.cvsignore [new file with mode: 0644]
gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo [new file with mode: 0755]
gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn96649664.ngo [new file with mode: 0755]
gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar [new file with mode: 0644]
gbe_ecp2m/ipcores/tsmac3/tsmac3.lpc [new file with mode: 0755]
gbe_ecp2m/ipcores/tsmac3/tsmac3.ngo [new file with mode: 0755]
gbe_ecp2m/mb_mac_sim.vhd [new file with mode: 0755]
gbe_ecp2m/tb_feeder.vhd [new file with mode: 0755]
gbe_ecp2m/tb_gbe_buf.vhd [new file with mode: 0755]
gbe_ecp2m/tb_ip_configurator.vhd [new file with mode: 0755]
gbe_ecp2m/tb_ipu2gbe.vhd [new file with mode: 0755]
gbe_ecp2m/tb_lsm.vhd [new file with mode: 0755]
gbe_ecp2m/tb_pc.vhd [new file with mode: 0755]
gbe_ecp2m/tb_slv_mac_memory.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_gbe_buf.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_gbe_frame_constr.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_gbe_frame_trans.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_gbe_packet_constr.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_ipu2gbe.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd [new file with mode: 0755]
gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd [new file with mode: 0755]

diff --git a/gbe_ecp2m/feeder.vhd b/gbe_ecp2m/feeder.vhd
new file mode 100755 (executable)
index 0000000..57fb2c2
--- /dev/null
@@ -0,0 +1,620 @@
+LIBRARY ieee;\r
+use ieee.std_logic_1164.all;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+use IEEE.std_logic_arith.all;\r
+\r
+library work;\r
+\r
+entity feeder is\r
+port( CLK                                              : in    std_logic;\r
+         RESET                                         : in    std_logic;\r
+         -- IPU interface directed toward the CTS\r
+         CTS_NUMBER_IN                         : in    std_logic_vector (15 downto 0);\r
+         CTS_CODE_IN                           : in    std_logic_vector (7  downto 0);\r
+         CTS_INFORMATION_IN            : in    std_logic_vector (7  downto 0);\r
+         CTS_READOUT_TYPE_IN           : in    std_logic_vector (3  downto 0);\r
+         CTS_START_READOUT_IN          : in    std_logic;\r
+         CTS_READ_IN                           : in    std_logic;\r
+         CTS_DATA_OUT                          : out   std_logic_vector (31 downto 0);\r
+         CTS_DATAREADY_OUT                     : out   std_logic;\r
+         CTS_READOUT_FINISHED_OUT      : out   std_logic;      --no more data, end transfer, send TRM\r
+         CTS_LENGTH_OUT                        : out   std_logic_vector (15 downto 0);\r
+         CTS_ERROR_PATTERN_OUT         : out   std_logic_vector (31 downto 0);\r
+         -- Data from Frontends\r
+         FEE_DATA_IN                           : in    std_logic_vector (15 downto 0);\r
+         FEE_DATAREADY_IN                      : in    std_logic;\r
+         FEE_READ_OUT                          : out   std_logic;\r
+         FEE_BUSY_IN                           : in    std_logic;\r
+         FEE_STATUS_BITS_IN            : in    std_logic_vector (31 downto 0); \r
+         -- PacketConstructor interface\r
+         PC_WR_EN_OUT                          : out   std_logic;\r
+         PC_DATA_OUT                           : out   std_logic_vector (7 downto 0);\r
+         PC_READY_IN                           : in    std_logic;\r
+         PC_SOS_OUT                            : out   std_logic;\r
+         PC_EOD_OUT                            : out   std_logic;\r
+         PC_SUB_SIZE_OUT                       : out   std_logic_vector(31 downto 0);\r
+         PC_TRIG_NR_OUT                        : out   std_logic_vector(31 downto 0);\r
+         PC_PADDING_OUT                        : out   std_logic;\r
+         -- Debug\r
+         BSM_SAVE_OUT                          : out   std_logic_vector(3 downto 0);\r
+         BSM_LOAD_OUT                          : out   std_logic_vector(3 downto 0);\r
+         DBG_REM_CTR_OUT                       : out   std_logic_vector(3 downto 0);\r
+         DBG_CTS_CTR_OUT                       : out   std_logic_vector(2 downto 0);\r
+         DBG_SF_WCNT_OUT                       : out   std_logic_vector(15 downto 0);\r
+         DBG_SF_RCNT_OUT                       : out   std_logic_vector(16 downto 0);\r
+         DBG_SF_DATA_OUT                       : out   std_logic_vector(15 downto 0);\r
+         DBG_SF_RD_EN_OUT                      : out   std_logic;\r
+         DBG_SF_WR_EN_OUT                      : out   std_logic;\r
+         DBG_SF_EMPTY_OUT                      : out   std_logic;\r
+         DBG_SF_FULL_OUT                       : out   std_logic;\r
+         DBG_SF_AFULL_OUT                      : out   std_logic;\r
+         DEBUG_OUT                                     : out   std_logic_vector(31 downto 0)\r
+);\r
+end entity;\r
+\r
+architecture feeder of feeder is\r
+\r
+component fifo_32kx16x8_mb\r
+port( Data                             : in    std_logic_vector(15 downto 0); \r
+         WrClock                       : in    std_logic;\r
+         RdClock                       : in    std_logic; \r
+         WrEn                          : in    std_logic;\r
+         RdEn                          : in    std_logic;\r
+         Reset                         : in    std_logic; \r
+         RPReset                       : in    std_logic; \r
+         AmFullThresh          : in    std_logic_vector(14 downto 0); \r
+         Q                                     : out   std_logic_vector(7 downto 0); \r
+         WCNT                          : out   std_logic_vector(15 downto 0); \r
+         RCNT                          : out   std_logic_vector(16 downto 0);\r
+         Empty                         : out   std_logic; \r
+         Full                          : out   std_logic;\r
+         AlmostFull            : out   std_logic\r
+        );\r
+end component;\r
+\r
+type saveStates        is (SIDLE, WAIT_FOR_DATA, SAVE_DATA, TERMINATE, SCLOSE);\r
+signal saveCurrentState, saveNextState : saveStates;\r
+signal state                           : std_logic_vector(3 downto 0);\r
+signal data_req_comb           : std_logic;\r
+signal data_req                                : std_logic; -- request data signal, will be used for fee_read generation\r
+signal rst_saved_ctr_comb      : std_logic;\r
+signal rst_saved_ctr           : std_logic;\r
+\r
+signal fee_read_comb           : std_logic;\r
+signal fee_read                                : std_logic; -- fee_read signal\r
+signal saved_ctr                       : std_logic_vector(16 downto 0);\r
+signal ce_saved_ctr                    : std_logic;\r
+\r
+-- header data\r
+signal cts_rnd                         : std_logic_vector(15 downto 0);\r
+signal cts_rnd_saved           : std_logic;\r
+signal cts_trg                         : std_logic_vector(15 downto 0);\r
+signal cts_trg_saved           : std_logic;\r
+signal cts_len                         : std_logic_vector(16 downto 0);\r
+signal cts_len_saved           : std_logic;\r
+\r
+-- CTS interface\r
+signal cts_error_pattern       : std_logic_vector(31 downto 0);\r
+signal cts_length                      : std_logic_vector(15 downto 0);\r
+signal cts_readout_finished    : std_logic;\r
+signal cts_dataready           : std_logic;\r
+signal cts_data             : std_logic_vector(31 downto 0);\r
+\r
+-- Split FIFO signals\r
+signal sf_data                         : std_logic_vector(15 downto 0);\r
+signal sf_wr_en_comb           : std_logic;\r
+signal sf_wr_en                                : std_logic; -- write signal for FIFO\r
+signal sf_rd_en                                : std_logic;\r
+signal sf_wcnt                         : std_logic_vector(15 downto 0);\r
+signal sf_rcnt                         : std_logic_vector(16 downto 0);\r
+signal sf_empty                                : std_logic;\r
+signal sf_full                         : std_logic;\r
+signal sf_afull                                : std_logic;\r
+\r
+-------------------------------------------------------------------\r
+type loadStates is (LIDLE, INIT, REMOVE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, WAIT_PC, CLOSE);\r
+signal loadCurrentState, loadNextState : loadStates;\r
+signal state2                          :       std_logic_vector(3 downto 0);\r
+\r
+signal rem_ctr                         : std_logic_vector(3 downto 0); -- counter for stripping / storing header data\r
+signal rst_rem_ctr_comb                : std_logic;\r
+signal rst_rem_ctr                     : std_logic;\r
+signal rst_regs_comb           : std_logic;\r
+signal rst_regs                                : std_logic;\r
+signal ce_rem_ctr_comb         : std_logic;\r
+signal ce_rem_ctr                      : std_logic;\r
+signal remove_done_comb                : std_logic;\r
+signal remove_done                     : std_logic; -- end of header stripping process\r
+signal load_done_comb          : std_logic;\r
+signal load_done                       : std_logic; -- end of data transfer into PC\r
+signal calc_pad_comb           : std_logic;\r
+signal calc_pad                                : std_logic; -- add padding bytes, if needed\r
+signal read_data_comb          : std_logic;\r
+signal read_data                       : std_logic; -- fetch data from split fifo\r
+signal data_phase_comb         : std_logic;\r
+signal data_phase                      : std_logic; -- data transport phase from split fifo to PC\r
+signal pc_sos_comb                     : std_logic;\r
+signal pc_sos                          : std_logic; -- start of data signal\r
+signal pc_eod_comb                     : std_logic;\r
+signal pc_eod                          : std_logic; -- end of data signal\r
+signal pad_data_comb           : std_logic;\r
+signal pad_data                                : std_logic; -- insert padding bytes\r
+\r
+signal pc_data                         : std_logic_vector(7 downto 0);\r
+signal pc_data_q                       : std_logic_vector(7 downto 0);\r
+signal pc_trig_nr                      : std_logic_vector(15 downto 0);\r
+signal pc_sub_size                     : std_logic_vector(17 downto 0);\r
+signal read_size                       : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo\r
+signal padding_needed          : std_logic;\r
+signal pc_wr_en_q                      : std_logic;\r
+signal pc_wr_en_qq                     : std_logic;\r
+signal pc_eod_q                                : std_logic;\r
+\r
+signal debug                           : std_logic_vector(31 downto 0);\r
+\r
+begin\r
+\r
+-- CTS interface signals\r
+cts_error_pattern    <= (others => '0'); -- FAKE\r
+cts_dataready        <= '1'; -- FAKE\r
+\r
+cts_length           <= x"0000"; -- length of data payload is always 0\r
+cts_data             <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1'\r
+\r
+cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0';\r
+\r
+\r
+-- Sync all critical pathes\r
+THE_SYNC_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               sf_data     <= FEE_DATA_IN;\r
+               sf_wr_en    <= sf_wr_en_comb;\r
+               fee_read    <= fee_read_comb;\r
+               load_done   <= load_done_comb;\r
+               pc_eod_q    <= pc_eod;\r
+               pc_wr_en_qq <= pc_wr_en_q;\r
+               pc_wr_en_q  <= data_phase;\r
+       end if;\r
+end process THE_SYNC_PROC;\r
+\r
+-- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY\r
+fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') ) \r
+                                        else '0';\r
+\r
+-- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY\r
+sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') )\r
+                                        else '0';\r
+\r
+-- Counter for header word storage\r
+THE_CTS_SAVED_CTR: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       saved_ctr <= (others => '0');\r
+               elsif( ce_saved_ctr = '1' ) then\r
+                       saved_ctr <= saved_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process THE_CTS_SAVED_CTR;\r
+\r
+ce_saved_ctr <= sf_wr_en;\r
+\r
+-- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO\r
+saveMachineProc: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       saveCurrentState <= SIDLE;\r
+                       data_req         <= '0';\r
+                       rst_saved_ctr    <= '0';\r
+               else\r
+                       saveCurrentState <= saveNextState;\r
+                       data_req         <= data_req_comb;\r
+                       rst_saved_ctr    <= rst_saved_ctr_comb;\r
+               end if;\r
+       end if;\r
+end process saveMachineProc;\r
+\r
+saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN )\r
+begin\r
+       saveNextState      <= SIDLE;\r
+       data_req_comb      <= '0';\r
+       rst_saved_ctr_comb <= '0';\r
+       case saveCurrentState is\r
+               when SIDLE =>\r
+                       state <= x"0";\r
+                       if (CTS_START_READOUT_IN = '1') then\r
+                               saveNextState <= WAIT_FOR_DATA;\r
+                               data_req_comb <= '1';\r
+                               rst_saved_ctr_comb <= '1';\r
+                       else\r
+                               saveNextState <= SIDLE;\r
+                       end if;\r
+               when WAIT_FOR_DATA =>\r
+                       state <= x"1";\r
+                       if (FEE_BUSY_IN = '1') then\r
+                               saveNextState <= SAVE_DATA;\r
+                               data_req_comb <= '1';\r
+                       else\r
+                               saveNextState <= WAIT_FOR_DATA;\r
+                               data_req_comb <= '1';\r
+                       end if;\r
+               when SAVE_DATA =>\r
+                       state <= x"2";\r
+                       if (FEE_BUSY_IN = '0') then\r
+                               saveNextState <= TERMINATE;\r
+                       else\r
+                               saveNextState <= SAVE_DATA;\r
+                               data_req_comb <= '1';\r
+                       end if;\r
+               when TERMINATE =>\r
+                       state <= x"3";\r
+                       if (CTS_READ_IN = '1') then\r
+                               saveNextState <= SCLOSE;\r
+                       else\r
+                               saveNextState <= TERMINATE;\r
+                       end if;\r
+               when SCLOSE =>\r
+                       state <= x"4";\r
+                       if (CTS_START_READOUT_IN = '0') then\r
+                               saveNextState <= SIDLE;\r
+                       else\r
+                               saveNextState <= SCLOSE;\r
+                       end if;\r
+               when others =>\r
+                       state <= x"f";\r
+                       saveNextState <= SIDLE;\r
+       end case;\r
+end process saveMachine;\r
+\r
+-- save triggerRnd from incoming data for cts response\r
+CTS_RND_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       cts_rnd       <= (others => '0');\r
+                       cts_rnd_saved <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then\r
+                       cts_rnd       <= sf_data;\r
+                       cts_rnd_saved <= '1';\r
+               end if;\r
+       end if;\r
+end process CTS_RND_PROC;\r
+\r
+-- save triggerNr from incoming data for cts response\r
+CTS_TRG_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       cts_trg       <= (others => '0');\r
+                       cts_trg_saved <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then\r
+                       cts_trg       <= sf_data;\r
+                       cts_trg_saved <= '1';\r
+               end if;\r
+       end if;\r
+end process CTS_TRG_PROC;\r
+\r
+-- save size from incoming data for cts response (future) and to get rid of padding\r
+CTS_SIZE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       cts_len       <= (others => '0');\r
+                       cts_len_saved <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then\r
+                       cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words\r
+               elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then\r
+                       cts_len       <= cts_len + x"4";\r
+                       cts_len_saved <= '1';\r
+               end if;\r
+       end if;\r
+end process CTS_SIZE_PROC;\r
+\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+\r
+-- Split FIFO\r
+THE_SPLIT_FIFO: fifo_32kx16x8_mb\r
+port map( Data                         => sf_data,\r
+                 WrClock                       => CLK,\r
+                 RdClock                       => CLK, \r
+                 WrEn                          => sf_wr_en,\r
+                 RdEn                          => sf_rd_en,\r
+                 Reset                         => RESET, \r
+                 RPReset                       => RESET, \r
+                 AmFullThresh          => b"111_1111_1110_1111", -- 0x7fef = 32751\r
+                 Q                                     => pc_data, --open,\r
+                 WCNT                          => sf_wcnt,\r
+                 RCNT                          => sf_rcnt,\r
+                 Empty                         => sf_empty,\r
+                 Full                          => sf_full,\r
+                 AlmostFull            => sf_afull\r
+                );\r
+\r
+sf_rd_en <= read_data;\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+\r
+-- FIFO data delay process (also forces padding bytes to known value)\r
+THE_DATA_DELAY_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if( pad_data = '1' ) then\r
+                       pc_data_q <= x"ee";\r
+               else\r
+                       pc_data_q   <= pc_data;\r
+               end if;\r
+       end if;\r
+end process THE_DATA_DELAY_PROC;\r
+\r
+-- Statemachine for reading the data payload from the SPLIT_FIFO and feeding\r
+-- it into the packet constructor\r
+loadMachineProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       loadCurrentState <= LIDLE;\r
+                       rst_regs         <= '0';\r
+                       rst_rem_ctr      <= '0';\r
+                       ce_rem_ctr       <= '0';\r
+                       calc_pad         <= '0';\r
+                       read_data        <= '0';\r
+                       data_phase       <= '0';\r
+                       pc_sos           <= '0';\r
+                       pc_eod           <= '0';\r
+                       pad_data         <= '0';\r
+               else\r
+                       loadCurrentState <= loadNextState;\r
+                       rst_regs         <= rst_regs_comb;\r
+                       rst_rem_ctr      <= rst_rem_ctr_comb;\r
+                       ce_rem_ctr       <= ce_rem_ctr_comb;\r
+                       calc_pad         <= calc_pad_comb;\r
+                       read_data        <= read_data_comb;\r
+                       data_phase       <= data_phase_comb;\r
+                       pc_sos           <= pc_sos_comb;\r
+                       pc_eod           <= pc_eod_comb;\r
+                       pad_data         <= pad_data_comb;\r
+               end if;\r
+       end if;\r
+end process loadMachineProc;\r
+\r
+loadMachine : process( loadCurrentState, sf_empty, remove_done, load_done, padding_needed, PC_READY_IN )\r
+begin\r
+       loadNextState    <= LIDLE;\r
+       rst_regs_comb    <= '0';\r
+       rst_rem_ctr_comb <= '0';\r
+       ce_rem_ctr_comb  <= '0';\r
+       calc_pad_comb    <= '0';\r
+       read_data_comb   <= '0';\r
+       data_phase_comb  <= '0';\r
+       pc_sos_comb      <= '0';\r
+       pc_eod_comb      <= '0';\r
+       pad_data_comb    <= '0';\r
+       case loadCurrentState is\r
+               when LIDLE =>\r
+                       state2 <= x"0";\r
+                       if( (sf_empty = '0') and (PC_READY_IN = '1') ) then\r
+                               loadNextState <= INIT;\r
+                               rst_regs_comb <= '1';\r
+                               rst_rem_ctr_comb <= '1';\r
+                       else\r
+                               loadNextState <= LIDLE;\r
+                       end if;\r
+               when INIT =>\r
+                       state2 <= x"1";\r
+                       loadNextState <= REMOVE;\r
+                       ce_rem_ctr_comb <= '1';\r
+                       read_data_comb <= '1';\r
+               when REMOVE =>\r
+                       state2 <= x"2";\r
+                       if( remove_done = '1' ) then\r
+                               loadNextState <= CALCA;\r
+                               calc_pad_comb <= '1';\r
+                       else\r
+                               loadNextState <= REMOVE;\r
+                               ce_rem_ctr_comb <= '1';\r
+                               read_data_comb <= '1';\r
+                       end if;\r
+               when CALCA =>\r
+                       state2 <= x"3";\r
+                       loadNextState <= CALCB;\r
+               when CALCB =>\r
+                       -- we need a branch in case of length "0"!!!!\r
+                       state2 <= x"4";\r
+                       loadNextState <= LOAD;\r
+                       read_data_comb <= '1';\r
+                       data_phase_comb <= '1';\r
+                       pc_sos_comb <= '1';\r
+               when LOAD =>\r
+                       state2 <= x"5";\r
+                       if   ( (load_done = '1') and (padding_needed = '0') ) then\r
+                               loadNextState <= CLOSE;\r
+                       elsif( (load_done = '1') and (padding_needed = '1') ) then\r
+                               loadNextState <= PAD0;\r
+                               data_phase_comb <= '1';\r
+                       else\r
+                               loadNextState <= LOAD;\r
+                               read_data_comb <= '1';\r
+                               data_phase_comb <= '1';\r
+                       end if;\r
+               when PAD0 =>\r
+                       state2 <= x"5";\r
+                       loadNextState <= PAD1;\r
+                       data_phase_comb <= '1';\r
+                       pad_data_comb <= '1';\r
+               when PAD1 =>\r
+                       state2 <= x"6";\r
+                       loadNextState <= PAD2;\r
+                       data_phase_comb <= '1';\r
+                       pad_data_comb <= '1';\r
+               when PAD2 =>\r
+                       state2 <= x"7";\r
+                       loadNextState <= PAD3;\r
+                       data_phase_comb <= '1';\r
+                       pad_data_comb <= '1';\r
+               when PAD3 =>\r
+                       state2 <= x"8";\r
+                       loadNextState <= CLOSE;\r
+                       pad_data_comb <= '1';\r
+               when CLOSE =>\r
+                       state2 <= x"9";\r
+                       loadNextState <= WAIT_PC;\r
+                       pc_eod_comb <= '1';\r
+               when WAIT_PC =>\r
+                       state2 <= x"a";\r
+                       if( PC_READY_IN = '1' ) then\r
+                               loadNextState <= LIDLE;\r
+                               rst_rem_ctr_comb <= '1';\r
+                               rst_regs_comb <= '1';\r
+                       else\r
+                               loadNextState <= WAIT_PC;\r
+                       end if;\r
+               when others =>\r
+                       state2 <= x"f";\r
+                       loadNextState <= LIDLE;\r
+       end case;\r
+end process loadMachine;\r
+\r
+-- Counter for stripping the unneeded parts of the data stream, and saving the important parts\r
+THE_REMOVE_CTR: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_rem_ctr = '1') ) then\r
+                       rem_ctr <= (others => '0');\r
+               elsif( ce_rem_ctr = '1' ) then\r
+                       rem_ctr <= rem_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process THE_REMOVE_CTR;\r
+\r
+remove_done_comb <= '1' when ( rem_ctr = x"6" ) else '0';\r
+\r
+THE_REM_DONE_SYNC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_rem_ctr = '1') ) then\r
+                       remove_done <= '0';\r
+               else\r
+                       remove_done <= remove_done_comb;\r
+               end if;\r
+       end if;\r
+end process THE_REM_DONE_SYNC;\r
+\r
+-- extract the trigger number from splitfifo data\r
+THE_TRG_NR_PROC: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then\r
+                       pc_trig_nr <= (others => '0');\r
+               elsif( (ce_rem_ctr = '1') and (rem_ctr = x"3") ) then\r
+                       pc_trig_nr(7 downto 0) <= pc_data;\r
+               elsif( (ce_rem_ctr = '1') and (rem_ctr = x"4") ) then\r
+                       pc_trig_nr(15 downto 8) <= pc_data;\r
+               end if;\r
+       end if;\r
+end process THE_TRG_NR_PROC;\r
+\r
+-- check for padding\r
+THE_PADDING_NEEDED_PROC: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then\r
+                       padding_needed <= '0';\r
+               elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then\r
+                       padding_needed <= '1';\r
+               elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then\r
+                       padding_needed <= '0';\r
+               end if;\r
+       end if;\r
+end process THE_PADDING_NEEDED_PROC;\r
+\r
+-- extract the subevent size from the splitfifo data, convert it from 32b to 8b units,\r
+-- and in case of padding needed increase it accordingly\r
+THE_SUB_SIZE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then\r
+                       pc_sub_size <= (others => '0');\r
+               elsif( (ce_rem_ctr = '1') and (rem_ctr = x"5") ) then\r
+                       pc_sub_size(9 downto 2) <= pc_data;\r
+               elsif( (ce_rem_ctr = '1') and (rem_ctr = x"6") ) then\r
+                       pc_sub_size(17 downto 10) <= pc_data;\r
+               elsif( (calc_pad = '1') and (padding_needed = '1') ) then\r
+                       pc_sub_size <= pc_sub_size + 4;\r
+               end if;\r
+       end if;\r
+end process THE_SUB_SIZE_PROC;\r
+\r
+-- number of bytes to read from split fifo\r
+THE_READ_SIZE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_rem_ctr = '1') ) then\r
+                       read_size   <= (others => '0');\r
+               elsif( (ce_rem_ctr = '1') and (rem_ctr = x"5") ) then\r
+                       read_size(9 downto 2) <= pc_data;\r
+               elsif( (ce_rem_ctr = '1') and (rem_ctr = x"6") ) then\r
+                       read_size(17 downto 10) <= pc_data;\r
+               elsif( ((calc_pad = '1') and (load_done = '0')) ) then\r
+                       read_size <= read_size - 2;\r
+               elsif( ((read_data = '1') and (data_phase = '1')) ) then\r
+                       read_size <= read_size - 1;\r
+               end if;\r
+       end if;\r
+end process THE_READ_SIZE_PROC;\r
+\r
+load_done_comb <= '1' when (read_size = 0) else '0';\r
+\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+\r
+-- Debug signals\r
+debug(31)           <= remove_done;\r
+debug(30)           <= load_done;\r
+debug(29)           <= ce_rem_ctr;\r
+debug(28)           <= rst_rem_ctr;\r
+debug(27)           <= rst_regs;\r
+debug(26)           <= data_phase;\r
+debug(25)           <= read_data;\r
+debug(24)           <= pad_data;\r
+debug(23 downto 18) <= (others => '0');\r
+debug(17 downto 0)  <= read_size;\r
+\r
+-- Outputs\r
+FEE_READ_OUT             <= fee_read;\r
+CTS_ERROR_PATTERN_OUT    <= cts_error_pattern;\r
+CTS_DATA_OUT             <= cts_data;\r
+CTS_DATAREADY_OUT        <= cts_dataready;\r
+CTS_READOUT_FINISHED_OUT <= cts_readout_finished;\r
+CTS_LENGTH_OUT           <= cts_length;\r
+\r
+PC_SOS_OUT               <= pc_sos;\r
+PC_EOD_OUT               <= pc_eod_q;\r
+PC_DATA_OUT              <= pc_data_q;\r
+PC_WR_EN_OUT             <= pc_wr_en_qq;\r
+PC_TRIG_NR_OUT           <= x"0000" & pc_trig_nr;\r
+PC_SUB_SIZE_OUT          <= b"0000_0000_0000_00" & pc_sub_size;\r
+PC_PADDING_OUT           <= padding_needed;\r
+\r
+BSM_SAVE_OUT             <= state;\r
+BSM_LOAD_OUT             <= state2;\r
+DBG_CTS_CTR_OUT          <= saved_ctr(2 downto 0);\r
+DBG_REM_CTR_OUT          <= rem_ctr;\r
+DBG_SF_DATA_OUT          <= sf_data;\r
+DBG_SF_WCNT_OUT          <= sf_wcnt;\r
+DBG_SF_RCNT_OUT          <= sf_rcnt;\r
+DBG_SF_RD_EN_OUT         <= sf_rd_en;\r
+DBG_SF_WR_EN_OUT         <= sf_wr_en;\r
+DBG_SF_EMPTY_OUT         <= sf_empty;\r
+DBG_SF_FULL_OUT          <= sf_full;\r
+DBG_SF_AFULL_OUT         <= sf_afull;\r
+\r
+DEBUG_OUT                <= debug;\r
+\r
+end architecture;
\ No newline at end of file
diff --git a/gbe_ecp2m/ip_configurator.vhd b/gbe_ecp2m/ip_configurator.vhd
new file mode 100755 (executable)
index 0000000..887f562
--- /dev/null
@@ -0,0 +1,337 @@
+LIBRARY ieee;\r
+use ieee.std_logic_1164.all;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+use IEEE.std_logic_arith.all;\r
+\r
+library work;\r
+\r
+entity ip_configurator is\r
+port( \r
+       CLK                                                     : in    std_logic;\r
+       RESET                                           : in    std_logic;\r
+       -- configuration interface\r
+       START_CONFIG_IN                         : in    std_logic; -- start configuration run\r
+       BANK_SELECT_IN                          : in    std_logic_vector(3 downto 0); -- selects config bank \r
+       CONFIG_DONE_OUT                         : out   std_logic; -- configuration run ended, new values can be used\r
+       MEM_ADDR_OUT                            : out   std_logic_vector(7 downto 0); -- address for\r
+       MEM_DATA_IN                                     : in    std_logic_vector(31 downto 0); -- data from IP memory\r
+       MEM_CLK_OUT                                     : out   std_logic; -- clock for BlockRAM\r
+       -- information for IP cores\r
+       DEST_MAC_OUT                            : out   std_logic_vector(47 downto 0); -- destination MAC address\r
+       DEST_IP_OUT                                     : out   std_logic_vector(31 downto 0); -- destination IP address\r
+       DEST_UDP_OUT                            : out   std_logic_vector(15 downto 0); -- destination port\r
+       SRC_MAC_OUT                                     : out   std_logic_vector(47 downto 0); -- source MAC address\r
+       SRC_IP_OUT                                      : out   std_logic_vector(31 downto 0); -- source IP address\r
+       SRC_UDP_OUT                                     : out   std_logic_vector(15 downto 0); -- source port\r
+       MTU_OUT                                         : out   std_logic_vector(15 downto 0); -- MTU size (max frame size)\r
+       -- Debug\r
+       DEBUG_OUT                                       : out   std_logic_vector(31 downto 0)\r
+);\r
+end entity;\r
+\r
+architecture ip_configurator of ip_configurator is\r
+\r
+type STATES    is (IDLE, LOAD_REG, DELAY0, DELAY1, DELAY2, LOAD_DONE);\r
+signal CURRENT_STATE, NEXT_STATE : STATES;\r
+signal bsm                                     : std_logic_vector(3 downto 0);\r
+signal ce_ctr_comb                     : std_logic;\r
+signal ce_ctr                          : std_logic;\r
+signal rst_ctr_comb                    : std_logic;\r
+signal rst_ctr                         : std_logic;\r
+signal cfg_done_comb           : std_logic;\r
+signal cfg_done                                : std_logic;\r
+\r
+signal ctr_done_comb           : std_logic;\r
+signal ctr_done                                : std_logic;\r
+\r
+signal wr_select_comb          : std_logic_vector(15 downto 0);\r
+signal wr_select                       : std_logic_vector(15 downto 0);\r
+signal wr_select_q                     : std_logic_vector(15 downto 0);\r
+\r
+signal addr_ctr                                : std_logic_vector(3 downto 0);\r
+signal dest_mac                                : std_logic_vector(47 downto 0);\r
+signal dest_ip                         : std_logic_vector(31 downto 0);\r
+signal dest_udp                                : std_logic_vector(15 downto 0);\r
+signal src_mac                         : std_logic_vector(47 downto 0);\r
+signal src_ip                          : std_logic_vector(31 downto 0);\r
+signal src_udp                         : std_logic_vector(15 downto 0);\r
+signal mtu                                     : std_logic_vector(15 downto 0);\r
+\r
+signal debug                           : std_logic_vector(31 downto 0);\r
+\r
+begin\r
+\r
+\r
+-- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO\r
+STATE_MACHINE_PROC: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       CURRENT_STATE <= IDLE;\r
+                       ce_ctr        <= '0';\r
+                       rst_ctr       <= '0';\r
+                       cfg_done      <= '0';\r
+               else\r
+                       CURRENT_STATE <= NEXT_STATE;\r
+                       ce_ctr        <= ce_ctr_comb;\r
+                       rst_ctr       <= rst_ctr_comb;\r
+                       cfg_done      <= cfg_done_comb;\r
+               end if;\r
+       end if;\r
+end process STATE_MACHINE_PROC;\r
+\r
+STATE_MACHINE_TRANS: process( CURRENT_STATE, START_CONFIG_IN, ctr_done )\r
+begin\r
+       NEXT_STATE <= IDLE;\r
+       ce_ctr_comb <= '0';\r
+       rst_ctr_comb <= '0';\r
+       cfg_done_comb <= '0';\r
+       case CURRENT_STATE is\r
+               when IDLE =>\r
+                       bsm <= x"0";\r
+                       if( START_CONFIG_IN = '1' ) then\r
+                               NEXT_STATE <= LOAD_REG;\r
+                               ce_ctr_comb <= '1';\r
+                       else\r
+                               NEXT_STATE <= IDLE;\r
+                       end if;\r
+               when LOAD_REG =>\r
+                       bsm <= x"1";\r
+                       if( ctr_done = '1' ) then\r
+                               NEXT_STATE <= DELAY0;\r
+                               rst_ctr_comb <= '1';\r
+                       else\r
+                               NEXT_STATE <= LOAD_REG;\r
+                               ce_ctr_comb <= '1';\r
+                       end if;\r
+               when DELAY0 =>\r
+                       bsm <= x"2";\r
+                       NEXT_STATE <= DELAY1;\r
+               when DELAY1 =>\r
+                       bsm <= x"3";\r
+                       NEXT_STATE <= DELAY2;\r
+               when DELAY2 =>\r
+                       bsm <= x"4";\r
+                       NEXT_STATE <= LOAD_DONE;\r
+                       cfg_done_comb <= '1';\r
+               when LOAD_DONE =>\r
+                       bsm <= x"2";\r
+                       if( START_CONFIG_IN = '0' ) then\r
+                               NEXT_STATE <= IDLE;\r
+                       else\r
+                               NEXT_STATE <= LOAD_DONE;\r
+                               cfg_done_comb <= '1';\r
+                       end if;\r
+               when others =>\r
+                       bsm <= x"f";\r
+                       NEXT_STATE <= IDLE;\r
+       end case;\r
+end process STATE_MACHINE_TRANS;\r
+\r
+-- address counter\r
+THE_ADDR_CTR_PROC: process( CLK )\r
+begin\r
+       if ( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_ctr = '1') ) then\r
+                       addr_ctr <= (others => '0');\r
+               elsif( ce_ctr = '1' ) then\r
+                       addr_ctr <= addr_ctr + 1;\r
+               end if; \r
+       end if;\r
+end process THE_ADDR_CTR_PROC;\r
+\r
+ctr_done_comb <= '1' when (addr_ctr = x"e") else '0';\r
+\r
+THE_SYNC_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               ctr_done    <= ctr_done_comb;\r
+               wr_select_q <= wr_select;\r
+               wr_select   <= wr_select_comb;\r
+       end if;\r
+end process THE_SYNC_PROC;\r
+\r
+-- generate combinatorial write select signals, register and delay the (output registers in EBR!)\r
+wr_select_comb(0)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"0") ) else '0'; -- dest MAC low\r
+wr_select_comb(1)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"1") ) else '0'; -- dest MAC high\r
+wr_select_comb(2)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"2") ) else '0'; -- dest IP \r
+wr_select_comb(3)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"3") ) else '0'; -- dest port\r
+wr_select_comb(4)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"4") ) else '0'; -- src MAC low\r
+wr_select_comb(5)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"5") ) else '0'; -- src MAC high\r
+wr_select_comb(6)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"6") ) else '0'; -- src IP\r
+wr_select_comb(7)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"7") ) else '0'; -- src port\r
+wr_select_comb(8)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"8") ) else '0'; -- MTU\r
+wr_select_comb(9)  <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"9") ) else '0';\r
+wr_select_comb(10) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"a") ) else '0';\r
+wr_select_comb(11) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"b") ) else '0';\r
+wr_select_comb(12) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"c") ) else '0';\r
+wr_select_comb(13) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"d") ) else '0';\r
+wr_select_comb(14) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"e") ) else '0';\r
+wr_select_comb(15) <= '1' when ( (ce_ctr = '1') and (addr_ctr = x"f") ) else '0';\r
+\r
+-- destination MAC low register\r
+THE_D_MAC_LOW_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       dest_mac(31 downto 0) <= (others => '0');\r
+               elsif( wr_select_q(0) = '1') then\r
+                       dest_mac(31 downto 0) <= mem_data_in;\r
+               end if;\r
+       end if;\r
+end process THE_D_MAC_LOW_PROC;\r
+\r
+-- destination MAC high register\r
+THE_D_MAC_HIGH_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       dest_mac(47 downto 32) <= (others => '0');\r
+               elsif( wr_select_q(1) = '1') then\r
+                       dest_mac(47 downto 32) <= mem_data_in(15 downto 0);\r
+               end if;\r
+       end if;\r
+end process THE_D_MAC_HIGH_PROC;\r
+\r
+-- destination IP register\r
+THE_D_IP_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       dest_ip <= (others => '0');\r
+               elsif( wr_select_q(2) = '1') then\r
+                       dest_ip <= mem_data_in;\r
+               end if;\r
+       end if;\r
+end process THE_D_IP_PROC;\r
+\r
+-- destination PORT register\r
+THE_D_PORT_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       dest_udp <= (others => '0');\r
+               elsif( wr_select_q(3) = '1') then\r
+                       dest_udp <= mem_data_in(15 downto 0);\r
+               end if;\r
+       end if;\r
+end process THE_D_PORT_PROC;\r
+\r
+-- source MAC low register\r
+THE_S_MAC_LOW_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       src_mac(31 downto 0) <= (others => '0');\r
+               elsif( wr_select_q(4) = '1') then\r
+                       src_mac(31 downto 0) <= mem_data_in;\r
+               end if;\r
+       end if;\r
+end process THE_S_MAC_LOW_PROC;\r
+\r
+-- source MAC high register\r
+THE_S_MAC_HIGH_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       src_mac(47 downto 32) <= (others => '0');\r
+               elsif( wr_select_q(5) = '1') then\r
+                       src_mac(47 downto 32) <= mem_data_in(15 downto 0);\r
+               end if;\r
+       end if;\r
+end process THE_S_MAC_HIGH_PROC;\r
+\r
+-- source IP register\r
+THE_S_IP_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       src_ip <= (others => '0');\r
+               elsif( wr_select_q(6) = '1') then\r
+                       src_ip <= mem_data_in;\r
+               end if;\r
+       end if;\r
+end process THE_S_IP_PROC;\r
+\r
+-- source PORT register\r
+THE_S_PORT_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       src_udp <= (others => '0');\r
+               elsif( wr_select_q(7) = '1') then\r
+                       src_udp <= mem_data_in(15 downto 0);\r
+               end if;\r
+       end if;\r
+end process THE_S_PORT_PROC;\r
+\r
+-- MTU size register\r
+THE_MTU_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( RESET = '1' ) then\r
+                       mtu <= (others => '0');\r
+               elsif( wr_select_q(8) = '1') then\r
+                       mtu <= mem_data_in(15 downto 0);\r
+               end if;\r
+       end if;\r
+end process THE_MTU_PROC;\r
+\r
+\r
+-- Debug signals\r
+debug(31 downto 12) <= (others => '0');\r
+debug(11 downto 8)  <= addr_ctr;\r
+debug(7)            <= '0';\r
+debug(6)            <= ctr_done;\r
+debug(5)            <= ce_ctr;\r
+debug(4)            <= rst_ctr;\r
+debug(3 downto 0)   <= bsm;\r
+-- Outputs\r
+MEM_ADDR_OUT(7 downto 4) <= BANK_SELECT_IN;\r
+MEM_ADDR_OUT(3 downto 0) <= addr_ctr;\r
+MEM_CLK_OUT              <= CLK;\r
+CONFIG_DONE_OUT          <= cfg_done;\r
+\r
+-- destination MAC address - swap for user convinience\r
+DEST_MAC_OUT(47 downto 40) <= dest_mac(7 downto 0);\r
+DEST_MAC_OUT(39 downto 32) <= dest_mac(15 downto 8);\r
+DEST_MAC_OUT(31 downto 24) <= dest_mac(23 downto 16);\r
+DEST_MAC_OUT(23 downto 16) <= dest_mac(31 downto 24);\r
+DEST_MAC_OUT(15 downto 8)  <= dest_mac(39 downto 32);\r
+DEST_MAC_OUT(7 downto 0)   <= dest_mac(47 downto 40);\r
+\r
+-- destination IP address - swap for user convinience\r
+DEST_IP_OUT(31 downto 24)  <= dest_ip(7 downto 0);\r
+DEST_IP_OUT(23 downto 16)  <= dest_ip(15 downto 8);\r
+DEST_IP_OUT(15 downto 8)   <= dest_ip(23 downto 16);\r
+DEST_IP_OUT(7 downto 0)    <= dest_ip(31 downto 24);\r
+\r
+-- destination port address - swap for user convinience\r
+DEST_UDP_OUT(15 downto 8)  <= dest_udp(7 downto 0);\r
+DEST_UDP_OUT(7 downto 0)   <= dest_udp(15 downto 8);\r
+\r
+-- source MAC address - swap for user convinience\r
+SRC_MAC_OUT(47 downto 40)  <= src_mac(7 downto 0);\r
+SRC_MAC_OUT(39 downto 32)  <= src_mac(15 downto 8);\r
+SRC_MAC_OUT(31 downto 24)  <= src_mac(23 downto 16);\r
+SRC_MAC_OUT(23 downto 16)  <= src_mac(31 downto 24);\r
+SRC_MAC_OUT(15 downto 8)   <= src_mac(39 downto 32);\r
+SRC_MAC_OUT(7 downto 0)    <= src_mac(47 downto 40);\r
+\r
+-- source IP address - swap for user convinience\r
+SRC_IP_OUT(31 downto 24)   <= src_ip(7 downto 0);\r
+SRC_IP_OUT(23 downto 16)   <= src_ip(15 downto 8);\r
+SRC_IP_OUT(15 downto 8)    <= src_ip(23 downto 16);\r
+SRC_IP_OUT(7 downto 0)     <= src_ip(31 downto 24);\r
+\r
+-- source port address - swap for user convinience\r
+SRC_UDP_OUT(15 downto 8)   <= src_udp(7 downto 0);\r
+SRC_UDP_OUT(7 downto 0)    <= src_udp(15 downto 8);\r
+\r
+-- DO NOT SWAP!\r
+MTU_OUT                  <= mtu;\r
+\r
+DEBUG_OUT  <= debug;\r
+\r
+end architecture;
\ No newline at end of file
diff --git a/gbe_ecp2m/ipcores/.cvsignore b/gbe_ecp2m/ipcores/.cvsignore
new file mode 100644 (file)
index 0000000..25a5568
--- /dev/null
@@ -0,0 +1,6 @@
+*.jhd
+*.naf
+*.srp
+*.sym
+*.log
+*tmpl.vhd
diff --git a/gbe_ecp2m/ipcores/fifo_2048x8.lpc b/gbe_ecp2m/ipcores/fifo_2048x8.lpc
new file mode 100755 (executable)
index 0000000..542bbe2
--- /dev/null
@@ -0,0 +1,47 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-5F900C\r
+SpeedGrade=-5\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=FIFO_DC\r
+CoreRevision=5.2\r
+ModuleName=fifo_2048x8\r
+SourceFormat=VHDL\r
+ParameterFileVersion=1.0\r
+Date=12/26/2009\r
+Time=00:12:59\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+FIFOImp=EBR Based\r
+Depth=2048\r
+Width=8\r
+RDepth=2048\r
+RWidth=8\r
+regout=0\r
+CtrlByRdEn=0\r
+EmpFlg=0\r
+PeMode=Static - Dual Threshold\r
+PeAssert=10\r
+PeDeassert=12\r
+FullFlg=0\r
+PfMode=Static - Dual Threshold\r
+PfAssert=508\r
+PfDeassert=506\r
+RDataCount=0\r
+WDataCount=0\r
+EnECC=0\r
diff --git a/gbe_ecp2m/ipcores/fifo_2048x8.vhd b/gbe_ecp2m/ipcores/fifo_2048x8.vhd
new file mode 100755 (executable)
index 0000000..2b75855
--- /dev/null
@@ -0,0 +1,1913 @@
+-- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.2\r
+--/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 2048 -width 8 -depth 2048 -rdata_width 8 -no_enable -pe -1 -pf -1 -e \r
+\r
+-- Sat Dec 26 00:12:59 2009\r
+\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+-- synopsys translate_off\r
+library ecp2m;\r
+use ecp2m.components.all;\r
+-- synopsys translate_on\r
+\r
+entity fifo_2048x8 is\r
+    port (\r
+        Data: in  std_logic_vector(7 downto 0); \r
+        WrClock: in  std_logic; \r
+        RdClock: in  std_logic; \r
+        WrEn: in  std_logic; \r
+        RdEn: in  std_logic; \r
+        Reset: in  std_logic; \r
+        RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(7 downto 0); \r
+        Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end fifo_2048x8;\r
+\r
+architecture Structure of fifo_2048x8 is\r
+\r
+    -- internal signal declarations\r
+    signal invout_1: std_logic;\r
+    signal invout_0: std_logic;\r
+    signal w_g2b_xor_cluster_2_1: std_logic;\r
+    signal w_g2b_xor_cluster_2: std_logic;\r
+    signal w_g2b_xor_cluster_1: std_logic;\r
+    signal r_g2b_xor_cluster_2_1: std_logic;\r
+    signal r_g2b_xor_cluster_2: std_logic;\r
+    signal r_g2b_xor_cluster_1: std_logic;\r
+    signal w_gdata_0: std_logic;\r
+    signal w_gdata_1: std_logic;\r
+    signal w_gdata_2: std_logic;\r
+    signal w_gdata_3: std_logic;\r
+    signal w_gdata_4: std_logic;\r
+    signal w_gdata_5: std_logic;\r
+    signal w_gdata_6: std_logic;\r
+    signal w_gdata_7: std_logic;\r
+    signal w_gdata_8: std_logic;\r
+    signal w_gdata_9: std_logic;\r
+    signal w_gdata_10: std_logic;\r
+    signal wptr_0: std_logic;\r
+    signal wptr_1: std_logic;\r
+    signal wptr_2: std_logic;\r
+    signal wptr_3: std_logic;\r
+    signal wptr_4: std_logic;\r
+    signal wptr_5: std_logic;\r
+    signal wptr_6: std_logic;\r
+    signal wptr_7: std_logic;\r
+    signal wptr_8: std_logic;\r
+    signal wptr_9: std_logic;\r
+    signal wptr_10: std_logic;\r
+    signal wptr_11: std_logic;\r
+    signal r_gdata_0: std_logic;\r
+    signal r_gdata_1: std_logic;\r
+    signal r_gdata_2: std_logic;\r
+    signal r_gdata_3: std_logic;\r
+    signal r_gdata_4: std_logic;\r
+    signal r_gdata_5: std_logic;\r
+    signal r_gdata_6: std_logic;\r
+    signal r_gdata_7: std_logic;\r
+    signal r_gdata_8: std_logic;\r
+    signal r_gdata_9: std_logic;\r
+    signal r_gdata_10: std_logic;\r
+    signal rptr_0: std_logic;\r
+    signal rptr_1: std_logic;\r
+    signal rptr_2: std_logic;\r
+    signal rptr_3: std_logic;\r
+    signal rptr_4: std_logic;\r
+    signal rptr_5: std_logic;\r
+    signal rptr_6: std_logic;\r
+    signal rptr_7: std_logic;\r
+    signal rptr_8: std_logic;\r
+    signal rptr_9: std_logic;\r
+    signal rptr_10: std_logic;\r
+    signal rptr_11: std_logic;\r
+    signal w_gcount_0: std_logic;\r
+    signal w_gcount_1: std_logic;\r
+    signal w_gcount_2: std_logic;\r
+    signal w_gcount_3: std_logic;\r
+    signal w_gcount_4: std_logic;\r
+    signal w_gcount_5: std_logic;\r
+    signal w_gcount_6: std_logic;\r
+    signal w_gcount_7: std_logic;\r
+    signal w_gcount_8: std_logic;\r
+    signal w_gcount_9: std_logic;\r
+    signal w_gcount_10: std_logic;\r
+    signal w_gcount_11: std_logic;\r
+    signal r_gcount_0: std_logic;\r
+    signal r_gcount_1: std_logic;\r
+    signal r_gcount_2: std_logic;\r
+    signal r_gcount_3: std_logic;\r
+    signal r_gcount_4: std_logic;\r
+    signal r_gcount_5: std_logic;\r
+    signal r_gcount_6: std_logic;\r
+    signal r_gcount_7: std_logic;\r
+    signal r_gcount_8: std_logic;\r
+    signal r_gcount_9: std_logic;\r
+    signal r_gcount_10: std_logic;\r
+    signal r_gcount_11: std_logic;\r
+    signal w_gcount_r20: std_logic;\r
+    signal w_gcount_r0: std_logic;\r
+    signal w_gcount_r21: std_logic;\r
+    signal w_gcount_r1: std_logic;\r
+    signal w_gcount_r22: std_logic;\r
+    signal w_gcount_r2: std_logic;\r
+    signal w_gcount_r23: std_logic;\r
+    signal w_gcount_r3: std_logic;\r
+    signal w_gcount_r24: std_logic;\r
+    signal w_gcount_r4: std_logic;\r
+    signal w_gcount_r25: std_logic;\r
+    signal w_gcount_r5: std_logic;\r
+    signal w_gcount_r26: std_logic;\r
+    signal w_gcount_r6: std_logic;\r
+    signal w_gcount_r27: std_logic;\r
+    signal w_gcount_r7: std_logic;\r
+    signal w_gcount_r28: std_logic;\r
+    signal w_gcount_r8: std_logic;\r
+    signal w_gcount_r29: std_logic;\r
+    signal w_gcount_r9: std_logic;\r
+    signal w_gcount_r210: std_logic;\r
+    signal w_gcount_r10: std_logic;\r
+    signal w_gcount_r211: std_logic;\r
+    signal w_gcount_r11: std_logic;\r
+    signal r_gcount_w20: std_logic;\r
+    signal r_gcount_w0: std_logic;\r
+    signal r_gcount_w21: std_logic;\r
+    signal r_gcount_w1: std_logic;\r
+    signal r_gcount_w22: std_logic;\r
+    signal r_gcount_w2: std_logic;\r
+    signal r_gcount_w23: std_logic;\r
+    signal r_gcount_w3: std_logic;\r
+    signal r_gcount_w24: std_logic;\r
+    signal r_gcount_w4: std_logic;\r
+    signal r_gcount_w25: std_logic;\r
+    signal r_gcount_w5: std_logic;\r
+    signal r_gcount_w26: std_logic;\r
+    signal r_gcount_w6: std_logic;\r
+    signal r_gcount_w27: std_logic;\r
+    signal r_gcount_w7: std_logic;\r
+    signal r_gcount_w28: std_logic;\r
+    signal r_gcount_w8: std_logic;\r
+    signal r_gcount_w29: std_logic;\r
+    signal r_gcount_w9: std_logic;\r
+    signal r_gcount_w210: std_logic;\r
+    signal r_gcount_w10: std_logic;\r
+    signal r_gcount_w211: std_logic;\r
+    signal r_gcount_w11: std_logic;\r
+    signal empty_i: std_logic;\r
+    signal rRst: std_logic;\r
+    signal full_i: std_logic;\r
+    signal iwcount_0: std_logic;\r
+    signal iwcount_1: std_logic;\r
+    signal w_gctr_ci: std_logic;\r
+    signal iwcount_2: std_logic;\r
+    signal iwcount_3: std_logic;\r
+    signal co0: std_logic;\r
+    signal iwcount_4: std_logic;\r
+    signal iwcount_5: std_logic;\r
+    signal co1: std_logic;\r
+    signal iwcount_6: std_logic;\r
+    signal iwcount_7: std_logic;\r
+    signal co2: std_logic;\r
+    signal iwcount_8: std_logic;\r
+    signal iwcount_9: std_logic;\r
+    signal co3: std_logic;\r
+    signal iwcount_10: std_logic;\r
+    signal iwcount_11: std_logic;\r
+    signal co5: std_logic;\r
+    signal wcount_11: std_logic;\r
+    signal co4: std_logic;\r
+    signal scuba_vhi: std_logic;\r
+    signal ircount_0: std_logic;\r
+    signal ircount_1: std_logic;\r
+    signal r_gctr_ci: std_logic;\r
+    signal ircount_2: std_logic;\r
+    signal ircount_3: std_logic;\r
+    signal co0_1: std_logic;\r
+    signal ircount_4: std_logic;\r
+    signal ircount_5: std_logic;\r
+    signal co1_1: std_logic;\r
+    signal ircount_6: std_logic;\r
+    signal ircount_7: std_logic;\r
+    signal co2_1: std_logic;\r
+    signal ircount_8: std_logic;\r
+    signal ircount_9: std_logic;\r
+    signal co3_1: std_logic;\r
+    signal ircount_10: std_logic;\r
+    signal ircount_11: std_logic;\r
+    signal co5_1: std_logic;\r
+    signal rcount_11: std_logic;\r
+    signal co4_1: std_logic;\r
+    signal rden_i: std_logic;\r
+    signal cmp_ci: std_logic;\r
+    signal wcount_r0: std_logic;\r
+    signal wcount_r1: std_logic;\r
+    signal rcount_0: std_logic;\r
+    signal rcount_1: std_logic;\r
+    signal co0_2: std_logic;\r
+    signal wcount_r2: std_logic;\r
+    signal wcount_r3: std_logic;\r
+    signal rcount_2: std_logic;\r
+    signal rcount_3: std_logic;\r
+    signal co1_2: std_logic;\r
+    signal wcount_r4: std_logic;\r
+    signal wcount_r5: std_logic;\r
+    signal rcount_4: std_logic;\r
+    signal rcount_5: std_logic;\r
+    signal co2_2: std_logic;\r
+    signal wcount_r6: std_logic;\r
+    signal wcount_r7: std_logic;\r
+    signal rcount_6: std_logic;\r
+    signal rcount_7: std_logic;\r
+    signal co3_2: std_logic;\r
+    signal w_g2b_xor_cluster_0: std_logic;\r
+    signal wcount_r9: std_logic;\r
+    signal rcount_8: std_logic;\r
+    signal rcount_9: std_logic;\r
+    signal co4_2: std_logic;\r
+    signal wcount_r10: std_logic;\r
+    signal empty_cmp_clr: std_logic;\r
+    signal rcount_10: std_logic;\r
+    signal empty_cmp_set: std_logic;\r
+    signal empty_d: std_logic;\r
+    signal empty_d_c: std_logic;\r
+    signal wren_i: std_logic;\r
+    signal cmp_ci_1: std_logic;\r
+    signal rcount_w0: std_logic;\r
+    signal rcount_w1: std_logic;\r
+    signal wcount_0: std_logic;\r
+    signal wcount_1: std_logic;\r
+    signal co0_3: std_logic;\r
+    signal rcount_w2: std_logic;\r
+    signal rcount_w3: std_logic;\r
+    signal wcount_2: std_logic;\r
+    signal wcount_3: std_logic;\r
+    signal co1_3: std_logic;\r
+    signal rcount_w4: std_logic;\r
+    signal rcount_w5: std_logic;\r
+    signal wcount_4: std_logic;\r
+    signal wcount_5: std_logic;\r
+    signal co2_3: std_logic;\r
+    signal rcount_w6: std_logic;\r
+    signal rcount_w7: std_logic;\r
+    signal wcount_6: std_logic;\r
+    signal wcount_7: std_logic;\r
+    signal co3_3: std_logic;\r
+    signal r_g2b_xor_cluster_0: std_logic;\r
+    signal rcount_w9: std_logic;\r
+    signal wcount_8: std_logic;\r
+    signal wcount_9: std_logic;\r
+    signal co4_3: std_logic;\r
+    signal rcount_w10: std_logic;\r
+    signal full_cmp_clr: std_logic;\r
+    signal wcount_10: std_logic;\r
+    signal full_cmp_set: std_logic;\r
+    signal full_d: std_logic;\r
+    signal full_d_c: std_logic;\r
+    signal scuba_vlo: std_logic;\r
+\r
+    -- local component declarations\r
+    component AGEB2\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; GE: out  std_logic);\r
+    end component;\r
+    component AND2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component CU2\r
+        port (CI: in  std_logic; PC0: in  std_logic; PC1: in  std_logic; \r
+            CO: out  std_logic; NC0: out  std_logic; NC1: out  std_logic);\r
+    end component;\r
+    component FADD2B\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; COUT: out  std_logic; \r
+            S0: out  std_logic; S1: out  std_logic);\r
+    end component;\r
+    component FD1P3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            PD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1P3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            CD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1S3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; PD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component FD1S3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; CD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component INV\r
+        port (A: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component OR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component ROM16X1\r
+    -- synopsys translate_off\r
+        generic (initval : in String);\r
+    -- synopsys translate_on\r
+        port (AD3: in  std_logic; AD2: in  std_logic; AD1: in  std_logic; \r
+            AD0: in  std_logic; DO0: out  std_logic);\r
+    end component;\r
+    component VHI\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component VLO\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component XOR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component DP16KB\r
+    -- synopsys translate_off\r
+        generic (GSR : in String; WRITEMODE_B : in String; \r
+                CSDECODE_B : in std_logic_vector(2 downto 0); \r
+                CSDECODE_A : in std_logic_vector(2 downto 0); \r
+                WRITEMODE_A : in String; RESETMODE : in String; \r
+                REGMODE_B : in String; REGMODE_A : in String; \r
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);\r
+    -- synopsys translate_on\r
+        port (DIA0: in  std_logic; DIA1: in  std_logic; \r
+            DIA2: in  std_logic; DIA3: in  std_logic; \r
+            DIA4: in  std_logic; DIA5: in  std_logic; \r
+            DIA6: in  std_logic; DIA7: in  std_logic; \r
+            DIA8: in  std_logic; DIA9: in  std_logic; \r
+            DIA10: in  std_logic; DIA11: in  std_logic; \r
+            DIA12: in  std_logic; DIA13: in  std_logic; \r
+            DIA14: in  std_logic; DIA15: in  std_logic; \r
+            DIA16: in  std_logic; DIA17: in  std_logic; \r
+            ADA0: in  std_logic; ADA1: in  std_logic; \r
+            ADA2: in  std_logic; ADA3: in  std_logic; \r
+            ADA4: in  std_logic; ADA5: in  std_logic; \r
+            ADA6: in  std_logic; ADA7: in  std_logic; \r
+            ADA8: in  std_logic; ADA9: in  std_logic; \r
+            ADA10: in  std_logic; ADA11: in  std_logic; \r
+            ADA12: in  std_logic; ADA13: in  std_logic; \r
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; \r
+            CSA0: in  std_logic; CSA1: in  std_logic; \r
+            CSA2: in  std_logic; RSTA: in  std_logic; \r
+            DIB0: in  std_logic; DIB1: in  std_logic; \r
+            DIB2: in  std_logic; DIB3: in  std_logic; \r
+            DIB4: in  std_logic; DIB5: in  std_logic; \r
+            DIB6: in  std_logic; DIB7: in  std_logic; \r
+            DIB8: in  std_logic; DIB9: in  std_logic; \r
+            DIB10: in  std_logic; DIB11: in  std_logic; \r
+            DIB12: in  std_logic; DIB13: in  std_logic; \r
+            DIB14: in  std_logic; DIB15: in  std_logic; \r
+            DIB16: in  std_logic; DIB17: in  std_logic; \r
+            ADB0: in  std_logic; ADB1: in  std_logic; \r
+            ADB2: in  std_logic; ADB3: in  std_logic; \r
+            ADB4: in  std_logic; ADB5: in  std_logic; \r
+            ADB6: in  std_logic; ADB7: in  std_logic; \r
+            ADB8: in  std_logic; ADB9: in  std_logic; \r
+            ADB10: in  std_logic; ADB11: in  std_logic; \r
+            ADB12: in  std_logic; ADB13: in  std_logic; \r
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; \r
+            CSB0: in  std_logic; CSB1: in  std_logic; \r
+            CSB2: in  std_logic; RSTB: in  std_logic; \r
+            DOA0: out  std_logic; DOA1: out  std_logic; \r
+            DOA2: out  std_logic; DOA3: out  std_logic; \r
+            DOA4: out  std_logic; DOA5: out  std_logic; \r
+            DOA6: out  std_logic; DOA7: out  std_logic; \r
+            DOA8: out  std_logic; DOA9: out  std_logic; \r
+            DOA10: out  std_logic; DOA11: out  std_logic; \r
+            DOA12: out  std_logic; DOA13: out  std_logic; \r
+            DOA14: out  std_logic; DOA15: out  std_logic; \r
+            DOA16: out  std_logic; DOA17: out  std_logic; \r
+            DOB0: out  std_logic; DOB1: out  std_logic; \r
+            DOB2: out  std_logic; DOB3: out  std_logic; \r
+            DOB4: out  std_logic; DOB5: out  std_logic; \r
+            DOB6: out  std_logic; DOB7: out  std_logic; \r
+            DOB8: out  std_logic; DOB9: out  std_logic; \r
+            DOB10: out  std_logic; DOB11: out  std_logic; \r
+            DOB12: out  std_logic; DOB13: out  std_logic; \r
+            DOB14: out  std_logic; DOB15: out  std_logic; \r
+            DOB16: out  std_logic; DOB17: out  std_logic);\r
+    end component;\r
+    attribute initval : string; \r
+    attribute MEM_LPC_FILE : string; \r
+    attribute MEM_INIT_FILE : string; \r
+    attribute CSDECODE_B : string; \r
+    attribute CSDECODE_A : string; \r
+    attribute WRITEMODE_B : string; \r
+    attribute WRITEMODE_A : string; \r
+    attribute RESETMODE : string; \r
+    attribute REGMODE_B : string; \r
+    attribute REGMODE_A : string; \r
+    attribute DATA_WIDTH_B : string; \r
+    attribute DATA_WIDTH_A : string; \r
+    attribute GSR : string; \r
+    attribute initval of LUT4_31 : label is "0x6996";\r
+    attribute initval of LUT4_30 : label is "0x6996";\r
+    attribute initval of LUT4_29 : label is "0x6996";\r
+    attribute initval of LUT4_28 : label is "0x6996";\r
+    attribute initval of LUT4_27 : label is "0x6996";\r
+    attribute initval of LUT4_26 : label is "0x6996";\r
+    attribute initval of LUT4_25 : label is "0x6996";\r
+    attribute initval of LUT4_24 : label is "0x6996";\r
+    attribute initval of LUT4_23 : label is "0x6996";\r
+    attribute initval of LUT4_22 : label is "0x6996";\r
+    attribute initval of LUT4_21 : label is "0x6996";\r
+    attribute initval of LUT4_20 : label is "0x6996";\r
+    attribute initval of LUT4_19 : label is "0x6996";\r
+    attribute initval of LUT4_18 : label is "0x6996";\r
+    attribute initval of LUT4_17 : label is "0x6996";\r
+    attribute initval of LUT4_16 : label is "0x6996";\r
+    attribute initval of LUT4_15 : label is "0x6996";\r
+    attribute initval of LUT4_14 : label is "0x6996";\r
+    attribute initval of LUT4_13 : label is "0x6996";\r
+    attribute initval of LUT4_12 : label is "0x6996";\r
+    attribute initval of LUT4_11 : label is "0x6996";\r
+    attribute initval of LUT4_10 : label is "0x6996";\r
+    attribute initval of LUT4_9 : label is "0x6996";\r
+    attribute initval of LUT4_8 : label is "0x6996";\r
+    attribute initval of LUT4_7 : label is "0x6996";\r
+    attribute initval of LUT4_6 : label is "0x6996";\r
+    attribute initval of LUT4_5 : label is "0x6996";\r
+    attribute initval of LUT4_4 : label is "0x6996";\r
+    attribute initval of LUT4_3 : label is "0x0410";\r
+    attribute initval of LUT4_2 : label is "0x1004";\r
+    attribute initval of LUT4_1 : label is "0x0140";\r
+    attribute initval of LUT4_0 : label is "0x4001";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_0_0 : label is "fifo_2048x8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_0_0 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_0_0 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_0_0 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_0_0 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_0_0 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_0_0 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_0_0 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_0_0 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_0_0 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_0_0 : label is "9";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_0_0 : label is "9";\r
+    attribute GSR of FF_121 : label is "ENABLED";\r
+    attribute GSR of FF_120 : label is "ENABLED";\r
+    attribute GSR of FF_119 : label is "ENABLED";\r
+    attribute GSR of FF_118 : label is "ENABLED";\r
+    attribute GSR of FF_117 : label is "ENABLED";\r
+    attribute GSR of FF_116 : label is "ENABLED";\r
+    attribute GSR of FF_115 : label is "ENABLED";\r
+    attribute GSR of FF_114 : label is "ENABLED";\r
+    attribute GSR of FF_113 : label is "ENABLED";\r
+    attribute GSR of FF_112 : label is "ENABLED";\r
+    attribute GSR of FF_111 : label is "ENABLED";\r
+    attribute GSR of FF_110 : label is "ENABLED";\r
+    attribute GSR of FF_109 : label is "ENABLED";\r
+    attribute GSR of FF_108 : label is "ENABLED";\r
+    attribute GSR of FF_107 : label is "ENABLED";\r
+    attribute GSR of FF_106 : label is "ENABLED";\r
+    attribute GSR of FF_105 : label is "ENABLED";\r
+    attribute GSR of FF_104 : label is "ENABLED";\r
+    attribute GSR of FF_103 : label is "ENABLED";\r
+    attribute GSR of FF_102 : label is "ENABLED";\r
+    attribute GSR of FF_101 : label is "ENABLED";\r
+    attribute GSR of FF_100 : label is "ENABLED";\r
+    attribute GSR of FF_99 : label is "ENABLED";\r
+    attribute GSR of FF_98 : label is "ENABLED";\r
+    attribute GSR of FF_97 : label is "ENABLED";\r
+    attribute GSR of FF_96 : label is "ENABLED";\r
+    attribute GSR of FF_95 : label is "ENABLED";\r
+    attribute GSR of FF_94 : label is "ENABLED";\r
+    attribute GSR of FF_93 : label is "ENABLED";\r
+    attribute GSR of FF_92 : label is "ENABLED";\r
+    attribute GSR of FF_91 : label is "ENABLED";\r
+    attribute GSR of FF_90 : label is "ENABLED";\r
+    attribute GSR of FF_89 : label is "ENABLED";\r
+    attribute GSR of FF_88 : label is "ENABLED";\r
+    attribute GSR of FF_87 : label is "ENABLED";\r
+    attribute GSR of FF_86 : label is "ENABLED";\r
+    attribute GSR of FF_85 : label is "ENABLED";\r
+    attribute GSR of FF_84 : label is "ENABLED";\r
+    attribute GSR of FF_83 : label is "ENABLED";\r
+    attribute GSR of FF_82 : label is "ENABLED";\r
+    attribute GSR of FF_81 : label is "ENABLED";\r
+    attribute GSR of FF_80 : label is "ENABLED";\r
+    attribute GSR of FF_79 : label is "ENABLED";\r
+    attribute GSR of FF_78 : label is "ENABLED";\r
+    attribute GSR of FF_77 : label is "ENABLED";\r
+    attribute GSR of FF_76 : label is "ENABLED";\r
+    attribute GSR of FF_75 : label is "ENABLED";\r
+    attribute GSR of FF_74 : label is "ENABLED";\r
+    attribute GSR of FF_73 : label is "ENABLED";\r
+    attribute GSR of FF_72 : label is "ENABLED";\r
+    attribute GSR of FF_71 : label is "ENABLED";\r
+    attribute GSR of FF_70 : label is "ENABLED";\r
+    attribute GSR of FF_69 : label is "ENABLED";\r
+    attribute GSR of FF_68 : label is "ENABLED";\r
+    attribute GSR of FF_67 : label is "ENABLED";\r
+    attribute GSR of FF_66 : label is "ENABLED";\r
+    attribute GSR of FF_65 : label is "ENABLED";\r
+    attribute GSR of FF_64 : label is "ENABLED";\r
+    attribute GSR of FF_63 : label is "ENABLED";\r
+    attribute GSR of FF_62 : label is "ENABLED";\r
+    attribute GSR of FF_61 : label is "ENABLED";\r
+    attribute GSR of FF_60 : label is "ENABLED";\r
+    attribute GSR of FF_59 : label is "ENABLED";\r
+    attribute GSR of FF_58 : label is "ENABLED";\r
+    attribute GSR of FF_57 : label is "ENABLED";\r
+    attribute GSR of FF_56 : label is "ENABLED";\r
+    attribute GSR of FF_55 : label is "ENABLED";\r
+    attribute GSR of FF_54 : label is "ENABLED";\r
+    attribute GSR of FF_53 : label is "ENABLED";\r
+    attribute GSR of FF_52 : label is "ENABLED";\r
+    attribute GSR of FF_51 : label is "ENABLED";\r
+    attribute GSR of FF_50 : label is "ENABLED";\r
+    attribute GSR of FF_49 : label is "ENABLED";\r
+    attribute GSR of FF_48 : label is "ENABLED";\r
+    attribute GSR of FF_47 : label is "ENABLED";\r
+    attribute GSR of FF_46 : label is "ENABLED";\r
+    attribute GSR of FF_45 : label is "ENABLED";\r
+    attribute GSR of FF_44 : label is "ENABLED";\r
+    attribute GSR of FF_43 : label is "ENABLED";\r
+    attribute GSR of FF_42 : label is "ENABLED";\r
+    attribute GSR of FF_41 : label is "ENABLED";\r
+    attribute GSR of FF_40 : label is "ENABLED";\r
+    attribute GSR of FF_39 : label is "ENABLED";\r
+    attribute GSR of FF_38 : label is "ENABLED";\r
+    attribute GSR of FF_37 : label is "ENABLED";\r
+    attribute GSR of FF_36 : label is "ENABLED";\r
+    attribute GSR of FF_35 : label is "ENABLED";\r
+    attribute GSR of FF_34 : label is "ENABLED";\r
+    attribute GSR of FF_33 : label is "ENABLED";\r
+    attribute GSR of FF_32 : label is "ENABLED";\r
+    attribute GSR of FF_31 : label is "ENABLED";\r
+    attribute GSR of FF_30 : label is "ENABLED";\r
+    attribute GSR of FF_29 : label is "ENABLED";\r
+    attribute GSR of FF_28 : label is "ENABLED";\r
+    attribute GSR of FF_27 : label is "ENABLED";\r
+    attribute GSR of FF_26 : label is "ENABLED";\r
+    attribute GSR of FF_25 : label is "ENABLED";\r
+    attribute GSR of FF_24 : label is "ENABLED";\r
+    attribute GSR of FF_23 : label is "ENABLED";\r
+    attribute GSR of FF_22 : label is "ENABLED";\r
+    attribute GSR of FF_21 : label is "ENABLED";\r
+    attribute GSR of FF_20 : label is "ENABLED";\r
+    attribute GSR of FF_19 : label is "ENABLED";\r
+    attribute GSR of FF_18 : label is "ENABLED";\r
+    attribute GSR of FF_17 : label is "ENABLED";\r
+    attribute GSR of FF_16 : label is "ENABLED";\r
+    attribute GSR of FF_15 : label is "ENABLED";\r
+    attribute GSR of FF_14 : label is "ENABLED";\r
+    attribute GSR of FF_13 : label is "ENABLED";\r
+    attribute GSR of FF_12 : label is "ENABLED";\r
+    attribute GSR of FF_11 : label is "ENABLED";\r
+    attribute GSR of FF_10 : label is "ENABLED";\r
+    attribute GSR of FF_9 : label is "ENABLED";\r
+    attribute GSR of FF_8 : label is "ENABLED";\r
+    attribute GSR of FF_7 : label is "ENABLED";\r
+    attribute GSR of FF_6 : label is "ENABLED";\r
+    attribute GSR of FF_5 : label is "ENABLED";\r
+    attribute GSR of FF_4 : label is "ENABLED";\r
+    attribute GSR of FF_3 : label is "ENABLED";\r
+    attribute GSR of FF_2 : label is "ENABLED";\r
+    attribute GSR of FF_1 : label is "ENABLED";\r
+    attribute GSR of FF_0 : label is "ENABLED";\r
+    attribute syn_keep : boolean;\r
+\r
+begin\r
+    -- component instantiation statements\r
+    AND2_t24: AND2\r
+        port map (A=>WrEn, B=>invout_1, Z=>wren_i);\r
+\r
+    INV_1: INV\r
+        port map (A=>full_i, Z=>invout_1);\r
+\r
+    AND2_t23: AND2\r
+        port map (A=>RdEn, B=>invout_0, Z=>rden_i);\r
+\r
+    INV_0: INV\r
+        port map (A=>empty_i, Z=>invout_0);\r
+\r
+    OR2_t22: OR2\r
+        port map (A=>Reset, B=>RPReset, Z=>rRst);\r
+\r
+    XOR2_t21: XOR2\r
+        port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0);\r
+\r
+    XOR2_t20: XOR2\r
+        port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1);\r
+\r
+    XOR2_t19: XOR2\r
+        port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2);\r
+\r
+    XOR2_t18: XOR2\r
+        port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3);\r
+\r
+    XOR2_t17: XOR2\r
+        port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4);\r
+\r
+    XOR2_t16: XOR2\r
+        port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5);\r
+\r
+    XOR2_t15: XOR2\r
+        port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6);\r
+\r
+    XOR2_t14: XOR2\r
+        port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7);\r
+\r
+    XOR2_t13: XOR2\r
+        port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8);\r
+\r
+    XOR2_t12: XOR2\r
+        port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9);\r
+\r
+    XOR2_t11: XOR2\r
+        port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10);\r
+\r
+    XOR2_t10: XOR2\r
+        port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0);\r
+\r
+    XOR2_t9: XOR2\r
+        port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1);\r
+\r
+    XOR2_t8: XOR2\r
+        port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2);\r
+\r
+    XOR2_t7: XOR2\r
+        port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3);\r
+\r
+    XOR2_t6: XOR2\r
+        port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4);\r
+\r
+    XOR2_t5: XOR2\r
+        port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5);\r
+\r
+    XOR2_t4: XOR2\r
+        port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6);\r
+\r
+    XOR2_t3: XOR2\r
+        port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7);\r
+\r
+    XOR2_t2: XOR2\r
+        port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8);\r
+\r
+    XOR2_t1: XOR2\r
+        port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9);\r
+\r
+    XOR2_t0: XOR2\r
+        port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10);\r
+\r
+    LUT4_31: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, \r
+            AD1=>w_gcount_r210, AD0=>w_gcount_r211, \r
+            DO0=>w_g2b_xor_cluster_0);\r
+\r
+    LUT4_30: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, \r
+            AD1=>w_gcount_r26, AD0=>w_gcount_r27, \r
+            DO0=>w_g2b_xor_cluster_1);\r
+\r
+    LUT4_29: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, \r
+            AD1=>w_gcount_r22, AD0=>w_gcount_r23, \r
+            DO0=>w_g2b_xor_cluster_2);\r
+\r
+    LUT4_28: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>wcount_r10);\r
+\r
+    LUT4_27: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, \r
+            AD1=>w_gcount_r211, AD0=>scuba_vlo, DO0=>wcount_r9);\r
+\r
+    LUT4_26: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, \r
+            AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7);\r
+\r
+    LUT4_25: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, \r
+            AD1=>w_gcount_r28, AD0=>wcount_r9, DO0=>wcount_r6);\r
+\r
+    LUT4_24: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, \r
+            AD1=>w_gcount_r27, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r5);\r
+\r
+    LUT4_23: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r4);\r
+\r
+    LUT4_22: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r23, AD0=>scuba_vlo, DO0=>wcount_r3);\r
+\r
+    LUT4_21: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>wcount_r2);\r
+\r
+    LUT4_20: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, \r
+            AD1=>w_gcount_r23, AD0=>scuba_vlo, \r
+            DO0=>w_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_19: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r1);\r
+\r
+    LUT4_18: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r0);\r
+\r
+    LUT4_17: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, \r
+            AD1=>r_gcount_w210, AD0=>r_gcount_w211, \r
+            DO0=>r_g2b_xor_cluster_0);\r
+\r
+    LUT4_16: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, \r
+            AD1=>r_gcount_w26, AD0=>r_gcount_w27, \r
+            DO0=>r_g2b_xor_cluster_1);\r
+\r
+    LUT4_15: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, \r
+            AD1=>r_gcount_w22, AD0=>r_gcount_w23, \r
+            DO0=>r_g2b_xor_cluster_2);\r
+\r
+    LUT4_14: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>rcount_w10);\r
+\r
+    LUT4_13: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, \r
+            AD1=>r_gcount_w211, AD0=>scuba_vlo, DO0=>rcount_w9);\r
+\r
+    LUT4_12: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, \r
+            AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7);\r
+\r
+    LUT4_11: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, \r
+            AD1=>r_gcount_w28, AD0=>rcount_w9, DO0=>rcount_w6);\r
+\r
+    LUT4_10: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, \r
+            AD1=>r_gcount_w27, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w5);\r
+\r
+    LUT4_9: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w4);\r
+\r
+    LUT4_8: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w23, AD0=>scuba_vlo, DO0=>rcount_w3);\r
+\r
+    LUT4_7: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>rcount_w2);\r
+\r
+    LUT4_6: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, \r
+            AD1=>r_gcount_w23, AD0=>scuba_vlo, \r
+            DO0=>r_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_5: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w1);\r
+\r
+    LUT4_4: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w0);\r
+\r
+    LUT4_3: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0410")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_set);\r
+\r
+    LUT4_2: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x1004")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_11, AD2=>rcount_11, AD1=>w_gcount_r211, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_clr);\r
+\r
+    LUT4_1: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0140")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_set);\r
+\r
+    LUT4_0: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x4001")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_11, AD2=>wcount_11, AD1=>r_gcount_w211, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_clr);\r
+\r
+    pdp_ram_0_0_0: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  9, \r
+        DATA_WIDTH_A=>  9)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), \r
+            DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), \r
+            DIA7=>Data(7), DIA8=>scuba_vlo, DIA9=>scuba_vlo, \r
+            DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, \r
+            DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, \r
+            DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, \r
+            ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, \r
+            ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, \r
+            ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, \r
+            ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, \r
+            CSA0=>scuba_vlo, CSA1=>scuba_vlo, CSA2=>scuba_vlo, \r
+            RSTA=>Reset, DIB0=>scuba_vlo, DIB1=>scuba_vlo, \r
+            DIB2=>scuba_vlo, DIB3=>scuba_vlo, DIB4=>scuba_vlo, \r
+            DIB5=>scuba_vlo, DIB6=>scuba_vlo, DIB7=>scuba_vlo, \r
+            DIB8=>scuba_vlo, DIB9=>scuba_vlo, DIB10=>scuba_vlo, \r
+            DIB11=>scuba_vlo, DIB12=>scuba_vlo, DIB13=>scuba_vlo, \r
+            DIB14=>scuba_vlo, DIB15=>scuba_vlo, DIB16=>scuba_vlo, \r
+            DIB17=>scuba_vlo, ADB0=>scuba_vlo, ADB1=>scuba_vlo, \r
+            ADB2=>scuba_vlo, ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, \r
+            ADB6=>rptr_3, ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, \r
+            ADB10=>rptr_7, ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, \r
+            CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>scuba_vlo, \r
+            CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, \r
+            DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, \r
+            DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, \r
+            DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, \r
+            DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>Q(0), \r
+            DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), DOB4=>Q(4), DOB5=>Q(5), \r
+            DOB6=>Q(6), DOB7=>Q(7), DOB8=>open, DOB9=>open, DOB10=>open, \r
+            DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, \r
+            DOB15=>open, DOB16=>open, DOB17=>open);\r
+\r
+    FF_121: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, \r
+            Q=>wcount_0);\r
+\r
+    FF_120: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_1);\r
+\r
+    FF_119: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_2);\r
+\r
+    FF_118: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_3);\r
+\r
+    FF_117: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_4);\r
+\r
+    FF_116: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_5);\r
+\r
+    FF_115: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_6);\r
+\r
+    FF_114: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_7);\r
+\r
+    FF_113: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_8);\r
+\r
+    FF_112: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_9);\r
+\r
+    FF_111: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_10);\r
+\r
+    FF_110: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_11);\r
+\r
+    FF_109: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_0);\r
+\r
+    FF_108: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_1);\r
+\r
+    FF_107: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_2);\r
+\r
+    FF_106: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_3);\r
+\r
+    FF_105: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_4);\r
+\r
+    FF_104: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_5);\r
+\r
+    FF_103: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_6);\r
+\r
+    FF_102: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_7);\r
+\r
+    FF_101: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_8);\r
+\r
+    FF_100: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_9);\r
+\r
+    FF_99: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_10);\r
+\r
+    FF_98: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_11);\r
+\r
+    FF_97: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_0);\r
+\r
+    FF_96: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_1);\r
+\r
+    FF_95: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_2);\r
+\r
+    FF_94: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_3);\r
+\r
+    FF_93: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_4);\r
+\r
+    FF_92: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_5);\r
+\r
+    FF_91: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_6);\r
+\r
+    FF_90: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_7);\r
+\r
+    FF_89: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_8);\r
+\r
+    FF_88: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_9);\r
+\r
+    FF_87: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_10);\r
+\r
+    FF_86: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_11);\r
+\r
+    FF_85: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, \r
+            Q=>rcount_0);\r
+\r
+    FF_84: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_1);\r
+\r
+    FF_83: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_2);\r
+\r
+    FF_82: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_3);\r
+\r
+    FF_81: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_4);\r
+\r
+    FF_80: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_5);\r
+\r
+    FF_79: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_6);\r
+\r
+    FF_78: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_7);\r
+\r
+    FF_77: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_8);\r
+\r
+    FF_76: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_9);\r
+\r
+    FF_75: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_10);\r
+\r
+    FF_74: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_11);\r
+\r
+    FF_73: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_0);\r
+\r
+    FF_72: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_1);\r
+\r
+    FF_71: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_2);\r
+\r
+    FF_70: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_3);\r
+\r
+    FF_69: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_4);\r
+\r
+    FF_68: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_5);\r
+\r
+    FF_67: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_6);\r
+\r
+    FF_66: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_7);\r
+\r
+    FF_65: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_8);\r
+\r
+    FF_64: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_9);\r
+\r
+    FF_63: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_10);\r
+\r
+    FF_62: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_11);\r
+\r
+    FF_61: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_0);\r
+\r
+    FF_60: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_1);\r
+\r
+    FF_59: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_2);\r
+\r
+    FF_58: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_3);\r
+\r
+    FF_57: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_4);\r
+\r
+    FF_56: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_5);\r
+\r
+    FF_55: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_6);\r
+\r
+    FF_54: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_7);\r
+\r
+    FF_53: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_8);\r
+\r
+    FF_52: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_9);\r
+\r
+    FF_51: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_10);\r
+\r
+    FF_50: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_11);\r
+\r
+    FF_49: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0);\r
+\r
+    FF_48: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1);\r
+\r
+    FF_47: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2);\r
+\r
+    FF_46: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3);\r
+\r
+    FF_45: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4);\r
+\r
+    FF_44: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5);\r
+\r
+    FF_43: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6);\r
+\r
+    FF_42: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7);\r
+\r
+    FF_41: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8);\r
+\r
+    FF_40: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9);\r
+\r
+    FF_39: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r10);\r
+\r
+    FF_38: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r11);\r
+\r
+    FF_37: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0);\r
+\r
+    FF_36: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1);\r
+\r
+    FF_35: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2);\r
+\r
+    FF_34: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3);\r
+\r
+    FF_33: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4);\r
+\r
+    FF_32: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5);\r
+\r
+    FF_31: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6);\r
+\r
+    FF_30: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7);\r
+\r
+    FF_29: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8);\r
+\r
+    FF_28: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9);\r
+\r
+    FF_27: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10);\r
+\r
+    FF_26: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11);\r
+\r
+    FF_25: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r20);\r
+\r
+    FF_24: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r21);\r
+\r
+    FF_23: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r22);\r
+\r
+    FF_22: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r23);\r
+\r
+    FF_21: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r24);\r
+\r
+    FF_20: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r25);\r
+\r
+    FF_19: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r26);\r
+\r
+    FF_18: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r27);\r
+\r
+    FF_17: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r28);\r
+\r
+    FF_16: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r29);\r
+\r
+    FF_15: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r210);\r
+\r
+    FF_14: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r211);\r
+\r
+    FF_13: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20);\r
+\r
+    FF_12: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21);\r
+\r
+    FF_11: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22);\r
+\r
+    FF_10: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23);\r
+\r
+    FF_9: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24);\r
+\r
+    FF_8: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25);\r
+\r
+    FF_7: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26);\r
+\r
+    FF_6: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27);\r
+\r
+    FF_5: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28);\r
+\r
+    FF_4: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29);\r
+\r
+    FF_3: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w210);\r
+\r
+    FF_2: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w211);\r
+\r
+    FF_1: FD1S3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i);\r
+\r
+    FF_0: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i);\r
+\r
+    w_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    w_gctr_0: CU2\r
+        port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, \r
+            NC0=>iwcount_0, NC1=>iwcount_1);\r
+\r
+    w_gctr_1: CU2\r
+        port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, \r
+            NC0=>iwcount_2, NC1=>iwcount_3);\r
+\r
+    w_gctr_2: CU2\r
+        port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, \r
+            NC0=>iwcount_4, NC1=>iwcount_5);\r
+\r
+    w_gctr_3: CU2\r
+        port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, \r
+            NC0=>iwcount_6, NC1=>iwcount_7);\r
+\r
+    w_gctr_4: CU2\r
+        port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, \r
+            NC0=>iwcount_8, NC1=>iwcount_9);\r
+\r
+    w_gctr_5: CU2\r
+        port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, \r
+            NC0=>iwcount_10, NC1=>iwcount_11);\r
+\r
+    scuba_vhi_inst: VHI\r
+        port map (Z=>scuba_vhi);\r
+\r
+    r_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    r_gctr_0: CU2\r
+        port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, \r
+            NC0=>ircount_0, NC1=>ircount_1);\r
+\r
+    r_gctr_1: CU2\r
+        port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, \r
+            NC0=>ircount_2, NC1=>ircount_3);\r
+\r
+    r_gctr_2: CU2\r
+        port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, \r
+            NC0=>ircount_4, NC1=>ircount_5);\r
+\r
+    r_gctr_3: CU2\r
+        port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, \r
+            NC0=>ircount_6, NC1=>ircount_7);\r
+\r
+    r_gctr_4: CU2\r
+        port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, \r
+            NC0=>ircount_8, NC1=>ircount_9);\r
+\r
+    r_gctr_5: CU2\r
+        port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, \r
+            NC0=>ircount_10, NC1=>ircount_11);\r
+\r
+    empty_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open);\r
+\r
+    empty_cmp_0: AGEB2\r
+        port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, \r
+            B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2);\r
+\r
+    empty_cmp_1: AGEB2\r
+        port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, \r
+            B1=>wcount_r3, CI=>co0_2, GE=>co1_2);\r
+\r
+    empty_cmp_2: AGEB2\r
+        port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, \r
+            B1=>wcount_r5, CI=>co1_2, GE=>co2_2);\r
+\r
+    empty_cmp_3: AGEB2\r
+        port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, \r
+            B1=>wcount_r7, CI=>co2_2, GE=>co3_2);\r
+\r
+    empty_cmp_4: AGEB2\r
+        port map (A0=>rcount_8, A1=>rcount_9, B0=>w_g2b_xor_cluster_0, \r
+            B1=>wcount_r9, CI=>co3_2, GE=>co4_2);\r
+\r
+    empty_cmp_5: AGEB2\r
+        port map (A0=>rcount_10, A1=>empty_cmp_set, B0=>wcount_r10, \r
+            B1=>empty_cmp_clr, CI=>co4_2, GE=>empty_d_c);\r
+\r
+    a0: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, \r
+            S1=>open);\r
+\r
+    full_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open);\r
+\r
+    full_cmp_0: AGEB2\r
+        port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, \r
+            B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3);\r
+\r
+    full_cmp_1: AGEB2\r
+        port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, \r
+            B1=>rcount_w3, CI=>co0_3, GE=>co1_3);\r
+\r
+    full_cmp_2: AGEB2\r
+        port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, \r
+            B1=>rcount_w5, CI=>co1_3, GE=>co2_3);\r
+\r
+    full_cmp_3: AGEB2\r
+        port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, \r
+            B1=>rcount_w7, CI=>co2_3, GE=>co3_3);\r
+\r
+    full_cmp_4: AGEB2\r
+        port map (A0=>wcount_8, A1=>wcount_9, B0=>r_g2b_xor_cluster_0, \r
+            B1=>rcount_w9, CI=>co3_3, GE=>co4_3);\r
+\r
+    full_cmp_5: AGEB2\r
+        port map (A0=>wcount_10, A1=>full_cmp_set, B0=>rcount_w10, \r
+            B1=>full_cmp_clr, CI=>co4_3, GE=>full_d_c);\r
+\r
+    scuba_vlo_inst: VLO\r
+        port map (Z=>scuba_vlo);\r
+\r
+    a1: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, \r
+            S1=>open);\r
+\r
+    Empty <= empty_i;\r
+    Full <= full_i;\r
+end Structure;\r
+\r
+-- synopsys translate_off\r
+library ecp2m;\r
+configuration Structure_CON of fifo_2048x8 is\r
+    for Structure\r
+        for all:AGEB2 use entity ecp2m.AGEB2(V); end for;\r
+        for all:AND2 use entity ecp2m.AND2(V); end for;\r
+        for all:CU2 use entity ecp2m.CU2(V); end for;\r
+        for all:FADD2B use entity ecp2m.FADD2B(V); end for;\r
+        for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for;\r
+        for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for;\r
+        for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for;\r
+        for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for;\r
+        for all:INV use entity ecp2m.INV(V); end for;\r
+        for all:OR2 use entity ecp2m.OR2(V); end for;\r
+        for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for;\r
+        for all:VHI use entity ecp2m.VHI(V); end for;\r
+        for all:VLO use entity ecp2m.VLO(V); end for;\r
+        for all:XOR2 use entity ecp2m.XOR2(V); end for;\r
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;\r
+    end for;\r
+end Structure_CON;\r
+\r
+-- synopsys translate_on\r
diff --git a/gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_2048x8_tmpl.vhd
new file mode 100755 (executable)
index 0000000..c365fcc
--- /dev/null
@@ -0,0 +1,18 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.2\r
+-- Sat Dec 26 00:12:59 2009\r
+\r
+-- parameterized module component declaration\r
+component fifo_2048x8\r
+    port (Data: in  std_logic_vector(7 downto 0); WrClock: in  std_logic; \r
+        RdClock: in  std_logic; WrEn: in  std_logic; RdEn: in  std_logic; \r
+        Reset: in  std_logic; RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(7 downto 0); Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end component;\r
+\r
+-- parameterized module component instance\r
+__ : fifo_2048x8\r
+    port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, \r
+        RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, \r
+        Full=>__);\r
diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.lpc
new file mode 100755 (executable)
index 0000000..8c82306
--- /dev/null
@@ -0,0 +1,47 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-5F900C\r
+SpeedGrade=-5\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=FIFO_DC\r
+CoreRevision=5.3\r
+ModuleName=fifo_32kx16x8_mb\r
+SourceFormat=Schematic/VHDL\r
+ParameterFileVersion=1.0\r
+Date=02/05/2010\r
+Time=16:48:12\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+FIFOImp=EBR Based\r
+Depth=32768\r
+Width=16\r
+RDepth=65536\r
+RWidth=8\r
+regout=0\r
+CtrlByRdEn=0\r
+EmpFlg=1\r
+PeMode=Dynamic - Single Threshold\r
+PeAssert=16\r
+PeDeassert=12\r
+FullFlg=1\r
+PfMode=Dynamic - Single Threshold\r
+PfAssert=32752\r
+PfDeassert=506\r
+RDataCount=1\r
+WDataCount=1\r
+EnECC=0\r
diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb.vhd
new file mode 100755 (executable)
index 0000000..d40ad50
--- /dev/null
@@ -0,0 +1,5245 @@
+-- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41)
+-- Module  Version: 5.3
+--X:\Programme\ispTOOLS_80\ispfpga\bin\nt\scuba.exe -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 32768 -width 16 -depth 32768 -rdata_width 8 -no_enable -pe 0 -pf 0 -rfill -fill -e 
+
+-- Fri Feb 05 16:48:13 2010
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+-- synopsys translate_off
+library ecp2m;
+use ecp2m.components.all;
+-- synopsys translate_on
+
+entity fifo_32kx16x8_mb is
+    port (
+        Data: in  std_logic_vector(15 downto 0); 
+        WrClock: in  std_logic; 
+        RdClock: in  std_logic; 
+        WrEn: in  std_logic; 
+        RdEn: in  std_logic; 
+        Reset: in  std_logic; 
+        RPReset: in  std_logic; 
+        AmEmptyThresh: in  std_logic_vector(15 downto 0); 
+        AmFullThresh: in  std_logic_vector(14 downto 0); 
+        Q: out  std_logic_vector(7 downto 0); 
+        WCNT: out  std_logic_vector(15 downto 0); 
+        RCNT: out  std_logic_vector(16 downto 0); 
+        Empty: out  std_logic; 
+        Full: out  std_logic; 
+        AlmostEmpty: out  std_logic; 
+        AlmostFull: out  std_logic);
+end fifo_32kx16x8_mb;
+
+architecture Structure of fifo_32kx16x8_mb is
+
+    -- internal signal declarations
+    signal invout_1: std_logic;
+    signal invout_0: std_logic;
+    signal w_g2b_xor_cluster_2_1: std_logic;
+    signal w_g2b_xor_cluster_3_1: std_logic;
+    signal w_g2b_xor_cluster_3_2: std_logic;
+    signal w_g2b_xor_cluster_3: std_logic;
+    signal w_g2b_xor_cluster_2: std_logic;
+    signal w_g2b_xor_cluster_1: std_logic;
+    signal r_g2b_xor_cluster_2_1: std_logic;
+    signal r_g2b_xor_cluster_3_1: std_logic;
+    signal r_g2b_xor_cluster_3_2: std_logic;
+    signal r_g2b_xor_cluster_3: std_logic;
+    signal r_g2b_xor_cluster_2: std_logic;
+    signal r_g2b_xor_cluster_1: std_logic;
+    signal func_xor_inet_3: std_logic;
+    signal func_xor_inet_2: std_logic;
+    signal func_xor_inet_1: std_logic;
+    signal func_xor_inet: std_logic;
+    signal rcount_w0: std_logic;
+    signal func_xor_inet_4: std_logic;
+    signal func_xor_inet_5: std_logic;
+    signal rcnt_reg_15_inv: std_logic;
+    signal w_gdata_0: std_logic;
+    signal w_gdata_1: std_logic;
+    signal w_gdata_2: std_logic;
+    signal w_gdata_3: std_logic;
+    signal w_gdata_4: std_logic;
+    signal w_gdata_5: std_logic;
+    signal w_gdata_6: std_logic;
+    signal w_gdata_7: std_logic;
+    signal w_gdata_8: std_logic;
+    signal w_gdata_9: std_logic;
+    signal w_gdata_10: std_logic;
+    signal w_gdata_11: std_logic;
+    signal w_gdata_12: std_logic;
+    signal w_gdata_13: std_logic;
+    signal w_gdata_14: std_logic;
+    signal wptr_15: std_logic;
+    signal r_gdata_0: std_logic;
+    signal r_gdata_1: std_logic;
+    signal r_gdata_2: std_logic;
+    signal r_gdata_3: std_logic;
+    signal r_gdata_4: std_logic;
+    signal r_gdata_5: std_logic;
+    signal r_gdata_6: std_logic;
+    signal r_gdata_7: std_logic;
+    signal r_gdata_8: std_logic;
+    signal r_gdata_9: std_logic;
+    signal r_gdata_10: std_logic;
+    signal r_gdata_11: std_logic;
+    signal r_gdata_12: std_logic;
+    signal r_gdata_13: std_logic;
+    signal r_gdata_14: std_logic;
+    signal r_gdata_15: std_logic;
+    signal rptr_16: std_logic;
+    signal w_gcount_0: std_logic;
+    signal w_gcount_1: std_logic;
+    signal w_gcount_2: std_logic;
+    signal w_gcount_3: std_logic;
+    signal w_gcount_4: std_logic;
+    signal w_gcount_5: std_logic;
+    signal w_gcount_6: std_logic;
+    signal w_gcount_7: std_logic;
+    signal w_gcount_8: std_logic;
+    signal w_gcount_9: std_logic;
+    signal w_gcount_10: std_logic;
+    signal w_gcount_11: std_logic;
+    signal w_gcount_12: std_logic;
+    signal w_gcount_13: std_logic;
+    signal w_gcount_14: std_logic;
+    signal w_gcount_15: std_logic;
+    signal r_gcount_0: std_logic;
+    signal r_gcount_1: std_logic;
+    signal r_gcount_2: std_logic;
+    signal r_gcount_3: std_logic;
+    signal r_gcount_4: std_logic;
+    signal r_gcount_5: std_logic;
+    signal r_gcount_6: std_logic;
+    signal r_gcount_7: std_logic;
+    signal r_gcount_8: std_logic;
+    signal r_gcount_9: std_logic;
+    signal r_gcount_10: std_logic;
+    signal r_gcount_11: std_logic;
+    signal r_gcount_12: std_logic;
+    signal r_gcount_13: std_logic;
+    signal r_gcount_14: std_logic;
+    signal r_gcount_15: std_logic;
+    signal r_gcount_16: std_logic;
+    signal w_gcount_r20: std_logic;
+    signal w_gcount_r0: std_logic;
+    signal w_gcount_r21: std_logic;
+    signal w_gcount_r1: std_logic;
+    signal w_gcount_r22: std_logic;
+    signal w_gcount_r2: std_logic;
+    signal w_gcount_r23: std_logic;
+    signal w_gcount_r3: std_logic;
+    signal w_gcount_r24: std_logic;
+    signal w_gcount_r4: std_logic;
+    signal w_gcount_r25: std_logic;
+    signal w_gcount_r5: std_logic;
+    signal w_gcount_r26: std_logic;
+    signal w_gcount_r6: std_logic;
+    signal w_gcount_r27: std_logic;
+    signal w_gcount_r7: std_logic;
+    signal w_gcount_r28: std_logic;
+    signal w_gcount_r8: std_logic;
+    signal w_gcount_r29: std_logic;
+    signal w_gcount_r9: std_logic;
+    signal w_gcount_r210: std_logic;
+    signal w_gcount_r10: std_logic;
+    signal w_gcount_r211: std_logic;
+    signal w_gcount_r11: std_logic;
+    signal w_gcount_r212: std_logic;
+    signal w_gcount_r12: std_logic;
+    signal w_gcount_r213: std_logic;
+    signal w_gcount_r13: std_logic;
+    signal w_gcount_r214: std_logic;
+    signal w_gcount_r14: std_logic;
+    signal w_gcount_r215: std_logic;
+    signal w_gcount_r15: std_logic;
+    signal r_gcount_w20: std_logic;
+    signal r_gcount_w0: std_logic;
+    signal r_gcount_w21: std_logic;
+    signal r_gcount_w1: std_logic;
+    signal r_gcount_w22: std_logic;
+    signal r_gcount_w2: std_logic;
+    signal r_gcount_w23: std_logic;
+    signal r_gcount_w3: std_logic;
+    signal r_gcount_w24: std_logic;
+    signal r_gcount_w4: std_logic;
+    signal r_gcount_w25: std_logic;
+    signal r_gcount_w5: std_logic;
+    signal r_gcount_w26: std_logic;
+    signal r_gcount_w6: std_logic;
+    signal r_gcount_w27: std_logic;
+    signal r_gcount_w7: std_logic;
+    signal r_gcount_w28: std_logic;
+    signal r_gcount_w8: std_logic;
+    signal r_gcount_w29: std_logic;
+    signal r_gcount_w9: std_logic;
+    signal r_gcount_w210: std_logic;
+    signal r_gcount_w10: std_logic;
+    signal r_gcount_w211: std_logic;
+    signal r_gcount_w11: std_logic;
+    signal r_gcount_w212: std_logic;
+    signal r_gcount_w12: std_logic;
+    signal r_gcount_w213: std_logic;
+    signal r_gcount_w13: std_logic;
+    signal r_gcount_w214: std_logic;
+    signal r_gcount_w14: std_logic;
+    signal r_gcount_w215: std_logic;
+    signal r_gcount_w15: std_logic;
+    signal r_gcount_w216: std_logic;
+    signal r_gcount_w16: std_logic;
+    signal rcnt_reg_16: std_logic;
+    signal empty_i: std_logic;
+    signal full_i: std_logic;
+    signal rRst: std_logic;
+    signal iwcount_0: std_logic;
+    signal iwcount_1: std_logic;
+    signal w_gctr_ci: std_logic;
+    signal iwcount_2: std_logic;
+    signal iwcount_3: std_logic;
+    signal co0: std_logic;
+    signal iwcount_4: std_logic;
+    signal iwcount_5: std_logic;
+    signal co1: std_logic;
+    signal iwcount_6: std_logic;
+    signal iwcount_7: std_logic;
+    signal co2: std_logic;
+    signal iwcount_8: std_logic;
+    signal iwcount_9: std_logic;
+    signal co3: std_logic;
+    signal iwcount_10: std_logic;
+    signal iwcount_11: std_logic;
+    signal co4: std_logic;
+    signal iwcount_12: std_logic;
+    signal iwcount_13: std_logic;
+    signal co5: std_logic;
+    signal iwcount_14: std_logic;
+    signal iwcount_15: std_logic;
+    signal co7: std_logic;
+    signal wcount_15: std_logic;
+    signal co6: std_logic;
+    signal ircount_0: std_logic;
+    signal ircount_1: std_logic;
+    signal r_gctr_ci: std_logic;
+    signal ircount_2: std_logic;
+    signal ircount_3: std_logic;
+    signal co0_1: std_logic;
+    signal ircount_4: std_logic;
+    signal ircount_5: std_logic;
+    signal co1_1: std_logic;
+    signal ircount_6: std_logic;
+    signal ircount_7: std_logic;
+    signal co2_1: std_logic;
+    signal ircount_8: std_logic;
+    signal ircount_9: std_logic;
+    signal co3_1: std_logic;
+    signal ircount_10: std_logic;
+    signal ircount_11: std_logic;
+    signal co4_1: std_logic;
+    signal ircount_12: std_logic;
+    signal ircount_13: std_logic;
+    signal co5_1: std_logic;
+    signal ircount_14: std_logic;
+    signal ircount_15: std_logic;
+    signal co6_1: std_logic;
+    signal ircount_16: std_logic;
+    signal co8: std_logic;
+    signal rcount_16: std_logic;
+    signal co7_1: std_logic;
+    signal mdout1_3_0: std_logic;
+    signal mdout1_2_0: std_logic;
+    signal mdout1_1_0: std_logic;
+    signal mdout1_0_0: std_logic;
+    signal mdout1_3_1: std_logic;
+    signal mdout1_2_1: std_logic;
+    signal mdout1_1_1: std_logic;
+    signal mdout1_0_1: std_logic;
+    signal mdout1_3_2: std_logic;
+    signal mdout1_2_2: std_logic;
+    signal mdout1_1_2: std_logic;
+    signal mdout1_0_2: std_logic;
+    signal mdout1_3_3: std_logic;
+    signal mdout1_2_3: std_logic;
+    signal mdout1_1_3: std_logic;
+    signal mdout1_0_3: std_logic;
+    signal mdout1_3_4: std_logic;
+    signal mdout1_2_4: std_logic;
+    signal mdout1_1_4: std_logic;
+    signal mdout1_0_4: std_logic;
+    signal mdout1_3_5: std_logic;
+    signal mdout1_2_5: std_logic;
+    signal mdout1_1_5: std_logic;
+    signal mdout1_0_5: std_logic;
+    signal mdout1_3_6: std_logic;
+    signal mdout1_2_6: std_logic;
+    signal mdout1_1_6: std_logic;
+    signal mdout1_0_6: std_logic;
+    signal rptr_15_ff: std_logic;
+    signal rptr_14_ff: std_logic;
+    signal mdout1_3_7: std_logic;
+    signal mdout1_2_7: std_logic;
+    signal mdout1_1_7: std_logic;
+    signal mdout1_0_7: std_logic;
+    signal wcnt_sub_0: std_logic;
+    signal wcnt_sub_1: std_logic;
+    signal wcnt_sub_2: std_logic;
+    signal co0_2: std_logic;
+    signal wcnt_sub_3: std_logic;
+    signal wcnt_sub_4: std_logic;
+    signal co1_2: std_logic;
+    signal wcnt_sub_5: std_logic;
+    signal wcnt_sub_6: std_logic;
+    signal co2_2: std_logic;
+    signal wcnt_sub_7: std_logic;
+    signal wcnt_sub_8: std_logic;
+    signal co3_2: std_logic;
+    signal wcnt_sub_9: std_logic;
+    signal wcnt_sub_10: std_logic;
+    signal co4_2: std_logic;
+    signal wcnt_sub_11: std_logic;
+    signal wcnt_sub_12: std_logic;
+    signal co5_2: std_logic;
+    signal wcnt_sub_13: std_logic;
+    signal wcnt_sub_14: std_logic;
+    signal co6_2: std_logic;
+    signal wcnt_sub_15: std_logic;
+    signal co7_2: std_logic;
+    signal wcnt_sub_msb: std_logic;
+    signal rcnt_sub_0: std_logic;
+    signal rcnt_sub_1: std_logic;
+    signal rcnt_sub_2: std_logic;
+    signal co0_3: std_logic;
+    signal rcnt_sub_3: std_logic;
+    signal rcnt_sub_4: std_logic;
+    signal co1_3: std_logic;
+    signal rcnt_sub_5: std_logic;
+    signal rcnt_sub_6: std_logic;
+    signal co2_3: std_logic;
+    signal rcnt_sub_7: std_logic;
+    signal rcnt_sub_8: std_logic;
+    signal co3_3: std_logic;
+    signal rcnt_sub_9: std_logic;
+    signal rcnt_sub_10: std_logic;
+    signal co4_3: std_logic;
+    signal rcnt_sub_11: std_logic;
+    signal rcnt_sub_12: std_logic;
+    signal co5_3: std_logic;
+    signal rcnt_sub_13: std_logic;
+    signal rcnt_sub_14: std_logic;
+    signal co6_3: std_logic;
+    signal rcnt_sub_15: std_logic;
+    signal rcnt_sub_16: std_logic;
+    signal co7_3: std_logic;
+    signal rcnt_sub_msb: std_logic;
+    signal co8_1d: std_logic;
+    signal co8_1: std_logic;
+    signal wfill_sub_0: std_logic;
+    signal wptr_0: std_logic;
+    signal wfill_sub_1: std_logic;
+    signal wfill_sub_2: std_logic;
+    signal co0_4: std_logic;
+    signal wptr_1: std_logic;
+    signal wptr_2: std_logic;
+    signal wfill_sub_3: std_logic;
+    signal wfill_sub_4: std_logic;
+    signal co1_4: std_logic;
+    signal wptr_3: std_logic;
+    signal wptr_4: std_logic;
+    signal wfill_sub_5: std_logic;
+    signal wfill_sub_6: std_logic;
+    signal co2_4: std_logic;
+    signal wptr_5: std_logic;
+    signal wptr_6: std_logic;
+    signal wfill_sub_7: std_logic;
+    signal wfill_sub_8: std_logic;
+    signal co3_4: std_logic;
+    signal wptr_7: std_logic;
+    signal wptr_8: std_logic;
+    signal wfill_sub_9: std_logic;
+    signal wfill_sub_10: std_logic;
+    signal co4_4: std_logic;
+    signal wptr_9: std_logic;
+    signal wptr_10: std_logic;
+    signal wfill_sub_11: std_logic;
+    signal wfill_sub_12: std_logic;
+    signal co5_4: std_logic;
+    signal wptr_11: std_logic;
+    signal wptr_12: std_logic;
+    signal wfill_sub_13: std_logic;
+    signal wfill_sub_14: std_logic;
+    signal co6_4: std_logic;
+    signal wptr_13: std_logic;
+    signal wptr_14: std_logic;
+    signal wfill_sub_15: std_logic;
+    signal co7_4: std_logic;
+    signal wfill_sub_msb: std_logic;
+    signal rfill_sub_0: std_logic;
+    signal rptr_0: std_logic;
+    signal scuba_vhi: std_logic;
+    signal rfill_sub_1: std_logic;
+    signal rfill_sub_2: std_logic;
+    signal co0_5: std_logic;
+    signal rptr_1: std_logic;
+    signal rptr_2: std_logic;
+    signal rfill_sub_3: std_logic;
+    signal rfill_sub_4: std_logic;
+    signal co1_5: std_logic;
+    signal rptr_3: std_logic;
+    signal rptr_4: std_logic;
+    signal rfill_sub_5: std_logic;
+    signal rfill_sub_6: std_logic;
+    signal co2_5: std_logic;
+    signal rptr_5: std_logic;
+    signal rptr_6: std_logic;
+    signal rfill_sub_7: std_logic;
+    signal rfill_sub_8: std_logic;
+    signal co3_5: std_logic;
+    signal rptr_7: std_logic;
+    signal rptr_8: std_logic;
+    signal rfill_sub_9: std_logic;
+    signal rfill_sub_10: std_logic;
+    signal co4_5: std_logic;
+    signal rptr_9: std_logic;
+    signal rptr_10: std_logic;
+    signal rfill_sub_11: std_logic;
+    signal rfill_sub_12: std_logic;
+    signal co5_5: std_logic;
+    signal rptr_11: std_logic;
+    signal rptr_12: std_logic;
+    signal rfill_sub_13: std_logic;
+    signal rfill_sub_14: std_logic;
+    signal co6_5: std_logic;
+    signal rptr_13: std_logic;
+    signal rptr_14: std_logic;
+    signal rfill_sub_15: std_logic;
+    signal rfill_sub_16: std_logic;
+    signal co7_5: std_logic;
+    signal rptr_15: std_logic;
+    signal rfill_sub_msb: std_logic;
+    signal co8_2d: std_logic;
+    signal co8_2: std_logic;
+    signal cmp_ci: std_logic;
+    signal wcount_r0: std_logic;
+    signal rcount_0: std_logic;
+    signal rcount_1: std_logic;
+    signal co0_6: std_logic;
+    signal wcount_r1: std_logic;
+    signal wcount_r2: std_logic;
+    signal rcount_2: std_logic;
+    signal rcount_3: std_logic;
+    signal co1_6: std_logic;
+    signal wcount_r3: std_logic;
+    signal wcount_r4: std_logic;
+    signal rcount_4: std_logic;
+    signal rcount_5: std_logic;
+    signal co2_6: std_logic;
+    signal wcount_r5: std_logic;
+    signal wcount_r6: std_logic;
+    signal rcount_6: std_logic;
+    signal rcount_7: std_logic;
+    signal co3_6: std_logic;
+    signal wcount_r7: std_logic;
+    signal wcount_r8: std_logic;
+    signal rcount_8: std_logic;
+    signal rcount_9: std_logic;
+    signal co4_6: std_logic;
+    signal wcount_r9: std_logic;
+    signal wcount_r10: std_logic;
+    signal rcount_10: std_logic;
+    signal rcount_11: std_logic;
+    signal co5_6: std_logic;
+    signal wcount_r11: std_logic;
+    signal w_g2b_xor_cluster_0: std_logic;
+    signal rcount_12: std_logic;
+    signal rcount_13: std_logic;
+    signal co6_6: std_logic;
+    signal wcount_r13: std_logic;
+    signal wcount_r14: std_logic;
+    signal rcount_14: std_logic;
+    signal rcount_15: std_logic;
+    signal co7_6: std_logic;
+    signal empty_cmp_clr: std_logic;
+    signal empty_cmp_set: std_logic;
+    signal empty_d: std_logic;
+    signal empty_d_c: std_logic;
+    signal cmp_ci_1: std_logic;
+    signal rcount_w1: std_logic;
+    signal rcount_w2: std_logic;
+    signal wcount_0: std_logic;
+    signal wcount_1: std_logic;
+    signal co0_7: std_logic;
+    signal rcount_w3: std_logic;
+    signal rcount_w4: std_logic;
+    signal wcount_2: std_logic;
+    signal wcount_3: std_logic;
+    signal co1_7: std_logic;
+    signal rcount_w5: std_logic;
+    signal rcount_w6: std_logic;
+    signal wcount_4: std_logic;
+    signal wcount_5: std_logic;
+    signal co2_7: std_logic;
+    signal rcount_w7: std_logic;
+    signal rcount_w8: std_logic;
+    signal wcount_6: std_logic;
+    signal wcount_7: std_logic;
+    signal co3_7: std_logic;
+    signal rcount_w9: std_logic;
+    signal rcount_w10: std_logic;
+    signal wcount_8: std_logic;
+    signal wcount_9: std_logic;
+    signal co4_7: std_logic;
+    signal rcount_w11: std_logic;
+    signal rcount_w12: std_logic;
+    signal wcount_10: std_logic;
+    signal wcount_11: std_logic;
+    signal co5_7: std_logic;
+    signal r_g2b_xor_cluster_0: std_logic;
+    signal rcount_w14: std_logic;
+    signal wcount_12: std_logic;
+    signal wcount_13: std_logic;
+    signal co6_7: std_logic;
+    signal rcount_w15: std_logic;
+    signal full_cmp_clr: std_logic;
+    signal wcount_14: std_logic;
+    signal full_cmp_set: std_logic;
+    signal full_d: std_logic;
+    signal full_d_c: std_logic;
+    signal rden_i: std_logic;
+    signal cmp_ci_2: std_logic;
+    signal rcnt_reg_0: std_logic;
+    signal rcnt_reg_1: std_logic;
+    signal co0_8: std_logic;
+    signal rcnt_reg_2: std_logic;
+    signal rcnt_reg_3: std_logic;
+    signal co1_8: std_logic;
+    signal rcnt_reg_4: std_logic;
+    signal rcnt_reg_5: std_logic;
+    signal co2_8: std_logic;
+    signal rcnt_reg_6: std_logic;
+    signal rcnt_reg_7: std_logic;
+    signal co3_8: std_logic;
+    signal rcnt_reg_8: std_logic;
+    signal rcnt_reg_9: std_logic;
+    signal co4_8: std_logic;
+    signal rcnt_reg_10: std_logic;
+    signal rcnt_reg_11: std_logic;
+    signal co5_8: std_logic;
+    signal rcnt_reg_12: std_logic;
+    signal rcnt_reg_13: std_logic;
+    signal co6_8: std_logic;
+    signal rcnt_reg_14: std_logic;
+    signal rcnt_reg_15: std_logic;
+    signal co7_7: std_logic;
+    signal ae_clrsig: std_logic;
+    signal ae_setsig: std_logic;
+    signal ae_d: std_logic;
+    signal ae_d_c: std_logic;
+    signal wren_i: std_logic;
+    signal cmp_ci_3: std_logic;
+    signal wcnt_reg_0: std_logic;
+    signal wcnt_reg_1: std_logic;
+    signal co0_9: std_logic;
+    signal wcnt_reg_2: std_logic;
+    signal wcnt_reg_3: std_logic;
+    signal co1_9: std_logic;
+    signal wcnt_reg_4: std_logic;
+    signal wcnt_reg_5: std_logic;
+    signal co2_9: std_logic;
+    signal wcnt_reg_6: std_logic;
+    signal wcnt_reg_7: std_logic;
+    signal co3_9: std_logic;
+    signal wcnt_reg_8: std_logic;
+    signal wcnt_reg_9: std_logic;
+    signal co4_9: std_logic;
+    signal wcnt_reg_10: std_logic;
+    signal wcnt_reg_11: std_logic;
+    signal co5_9: std_logic;
+    signal wcnt_reg_12: std_logic;
+    signal wcnt_reg_13: std_logic;
+    signal co6_9: std_logic;
+    signal wcnt_reg_14: std_logic;
+    signal wcnt_reg_15: std_logic;
+    signal af_d: std_logic;
+    signal af_d_c: std_logic;
+    signal scuba_vlo: std_logic;
+
+    -- local component declarations
+    component AGEB2
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; 
+            B1: in  std_logic; CI: in  std_logic; GE: out  std_logic);
+    end component;
+    component AND2
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);
+    end component;
+    component CU2
+        port (CI: in  std_logic; PC0: in  std_logic; PC1: in  std_logic; 
+            CO: out  std_logic; NC0: out  std_logic; NC1: out  std_logic);
+    end component;
+    component FADD2B
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; 
+            B1: in  std_logic; CI: in  std_logic; COUT: out  std_logic; 
+            S0: out  std_logic; S1: out  std_logic);
+    end component;
+    component FSUB2B
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; 
+            B1: in  std_logic; BI: in  std_logic; BOUT: out  std_logic; 
+            S0: out  std_logic; S1: out  std_logic);
+    end component;
+    component FD1P3BX
+    -- synopsys translate_off
+        generic (GSR : in String);
+    -- synopsys translate_on
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; 
+            PD: in  std_logic; Q: out  std_logic);
+    end component;
+    component FD1P3DX
+    -- synopsys translate_off
+        generic (GSR : in String);
+    -- synopsys translate_on
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; 
+            CD: in  std_logic; Q: out  std_logic);
+    end component;
+    component FD1S3BX
+    -- synopsys translate_off
+        generic (GSR : in String);
+    -- synopsys translate_on
+        port (D: in  std_logic; CK: in  std_logic; PD: in  std_logic; 
+            Q: out  std_logic);
+    end component;
+    component FD1S3DX
+    -- synopsys translate_off
+        generic (GSR : in String);
+    -- synopsys translate_on
+        port (D: in  std_logic; CK: in  std_logic; CD: in  std_logic; 
+            Q: out  std_logic);
+    end component;
+    component INV
+        port (A: in  std_logic; Z: out  std_logic);
+    end component;
+    component MUX41
+        port (D0: in  std_logic; D1: in  std_logic; D2: in  std_logic; 
+            D3: in  std_logic; SD1: in  std_logic; SD2: in  std_logic; 
+            Z: out  std_logic);
+    end component;
+    component OR2
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);
+    end component;
+    component ROM16X1
+    -- synopsys translate_off
+        generic (initval : in String);
+    -- synopsys translate_on
+        port (AD3: in  std_logic; AD2: in  std_logic; AD1: in  std_logic; 
+            AD0: in  std_logic; DO0: out  std_logic);
+    end component;
+    component VHI
+        port (Z: out  std_logic);
+    end component;
+    component VLO
+        port (Z: out  std_logic);
+    end component;
+    component XOR2
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);
+    end component;
+    component DP16KB
+    -- synopsys translate_off
+        generic (GSR : in String; WRITEMODE_B : in String; 
+                CSDECODE_B : in std_logic_vector(2 downto 0); 
+                CSDECODE_A : in std_logic_vector(2 downto 0); 
+                WRITEMODE_A : in String; RESETMODE : in String; 
+                REGMODE_B : in String; REGMODE_A : in String; 
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);
+    -- synopsys translate_on
+        port (DIA0: in  std_logic; DIA1: in  std_logic; 
+            DIA2: in  std_logic; DIA3: in  std_logic; 
+            DIA4: in  std_logic; DIA5: in  std_logic; 
+            DIA6: in  std_logic; DIA7: in  std_logic; 
+            DIA8: in  std_logic; DIA9: in  std_logic; 
+            DIA10: in  std_logic; DIA11: in  std_logic; 
+            DIA12: in  std_logic; DIA13: in  std_logic; 
+            DIA14: in  std_logic; DIA15: in  std_logic; 
+            DIA16: in  std_logic; DIA17: in  std_logic; 
+            ADA0: in  std_logic; ADA1: in  std_logic; 
+            ADA2: in  std_logic; ADA3: in  std_logic; 
+            ADA4: in  std_logic; ADA5: in  std_logic; 
+            ADA6: in  std_logic; ADA7: in  std_logic; 
+            ADA8: in  std_logic; ADA9: in  std_logic; 
+            ADA10: in  std_logic; ADA11: in  std_logic; 
+            ADA12: in  std_logic; ADA13: in  std_logic; 
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; 
+            CSA0: in  std_logic; CSA1: in  std_logic; 
+            CSA2: in  std_logic; RSTA: in  std_logic; 
+            DIB0: in  std_logic; DIB1: in  std_logic; 
+            DIB2: in  std_logic; DIB3: in  std_logic; 
+            DIB4: in  std_logic; DIB5: in  std_logic; 
+            DIB6: in  std_logic; DIB7: in  std_logic; 
+            DIB8: in  std_logic; DIB9: in  std_logic; 
+            DIB10: in  std_logic; DIB11: in  std_logic; 
+            DIB12: in  std_logic; DIB13: in  std_logic; 
+            DIB14: in  std_logic; DIB15: in  std_logic; 
+            DIB16: in  std_logic; DIB17: in  std_logic; 
+            ADB0: in  std_logic; ADB1: in  std_logic; 
+            ADB2: in  std_logic; ADB3: in  std_logic; 
+            ADB4: in  std_logic; ADB5: in  std_logic; 
+            ADB6: in  std_logic; ADB7: in  std_logic; 
+            ADB8: in  std_logic; ADB9: in  std_logic; 
+            ADB10: in  std_logic; ADB11: in  std_logic; 
+            ADB12: in  std_logic; ADB13: in  std_logic; 
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; 
+            CSB0: in  std_logic; CSB1: in  std_logic; 
+            CSB2: in  std_logic; RSTB: in  std_logic; 
+            DOA0: out  std_logic; DOA1: out  std_logic; 
+            DOA2: out  std_logic; DOA3: out  std_logic; 
+            DOA4: out  std_logic; DOA5: out  std_logic; 
+            DOA6: out  std_logic; DOA7: out  std_logic; 
+            DOA8: out  std_logic; DOA9: out  std_logic; 
+            DOA10: out  std_logic; DOA11: out  std_logic; 
+            DOA12: out  std_logic; DOA13: out  std_logic; 
+            DOA14: out  std_logic; DOA15: out  std_logic; 
+            DOA16: out  std_logic; DOA17: out  std_logic; 
+            DOB0: out  std_logic; DOB1: out  std_logic; 
+            DOB2: out  std_logic; DOB3: out  std_logic; 
+            DOB4: out  std_logic; DOB5: out  std_logic; 
+            DOB6: out  std_logic; DOB7: out  std_logic; 
+            DOB8: out  std_logic; DOB9: out  std_logic; 
+            DOB10: out  std_logic; DOB11: out  std_logic; 
+            DOB12: out  std_logic; DOB13: out  std_logic; 
+            DOB14: out  std_logic; DOB15: out  std_logic; 
+            DOB16: out  std_logic; DOB17: out  std_logic);
+    end component;
+    attribute initval : string; 
+    attribute MEM_LPC_FILE : string; 
+    attribute MEM_INIT_FILE : string; 
+    attribute CSDECODE_B : string; 
+    attribute CSDECODE_A : string; 
+    attribute WRITEMODE_B : string; 
+    attribute WRITEMODE_A : string; 
+    attribute RESETMODE : string; 
+    attribute REGMODE_B : string; 
+    attribute REGMODE_A : string; 
+    attribute DATA_WIDTH_B : string; 
+    attribute DATA_WIDTH_A : string; 
+    attribute GSR : string; 
+    attribute initval of LUT4_52 : label is "0x6996";
+    attribute initval of LUT4_51 : label is "0x6996";
+    attribute initval of LUT4_50 : label is "0x6996";
+    attribute initval of LUT4_49 : label is "0x6996";
+    attribute initval of LUT4_48 : label is "0x6996";
+    attribute initval of LUT4_47 : label is "0x6996";
+    attribute initval of LUT4_46 : label is "0x6996";
+    attribute initval of LUT4_45 : label is "0x6996";
+    attribute initval of LUT4_44 : label is "0x6996";
+    attribute initval of LUT4_43 : label is "0x6996";
+    attribute initval of LUT4_42 : label is "0x6996";
+    attribute initval of LUT4_41 : label is "0x6996";
+    attribute initval of LUT4_40 : label is "0x6996";
+    attribute initval of LUT4_39 : label is "0x6996";
+    attribute initval of LUT4_38 : label is "0x6996";
+    attribute initval of LUT4_37 : label is "0x6996";
+    attribute initval of LUT4_36 : label is "0x6996";
+    attribute initval of LUT4_35 : label is "0x6996";
+    attribute initval of LUT4_34 : label is "0x6996";
+    attribute initval of LUT4_33 : label is "0x6996";
+    attribute initval of LUT4_32 : label is "0x6996";
+    attribute initval of LUT4_31 : label is "0x6996";
+    attribute initval of LUT4_30 : label is "0x6996";
+    attribute initval of LUT4_29 : label is "0x6996";
+    attribute initval of LUT4_28 : label is "0x6996";
+    attribute initval of LUT4_27 : label is "0x6996";
+    attribute initval of LUT4_26 : label is "0x6996";
+    attribute initval of LUT4_25 : label is "0x6996";
+    attribute initval of LUT4_24 : label is "0x6996";
+    attribute initval of LUT4_23 : label is "0x6996";
+    attribute initval of LUT4_22 : label is "0x6996";
+    attribute initval of LUT4_21 : label is "0x6996";
+    attribute initval of LUT4_20 : label is "0x6996";
+    attribute initval of LUT4_19 : label is "0x6996";
+    attribute initval of LUT4_18 : label is "0x6996";
+    attribute initval of LUT4_17 : label is "0x6996";
+    attribute initval of LUT4_16 : label is "0x6996";
+    attribute initval of LUT4_15 : label is "0x6996";
+    attribute initval of LUT4_14 : label is "0x6996";
+    attribute initval of LUT4_13 : label is "0x6996";
+    attribute initval of LUT4_12 : label is "0x6996";
+    attribute initval of LUT4_11 : label is "0x6996";
+    attribute initval of LUT4_10 : label is "0x6996";
+    attribute initval of LUT4_9 : label is "0x6996";
+    attribute initval of LUT4_8 : label is "0x6996";
+    attribute initval of LUT4_7 : label is "0x6996";
+    attribute initval of LUT4_6 : label is "0x6996";
+    attribute initval of LUT4_5 : label is "0x6996";
+    attribute initval of LUT4_4 : label is "0x6996";
+    attribute initval of LUT4_3 : label is "0x0410";
+    attribute initval of LUT4_2 : label is "0x1004";
+    attribute initval of LUT4_1 : label is "0x0140";
+    attribute initval of LUT4_0 : label is "0x4001";
+    attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_0_31 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_0_31 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_0_31 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_0_31 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_0_31 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_0_31 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_0_31 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_0_31 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_0_31 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_0_31 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_1_30 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_1_30 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_1_30 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_1_30 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_1_30 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_1_30 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_1_30 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_1_30 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_1_30 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_1_30 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_1_30 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_1_30 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_2_29 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_2_29 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_2_29 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_2_29 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_2_29 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_2_29 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_2_29 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_2_29 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_2_29 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_2_29 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_2_29 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_2_29 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_3_28 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_3_28 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_3_28 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_3_28 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_3_28 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_3_28 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_3_28 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_3_28 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_3_28 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_3_28 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_3_28 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_3_28 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_4_27 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_4_27 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_4_27 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_4_27 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_4_27 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_4_27 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_4_27 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_4_27 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_4_27 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_4_27 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_4_27 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_4_27 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_5_26 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_5_26 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_5_26 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_5_26 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_5_26 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_5_26 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_5_26 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_5_26 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_5_26 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_5_26 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_5_26 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_5_26 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_6_25 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_6_25 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_6_25 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_6_25 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_6_25 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_6_25 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_6_25 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_6_25 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_6_25 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_6_25 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_6_25 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_6_25 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_0_7_24 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_0_7_24 : label is "";
+    attribute CSDECODE_B of pdp_ram_0_7_24 : label is "0b000";
+    attribute CSDECODE_A of pdp_ram_0_7_24 : label is "0b000";
+    attribute WRITEMODE_B of pdp_ram_0_7_24 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_0_7_24 : label is "NORMAL";
+    attribute GSR of pdp_ram_0_7_24 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_0_7_24 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_0_7_24 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_0_7_24 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_0_7_24 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_0_7_24 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_0_23 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_0_23 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_0_23 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_0_23 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_0_23 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_0_23 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_0_23 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_0_23 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_0_23 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_0_23 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_0_23 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_0_23 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_1_22 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_1_22 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_1_22 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_1_22 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_1_22 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_1_22 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_1_22 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_1_22 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_1_22 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_1_22 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_1_22 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_1_22 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_2_21 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_2_21 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_2_21 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_2_21 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_2_21 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_2_21 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_2_21 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_2_21 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_2_21 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_2_21 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_2_21 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_2_21 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_3_20 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_3_20 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_3_20 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_3_20 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_3_20 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_3_20 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_3_20 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_3_20 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_3_20 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_3_20 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_3_20 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_3_20 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_4_19 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_4_19 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_4_19 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_4_19 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_4_19 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_4_19 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_4_19 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_4_19 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_4_19 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_4_19 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_4_19 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_4_19 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_5_18 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_5_18 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_5_18 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_5_18 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_5_18 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_5_18 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_5_18 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_5_18 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_5_18 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_5_18 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_5_18 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_5_18 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_6_17 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_6_17 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_6_17 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_6_17 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_6_17 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_6_17 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_6_17 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_6_17 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_6_17 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_6_17 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_6_17 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_6_17 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_1_7_16 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_1_7_16 : label is "";
+    attribute CSDECODE_B of pdp_ram_1_7_16 : label is "0b001";
+    attribute CSDECODE_A of pdp_ram_1_7_16 : label is "0b001";
+    attribute WRITEMODE_B of pdp_ram_1_7_16 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_1_7_16 : label is "NORMAL";
+    attribute GSR of pdp_ram_1_7_16 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_1_7_16 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_1_7_16 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_1_7_16 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_1_7_16 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_1_7_16 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_0_15 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_0_15 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_0_15 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_0_15 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_0_15 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_0_15 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_0_15 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_0_15 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_0_15 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_0_15 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_0_15 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_0_15 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_1_14 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_1_14 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_1_14 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_1_14 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_1_14 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_1_14 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_1_14 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_1_14 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_1_14 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_1_14 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_1_14 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_1_14 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_2_13 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_2_13 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_2_13 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_2_13 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_2_13 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_2_13 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_2_13 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_2_13 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_2_13 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_2_13 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_2_13 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_2_13 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_3_12 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_3_12 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_3_12 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_3_12 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_3_12 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_3_12 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_3_12 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_3_12 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_3_12 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_3_12 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_3_12 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_3_12 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_4_11 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_4_11 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_4_11 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_4_11 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_4_11 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_4_11 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_4_11 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_4_11 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_4_11 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_4_11 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_4_11 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_4_11 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_5_10 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_5_10 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_5_10 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_5_10 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_5_10 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_5_10 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_5_10 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_5_10 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_5_10 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_5_10 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_5_10 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_5_10 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_6_9 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_6_9 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_6_9 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_6_9 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_6_9 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_6_9 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_6_9 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_6_9 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_6_9 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_6_9 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_6_9 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_6_9 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_2_7_8 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_2_7_8 : label is "";
+    attribute CSDECODE_B of pdp_ram_2_7_8 : label is "0b010";
+    attribute CSDECODE_A of pdp_ram_2_7_8 : label is "0b010";
+    attribute WRITEMODE_B of pdp_ram_2_7_8 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_2_7_8 : label is "NORMAL";
+    attribute GSR of pdp_ram_2_7_8 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_2_7_8 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_2_7_8 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_2_7_8 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_2_7_8 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_2_7_8 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_0_7 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_0_7 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_0_7 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_0_7 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_0_7 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_0_7 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_0_7 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_0_7 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_0_7 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_0_7 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_0_7 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_0_7 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_1_6 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_1_6 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_1_6 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_1_6 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_1_6 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_1_6 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_1_6 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_1_6 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_1_6 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_1_6 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_1_6 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_1_6 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_2_5 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_2_5 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_2_5 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_2_5 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_2_5 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_2_5 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_2_5 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_2_5 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_2_5 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_2_5 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_2_5 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_2_5 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_3_4 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_3_4 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_3_4 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_3_4 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_3_4 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_3_4 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_3_4 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_3_4 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_3_4 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_3_4 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_3_4 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_3_4 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_4_3 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_4_3 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_4_3 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_4_3 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_4_3 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_4_3 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_4_3 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_4_3 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_4_3 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_4_3 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_4_3 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_4_3 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_5_2 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_5_2 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_5_2 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_5_2 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_5_2 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_5_2 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_5_2 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_5_2 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_5_2 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_5_2 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_5_2 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_5_2 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_6_1 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_6_1 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_6_1 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_6_1 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_6_1 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_6_1 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_6_1 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_6_1 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_6_1 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_6_1 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_6_1 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_6_1 : label is "2";
+    attribute MEM_LPC_FILE of pdp_ram_3_7_0 : label is "fifo_32kx16x8_mb.lpc";
+    attribute MEM_INIT_FILE of pdp_ram_3_7_0 : label is "";
+    attribute CSDECODE_B of pdp_ram_3_7_0 : label is "0b011";
+    attribute CSDECODE_A of pdp_ram_3_7_0 : label is "0b011";
+    attribute WRITEMODE_B of pdp_ram_3_7_0 : label is "NORMAL";
+    attribute WRITEMODE_A of pdp_ram_3_7_0 : label is "NORMAL";
+    attribute GSR of pdp_ram_3_7_0 : label is "DISABLED";
+    attribute RESETMODE of pdp_ram_3_7_0 : label is "ASYNC";
+    attribute REGMODE_B of pdp_ram_3_7_0 : label is "NOREG";
+    attribute REGMODE_A of pdp_ram_3_7_0 : label is "NOREG";
+    attribute DATA_WIDTH_B of pdp_ram_3_7_0 : label is "1";
+    attribute DATA_WIDTH_A of pdp_ram_3_7_0 : label is "2";
+    attribute GSR of FF_236 : label is "ENABLED";
+    attribute GSR of FF_235 : label is "ENABLED";
+    attribute GSR of FF_234 : label is "ENABLED";
+    attribute GSR of FF_233 : label is "ENABLED";
+    attribute GSR of FF_232 : label is "ENABLED";
+    attribute GSR of FF_231 : label is "ENABLED";
+    attribute GSR of FF_230 : label is "ENABLED";
+    attribute GSR of FF_229 : label is "ENABLED";
+    attribute GSR of FF_228 : label is "ENABLED";
+    attribute GSR of FF_227 : label is "ENABLED";
+    attribute GSR of FF_226 : label is "ENABLED";
+    attribute GSR of FF_225 : label is "ENABLED";
+    attribute GSR of FF_224 : label is "ENABLED";
+    attribute GSR of FF_223 : label is "ENABLED";
+    attribute GSR of FF_222 : label is "ENABLED";
+    attribute GSR of FF_221 : label is "ENABLED";
+    attribute GSR of FF_220 : label is "ENABLED";
+    attribute GSR of FF_219 : label is "ENABLED";
+    attribute GSR of FF_218 : label is "ENABLED";
+    attribute GSR of FF_217 : label is "ENABLED";
+    attribute GSR of FF_216 : label is "ENABLED";
+    attribute GSR of FF_215 : label is "ENABLED";
+    attribute GSR of FF_214 : label is "ENABLED";
+    attribute GSR of FF_213 : label is "ENABLED";
+    attribute GSR of FF_212 : label is "ENABLED";
+    attribute GSR of FF_211 : label is "ENABLED";
+    attribute GSR of FF_210 : label is "ENABLED";
+    attribute GSR of FF_209 : label is "ENABLED";
+    attribute GSR of FF_208 : label is "ENABLED";
+    attribute GSR of FF_207 : label is "ENABLED";
+    attribute GSR of FF_206 : label is "ENABLED";
+    attribute GSR of FF_205 : label is "ENABLED";
+    attribute GSR of FF_204 : label is "ENABLED";
+    attribute GSR of FF_203 : label is "ENABLED";
+    attribute GSR of FF_202 : label is "ENABLED";
+    attribute GSR of FF_201 : label is "ENABLED";
+    attribute GSR of FF_200 : label is "ENABLED";
+    attribute GSR of FF_199 : label is "ENABLED";
+    attribute GSR of FF_198 : label is "ENABLED";
+    attribute GSR of FF_197 : label is "ENABLED";
+    attribute GSR of FF_196 : label is "ENABLED";
+    attribute GSR of FF_195 : label is "ENABLED";
+    attribute GSR of FF_194 : label is "ENABLED";
+    attribute GSR of FF_193 : label is "ENABLED";
+    attribute GSR of FF_192 : label is "ENABLED";
+    attribute GSR of FF_191 : label is "ENABLED";
+    attribute GSR of FF_190 : label is "ENABLED";
+    attribute GSR of FF_189 : label is "ENABLED";
+    attribute GSR of FF_188 : label is "ENABLED";
+    attribute GSR of FF_187 : label is "ENABLED";
+    attribute GSR of FF_186 : label is "ENABLED";
+    attribute GSR of FF_185 : label is "ENABLED";
+    attribute GSR of FF_184 : label is "ENABLED";
+    attribute GSR of FF_183 : label is "ENABLED";
+    attribute GSR of FF_182 : label is "ENABLED";
+    attribute GSR of FF_181 : label is "ENABLED";
+    attribute GSR of FF_180 : label is "ENABLED";
+    attribute GSR of FF_179 : label is "ENABLED";
+    attribute GSR of FF_178 : label is "ENABLED";
+    attribute GSR of FF_177 : label is "ENABLED";
+    attribute GSR of FF_176 : label is "ENABLED";
+    attribute GSR of FF_175 : label is "ENABLED";
+    attribute GSR of FF_174 : label is "ENABLED";
+    attribute GSR of FF_173 : label is "ENABLED";
+    attribute GSR of FF_172 : label is "ENABLED";
+    attribute GSR of FF_171 : label is "ENABLED";
+    attribute GSR of FF_170 : label is "ENABLED";
+    attribute GSR of FF_169 : label is "ENABLED";
+    attribute GSR of FF_168 : label is "ENABLED";
+    attribute GSR of FF_167 : label is "ENABLED";
+    attribute GSR of FF_166 : label is "ENABLED";
+    attribute GSR of FF_165 : label is "ENABLED";
+    attribute GSR of FF_164 : label is "ENABLED";
+    attribute GSR of FF_163 : label is "ENABLED";
+    attribute GSR of FF_162 : label is "ENABLED";
+    attribute GSR of FF_161 : label is "ENABLED";
+    attribute GSR of FF_160 : label is "ENABLED";
+    attribute GSR of FF_159 : label is "ENABLED";
+    attribute GSR of FF_158 : label is "ENABLED";
+    attribute GSR of FF_157 : label is "ENABLED";
+    attribute GSR of FF_156 : label is "ENABLED";
+    attribute GSR of FF_155 : label is "ENABLED";
+    attribute GSR of FF_154 : label is "ENABLED";
+    attribute GSR of FF_153 : label is "ENABLED";
+    attribute GSR of FF_152 : label is "ENABLED";
+    attribute GSR of FF_151 : label is "ENABLED";
+    attribute GSR of FF_150 : label is "ENABLED";
+    attribute GSR of FF_149 : label is "ENABLED";
+    attribute GSR of FF_148 : label is "ENABLED";
+    attribute GSR of FF_147 : label is "ENABLED";
+    attribute GSR of FF_146 : label is "ENABLED";
+    attribute GSR of FF_145 : label is "ENABLED";
+    attribute GSR of FF_144 : label is "ENABLED";
+    attribute GSR of FF_143 : label is "ENABLED";
+    attribute GSR of FF_142 : label is "ENABLED";
+    attribute GSR of FF_141 : label is "ENABLED";
+    attribute GSR of FF_140 : label is "ENABLED";
+    attribute GSR of FF_139 : label is "ENABLED";
+    attribute GSR of FF_138 : label is "ENABLED";
+    attribute GSR of FF_137 : label is "ENABLED";
+    attribute GSR of FF_136 : label is "ENABLED";
+    attribute GSR of FF_135 : label is "ENABLED";
+    attribute GSR of FF_134 : label is "ENABLED";
+    attribute GSR of FF_133 : label is "ENABLED";
+    attribute GSR of FF_132 : label is "ENABLED";
+    attribute GSR of FF_131 : label is "ENABLED";
+    attribute GSR of FF_130 : label is "ENABLED";
+    attribute GSR of FF_129 : label is "ENABLED";
+    attribute GSR of FF_128 : label is "ENABLED";
+    attribute GSR of FF_127 : label is "ENABLED";
+    attribute GSR of FF_126 : label is "ENABLED";
+    attribute GSR of FF_125 : label is "ENABLED";
+    attribute GSR of FF_124 : label is "ENABLED";
+    attribute GSR of FF_123 : label is "ENABLED";
+    attribute GSR of FF_122 : label is "ENABLED";
+    attribute GSR of FF_121 : label is "ENABLED";
+    attribute GSR of FF_120 : label is "ENABLED";
+    attribute GSR of FF_119 : label is "ENABLED";
+    attribute GSR of FF_118 : label is "ENABLED";
+    attribute GSR of FF_117 : label is "ENABLED";
+    attribute GSR of FF_116 : label is "ENABLED";
+    attribute GSR of FF_115 : label is "ENABLED";
+    attribute GSR of FF_114 : label is "ENABLED";
+    attribute GSR of FF_113 : label is "ENABLED";
+    attribute GSR of FF_112 : label is "ENABLED";
+    attribute GSR of FF_111 : label is "ENABLED";
+    attribute GSR of FF_110 : label is "ENABLED";
+    attribute GSR of FF_109 : label is "ENABLED";
+    attribute GSR of FF_108 : label is "ENABLED";
+    attribute GSR of FF_107 : label is "ENABLED";
+    attribute GSR of FF_106 : label is "ENABLED";
+    attribute GSR of FF_105 : label is "ENABLED";
+    attribute GSR of FF_104 : label is "ENABLED";
+    attribute GSR of FF_103 : label is "ENABLED";
+    attribute GSR of FF_102 : label is "ENABLED";
+    attribute GSR of FF_101 : label is "ENABLED";
+    attribute GSR of FF_100 : label is "ENABLED";
+    attribute GSR of FF_99 : label is "ENABLED";
+    attribute GSR of FF_98 : label is "ENABLED";
+    attribute GSR of FF_97 : label is "ENABLED";
+    attribute GSR of FF_96 : label is "ENABLED";
+    attribute GSR of FF_95 : label is "ENABLED";
+    attribute GSR of FF_94 : label is "ENABLED";
+    attribute GSR of FF_93 : label is "ENABLED";
+    attribute GSR of FF_92 : label is "ENABLED";
+    attribute GSR of FF_91 : label is "ENABLED";
+    attribute GSR of FF_90 : label is "ENABLED";
+    attribute GSR of FF_89 : label is "ENABLED";
+    attribute GSR of FF_88 : label is "ENABLED";
+    attribute GSR of FF_87 : label is "ENABLED";
+    attribute GSR of FF_86 : label is "ENABLED";
+    attribute GSR of FF_85 : label is "ENABLED";
+    attribute GSR of FF_84 : label is "ENABLED";
+    attribute GSR of FF_83 : label is "ENABLED";
+    attribute GSR of FF_82 : label is "ENABLED";
+    attribute GSR of FF_81 : label is "ENABLED";
+    attribute GSR of FF_80 : label is "ENABLED";
+    attribute GSR of FF_79 : label is "ENABLED";
+    attribute GSR of FF_78 : label is "ENABLED";
+    attribute GSR of FF_77 : label is "ENABLED";
+    attribute GSR of FF_76 : label is "ENABLED";
+    attribute GSR of FF_75 : label is "ENABLED";
+    attribute GSR of FF_74 : label is "ENABLED";
+    attribute GSR of FF_73 : label is "ENABLED";
+    attribute GSR of FF_72 : label is "ENABLED";
+    attribute GSR of FF_71 : label is "ENABLED";
+    attribute GSR of FF_70 : label is "ENABLED";
+    attribute GSR of FF_69 : label is "ENABLED";
+    attribute GSR of FF_68 : label is "ENABLED";
+    attribute GSR of FF_67 : label is "ENABLED";
+    attribute GSR of FF_66 : label is "ENABLED";
+    attribute GSR of FF_65 : label is "ENABLED";
+    attribute GSR of FF_64 : label is "ENABLED";
+    attribute GSR of FF_63 : label is "ENABLED";
+    attribute GSR of FF_62 : label is "ENABLED";
+    attribute GSR of FF_61 : label is "ENABLED";
+    attribute GSR of FF_60 : label is "ENABLED";
+    attribute GSR of FF_59 : label is "ENABLED";
+    attribute GSR of FF_58 : label is "ENABLED";
+    attribute GSR of FF_57 : label is "ENABLED";
+    attribute GSR of FF_56 : label is "ENABLED";
+    attribute GSR of FF_55 : label is "ENABLED";
+    attribute GSR of FF_54 : label is "ENABLED";
+    attribute GSR of FF_53 : label is "ENABLED";
+    attribute GSR of FF_52 : label is "ENABLED";
+    attribute GSR of FF_51 : label is "ENABLED";
+    attribute GSR of FF_50 : label is "ENABLED";
+    attribute GSR of FF_49 : label is "ENABLED";
+    attribute GSR of FF_48 : label is "ENABLED";
+    attribute GSR of FF_47 : label is "ENABLED";
+    attribute GSR of FF_46 : label is "ENABLED";
+    attribute GSR of FF_45 : label is "ENABLED";
+    attribute GSR of FF_44 : label is "ENABLED";
+    attribute GSR of FF_43 : label is "ENABLED";
+    attribute GSR of FF_42 : label is "ENABLED";
+    attribute GSR of FF_41 : label is "ENABLED";
+    attribute GSR of FF_40 : label is "ENABLED";
+    attribute GSR of FF_39 : label is "ENABLED";
+    attribute GSR of FF_38 : label is "ENABLED";
+    attribute GSR of FF_37 : label is "ENABLED";
+    attribute GSR of FF_36 : label is "ENABLED";
+    attribute GSR of FF_35 : label is "ENABLED";
+    attribute GSR of FF_34 : label is "ENABLED";
+    attribute GSR of FF_33 : label is "ENABLED";
+    attribute GSR of FF_32 : label is "ENABLED";
+    attribute GSR of FF_31 : label is "ENABLED";
+    attribute GSR of FF_30 : label is "ENABLED";
+    attribute GSR of FF_29 : label is "ENABLED";
+    attribute GSR of FF_28 : label is "ENABLED";
+    attribute GSR of FF_27 : label is "ENABLED";
+    attribute GSR of FF_26 : label is "ENABLED";
+    attribute GSR of FF_25 : label is "ENABLED";
+    attribute GSR of FF_24 : label is "ENABLED";
+    attribute GSR of FF_23 : label is "ENABLED";
+    attribute GSR of FF_22 : label is "ENABLED";
+    attribute GSR of FF_21 : label is "ENABLED";
+    attribute GSR of FF_20 : label is "ENABLED";
+    attribute GSR of FF_19 : label is "ENABLED";
+    attribute GSR of FF_18 : label is "ENABLED";
+    attribute GSR of FF_17 : label is "ENABLED";
+    attribute GSR of FF_16 : label is "ENABLED";
+    attribute GSR of FF_15 : label is "ENABLED";
+    attribute GSR of FF_14 : label is "ENABLED";
+    attribute GSR of FF_13 : label is "ENABLED";
+    attribute GSR of FF_12 : label is "ENABLED";
+    attribute GSR of FF_11 : label is "ENABLED";
+    attribute GSR of FF_10 : label is "ENABLED";
+    attribute GSR of FF_9 : label is "ENABLED";
+    attribute GSR of FF_8 : label is "ENABLED";
+    attribute GSR of FF_7 : label is "ENABLED";
+    attribute GSR of FF_6 : label is "ENABLED";
+    attribute GSR of FF_5 : label is "ENABLED";
+    attribute GSR of FF_4 : label is "ENABLED";
+    attribute GSR of FF_3 : label is "ENABLED";
+    attribute GSR of FF_2 : label is "ENABLED";
+    attribute GSR of FF_1 : label is "ENABLED";
+    attribute GSR of FF_0 : label is "ENABLED";
+    attribute syn_keep : boolean;
+
+begin
+    -- component instantiation statements
+    AND2_t39: AND2
+        port map (A=>WrEn, B=>invout_1, Z=>wren_i);
+
+    INV_2: INV
+        port map (A=>full_i, Z=>invout_1);
+
+    AND2_t38: AND2
+        port map (A=>RdEn, B=>invout_0, Z=>rden_i);
+
+    INV_1: INV
+        port map (A=>empty_i, Z=>invout_0);
+
+    OR2_t37: OR2
+        port map (A=>Reset, B=>RPReset, Z=>rRst);
+
+    XOR2_t36: XOR2
+        port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0);
+
+    XOR2_t35: XOR2
+        port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1);
+
+    XOR2_t34: XOR2
+        port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2);
+
+    XOR2_t33: XOR2
+        port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3);
+
+    XOR2_t32: XOR2
+        port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4);
+
+    XOR2_t31: XOR2
+        port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5);
+
+    XOR2_t30: XOR2
+        port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6);
+
+    XOR2_t29: XOR2
+        port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7);
+
+    XOR2_t28: XOR2
+        port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8);
+
+    XOR2_t27: XOR2
+        port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9);
+
+    XOR2_t26: XOR2
+        port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10);
+
+    XOR2_t25: XOR2
+        port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11);
+
+    XOR2_t24: XOR2
+        port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12);
+
+    XOR2_t23: XOR2
+        port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13);
+
+    XOR2_t22: XOR2
+        port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14);
+
+    XOR2_t21: XOR2
+        port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0);
+
+    XOR2_t20: XOR2
+        port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1);
+
+    XOR2_t19: XOR2
+        port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2);
+
+    XOR2_t18: XOR2
+        port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3);
+
+    XOR2_t17: XOR2
+        port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4);
+
+    XOR2_t16: XOR2
+        port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5);
+
+    XOR2_t15: XOR2
+        port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6);
+
+    XOR2_t14: XOR2
+        port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7);
+
+    XOR2_t13: XOR2
+        port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8);
+
+    XOR2_t12: XOR2
+        port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9);
+
+    XOR2_t11: XOR2
+        port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10);
+
+    XOR2_t10: XOR2
+        port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11);
+
+    XOR2_t9: XOR2
+        port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12);
+
+    XOR2_t8: XOR2
+        port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13);
+
+    XOR2_t7: XOR2
+        port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14);
+
+    XOR2_t6: XOR2
+        port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15);
+
+    LUT4_52: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, 
+            AD1=>w_gcount_r214, AD0=>w_gcount_r215, 
+            DO0=>w_g2b_xor_cluster_0);
+
+    LUT4_51: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, 
+            AD1=>w_gcount_r210, AD0=>w_gcount_r211, 
+            DO0=>w_g2b_xor_cluster_1);
+
+    LUT4_50: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, 
+            AD1=>w_gcount_r26, AD0=>w_gcount_r27, 
+            DO0=>w_g2b_xor_cluster_2);
+
+    LUT4_49: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, 
+            AD1=>w_gcount_r22, AD0=>w_gcount_r23, 
+            DO0=>w_g2b_xor_cluster_3);
+
+    LUT4_48: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, AD1=>scuba_vlo, 
+            AD0=>scuba_vlo, DO0=>wcount_r14);
+
+    LUT4_47: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, 
+            AD1=>w_gcount_r215, AD0=>scuba_vlo, DO0=>wcount_r13);
+
+    LUT4_46: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, 
+            AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11);
+
+    LUT4_45: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, 
+            AD1=>w_gcount_r212, AD0=>wcount_r13, DO0=>wcount_r10);
+
+    LUT4_44: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, 
+            AD1=>w_gcount_r211, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r9);
+
+    LUT4_43: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r8);
+
+    LUT4_42: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_gcount_r27, AD0=>scuba_vlo, DO0=>wcount_r7);
+
+    LUT4_41: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>wcount_r6);
+
+    LUT4_40: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, 
+            AD1=>w_gcount_r27, AD0=>scuba_vlo, 
+            DO0=>w_g2b_xor_cluster_2_1);
+
+    LUT4_39: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r5);
+
+    LUT4_38: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r4);
+
+    LUT4_37: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r23, DO0=>wcount_r3);
+
+    LUT4_36: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, AD1=>scuba_vlo, 
+            AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1);
+
+    LUT4_35: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, 
+            DO0=>wcount_r2);
+
+    LUT4_34: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, 
+            AD1=>w_gcount_r23, AD0=>scuba_vlo, 
+            DO0=>w_g2b_xor_cluster_3_2);
+
+    LUT4_33: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, 
+            DO0=>wcount_r1);
+
+    LUT4_32: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, 
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, 
+            DO0=>wcount_r0);
+
+    LUT4_31: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, 
+            AD1=>r_gcount_w215, AD0=>r_gcount_w216, 
+            DO0=>r_g2b_xor_cluster_0);
+
+    LUT4_30: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, 
+            AD1=>r_gcount_w211, AD0=>r_gcount_w212, 
+            DO0=>r_g2b_xor_cluster_1);
+
+    LUT4_29: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, 
+            AD1=>r_gcount_w27, AD0=>r_gcount_w28, 
+            DO0=>r_g2b_xor_cluster_2);
+
+    LUT4_28: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, 
+            AD1=>r_gcount_w23, AD0=>r_gcount_w24, 
+            DO0=>r_g2b_xor_cluster_3);
+
+    LUT4_27: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, 
+            AD0=>scuba_vlo, DO0=>rcount_w15);
+
+    LUT4_26: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, 
+            AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14);
+
+    LUT4_25: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, 
+            AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12);
+
+    LUT4_24: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, 
+            AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11);
+
+    LUT4_23: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, 
+            AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, 
+            DO0=>rcount_w10);
+
+    LUT4_22: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9);
+
+    LUT4_21: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8);
+
+    LUT4_20: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7);
+
+    LUT4_19: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, 
+            AD1=>r_gcount_w28, AD0=>scuba_vlo, 
+            DO0=>r_g2b_xor_cluster_2_1);
+
+    LUT4_18: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6);
+
+    LUT4_17: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5);
+
+    LUT4_16: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4);
+
+    LUT4_15: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, 
+            AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1);
+
+    LUT4_14: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, 
+            DO0=>rcount_w3);
+
+    LUT4_13: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, 
+            AD1=>r_gcount_w24, AD0=>scuba_vlo, 
+            DO0=>r_g2b_xor_cluster_3_2);
+
+    LUT4_12: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, 
+            DO0=>rcount_w2);
+
+    LUT4_11: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, 
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, 
+            DO0=>rcount_w1);
+
+    LUT4_10: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, 
+            AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet);
+
+    LUT4_9: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, 
+            AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_1);
+
+    LUT4_8: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, 
+            AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_2);
+
+    LUT4_7: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, 
+            AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_3);
+
+    LUT4_6: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, 
+            AD0=>scuba_vlo, DO0=>func_xor_inet_4);
+
+    LUT4_5: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, 
+            AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, 
+            DO0=>func_xor_inet_5);
+
+    LUT4_4: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x6996")
+        -- synopsys translate_on
+        port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, 
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0);
+
+    XOR2_t5: XOR2
+        port map (A=>wcount_15, B=>r_gcount_w216, Z=>wcnt_sub_msb);
+
+    XOR2_t4: XOR2
+        port map (A=>w_gcount_r215, B=>rcount_16, Z=>rcnt_sub_msb);
+
+    XOR2_t3: XOR2
+        port map (A=>wptr_15, B=>r_gcount_w216, Z=>wfill_sub_msb);
+
+    XOR2_t2: XOR2
+        port map (A=>w_gcount_r215, B=>rptr_16, Z=>rfill_sub_msb);
+
+    LUT4_3: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x0410")
+        -- synopsys translate_on
+        port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, 
+            AD0=>scuba_vlo, DO0=>empty_cmp_set);
+
+    LUT4_2: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x1004")
+        -- synopsys translate_on
+        port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r215, 
+            AD0=>scuba_vlo, DO0=>empty_cmp_clr);
+
+    LUT4_1: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x0140")
+        -- synopsys translate_on
+        port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, 
+            AD0=>scuba_vlo, DO0=>full_cmp_set);
+
+    LUT4_0: ROM16X1
+        -- synopsys translate_off
+        generic map (initval=> "0x4001")
+        -- synopsys translate_on
+        port map (AD3=>wptr_15, AD2=>wcount_15, AD1=>r_gcount_w216, 
+            AD0=>scuba_vlo, DO0=>full_cmp_clr);
+
+    INV_0: INV
+        port map (A=>rcnt_reg_15, Z=>rcnt_reg_15_inv);
+
+    AND2_t1: AND2
+        port map (A=>rcnt_reg_16, B=>rcnt_reg_15_inv, Z=>ae_clrsig);
+
+    AND2_t0: AND2
+        port map (A=>rcnt_reg_16, B=>rcnt_reg_15, Z=>ae_setsig);
+
+    pdp_ram_0_0_31: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_0, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_1_30: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_1, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_2_29: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_2, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_3_28: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_3, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_4_27: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_4, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_5_26: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_5, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_6_25: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_6, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_0_7_24: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_0_7, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_0_23: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_0, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_1_22: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_1, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_2_21: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_2, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_3_20: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_3, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_4_19: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_4, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_5_18: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_5, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_6_17: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_6, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_1_7_16: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_1_7, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_0_15: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_0, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_1_14: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_1, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_2_13: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_2, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_3_12: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_3, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_4_11: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_4, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_5_10: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_5, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_6_9: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_6, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_2_7_8: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_2_7, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_0_7: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(8), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_0, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_1_6: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(9), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_1, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_2_5: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(10), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_2, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_3_4: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(11), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_3, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_4_3: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(12), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_4, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_5_2: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(13), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_5, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_6_1: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(14), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_6, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    pdp_ram_3_7_0: DP16KB
+        -- synopsys translate_off
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", 
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, 
+        DATA_WIDTH_A=>  2)
+        -- synopsys translate_on
+        port map (DIA0=>scuba_vlo, DIA1=>Data(15), DIA2=>scuba_vlo, 
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, 
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, 
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), 
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, 
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, 
+            ADA0=>scuba_vlo, ADA1=>wptr_0, ADA2=>wptr_1, ADA3=>wptr_2, 
+            ADA4=>wptr_3, ADA5=>wptr_4, ADA6=>wptr_5, ADA7=>wptr_6, 
+            ADA8=>wptr_7, ADA9=>wptr_8, ADA10=>wptr_9, ADA11=>wptr_10, 
+            ADA12=>wptr_11, ADA13=>wptr_12, CEA=>wren_i, CLKA=>WrClock, 
+            WEA=>scuba_vhi, CSA0=>wptr_13, CSA1=>wptr_14, 
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, 
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, 
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, 
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, 
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, 
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, 
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, 
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, 
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, 
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, 
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, 
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, 
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, 
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, 
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>mdout1_3_7, DOB1=>open, DOB2=>open, DOB3=>open, 
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, 
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, 
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, 
+            DOB17=>open);
+
+    FF_236: FD1P3BX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, 
+            Q=>wcount_0);
+
+    FF_235: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_1);
+
+    FF_234: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_2);
+
+    FF_233: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_3);
+
+    FF_232: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_4);
+
+    FF_231: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_5);
+
+    FF_230: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_6);
+
+    FF_229: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_7);
+
+    FF_228: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_8);
+
+    FF_227: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_9);
+
+    FF_226: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_10);
+
+    FF_225: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_11);
+
+    FF_224: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_12);
+
+    FF_223: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_13);
+
+    FF_222: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_14);
+
+    FF_221: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wcount_15);
+
+    FF_220: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_0);
+
+    FF_219: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_1);
+
+    FF_218: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_2);
+
+    FF_217: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_3);
+
+    FF_216: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_4);
+
+    FF_215: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_5);
+
+    FF_214: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_6);
+
+    FF_213: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_7);
+
+    FF_212: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_8);
+
+    FF_211: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_9);
+
+    FF_210: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_10);
+
+    FF_209: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_11);
+
+    FF_208: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_12);
+
+    FF_207: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_13);
+
+    FF_206: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_14);
+
+    FF_205: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>w_gcount_15);
+
+    FF_204: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_0);
+
+    FF_203: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_1);
+
+    FF_202: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_2);
+
+    FF_201: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_3);
+
+    FF_200: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_4);
+
+    FF_199: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_5);
+
+    FF_198: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_6);
+
+    FF_197: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_7);
+
+    FF_196: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_8);
+
+    FF_195: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_9);
+
+    FF_194: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_10);
+
+    FF_193: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_11);
+
+    FF_192: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_12);
+
+    FF_191: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_13);
+
+    FF_190: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_14);
+
+    FF_189: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, 
+            Q=>wptr_15);
+
+    FF_188: FD1P3BX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, 
+            Q=>rcount_0);
+
+    FF_187: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_1);
+
+    FF_186: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_2);
+
+    FF_185: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_3);
+
+    FF_184: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_4);
+
+    FF_183: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_5);
+
+    FF_182: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_6);
+
+    FF_181: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_7);
+
+    FF_180: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_8);
+
+    FF_179: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_9);
+
+    FF_178: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_10);
+
+    FF_177: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_11);
+
+    FF_176: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_12);
+
+    FF_175: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_13);
+
+    FF_174: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_14);
+
+    FF_173: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_15);
+
+    FF_172: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rcount_16);
+
+    FF_171: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_0);
+
+    FF_170: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_1);
+
+    FF_169: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_2);
+
+    FF_168: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_3);
+
+    FF_167: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_4);
+
+    FF_166: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_5);
+
+    FF_165: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_6);
+
+    FF_164: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_7);
+
+    FF_163: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_8);
+
+    FF_162: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_9);
+
+    FF_161: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_10);
+
+    FF_160: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_11);
+
+    FF_159: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_12);
+
+    FF_158: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_13);
+
+    FF_157: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_14);
+
+    FF_156: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_15);
+
+    FF_155: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>r_gcount_16);
+
+    FF_154: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_0);
+
+    FF_153: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_1);
+
+    FF_152: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_2);
+
+    FF_151: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_3);
+
+    FF_150: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_4);
+
+    FF_149: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_5);
+
+    FF_148: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_6);
+
+    FF_147: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_7);
+
+    FF_146: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_8);
+
+    FF_145: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_9);
+
+    FF_144: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_10);
+
+    FF_143: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_11);
+
+    FF_142: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_12);
+
+    FF_141: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_13);
+
+    FF_140: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_14);
+
+    FF_139: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_15);
+
+    FF_138: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, 
+            Q=>rptr_16);
+
+    FF_137: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, 
+            Q=>rptr_14_ff);
+
+    FF_136: FD1P3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, 
+            Q=>rptr_15_ff);
+
+    FF_135: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0);
+
+    FF_134: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1);
+
+    FF_133: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2);
+
+    FF_132: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3);
+
+    FF_131: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4);
+
+    FF_130: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5);
+
+    FF_129: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6);
+
+    FF_128: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7);
+
+    FF_127: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8);
+
+    FF_126: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9);
+
+    FF_125: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r10);
+
+    FF_124: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r11);
+
+    FF_123: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r12);
+
+    FF_122: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r13);
+
+    FF_121: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r14);
+
+    FF_120: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r15);
+
+    FF_119: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0);
+
+    FF_118: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1);
+
+    FF_117: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2);
+
+    FF_116: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3);
+
+    FF_115: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4);
+
+    FF_114: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5);
+
+    FF_113: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6);
+
+    FF_112: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7);
+
+    FF_111: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8);
+
+    FF_110: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9);
+
+    FF_109: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10);
+
+    FF_108: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11);
+
+    FF_107: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12);
+
+    FF_106: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13);
+
+    FF_105: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14);
+
+    FF_104: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15);
+
+    FF_103: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16);
+
+    FF_102: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r20);
+
+    FF_101: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r21);
+
+    FF_100: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r22);
+
+    FF_99: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r23);
+
+    FF_98: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r24);
+
+    FF_97: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r25);
+
+    FF_96: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r26);
+
+    FF_95: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r27);
+
+    FF_94: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r28);
+
+    FF_93: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r29);
+
+    FF_92: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r210);
+
+    FF_91: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r211);
+
+    FF_90: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r212);
+
+    FF_89: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r213);
+
+    FF_88: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r214);
+
+    FF_87: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, 
+            Q=>w_gcount_r215);
+
+    FF_86: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20);
+
+    FF_85: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21);
+
+    FF_84: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22);
+
+    FF_83: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23);
+
+    FF_82: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24);
+
+    FF_81: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25);
+
+    FF_80: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26);
+
+    FF_79: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27);
+
+    FF_78: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28);
+
+    FF_77: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29);
+
+    FF_76: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w210);
+
+    FF_75: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w211);
+
+    FF_74: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w212);
+
+    FF_73: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w213);
+
+    FF_72: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w214);
+
+    FF_71: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w215);
+
+    FF_70: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, 
+            Q=>r_gcount_w216);
+
+    FF_69: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_0, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_0);
+
+    FF_68: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_1, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_1);
+
+    FF_67: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_2, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_2);
+
+    FF_66: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_3, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_3);
+
+    FF_65: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_4, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_4);
+
+    FF_64: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_5, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_5);
+
+    FF_63: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_6, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_6);
+
+    FF_62: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_7, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_7);
+
+    FF_61: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_8, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_8);
+
+    FF_60: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_9, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_9);
+
+    FF_59: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_10, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_10);
+
+    FF_58: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_11, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_11);
+
+    FF_57: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_12, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_12);
+
+    FF_56: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_13, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_13);
+
+    FF_55: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_14, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_14);
+
+    FF_54: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wcnt_sub_15, CK=>WrClock, CD=>Reset, Q=>wcnt_reg_15);
+
+    FF_53: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_0, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_0);
+
+    FF_52: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_1, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_1);
+
+    FF_51: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_2, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_2);
+
+    FF_50: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_3, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_3);
+
+    FF_49: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_4, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_4);
+
+    FF_48: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_5, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_5);
+
+    FF_47: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_6, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_6);
+
+    FF_46: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_7, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_7);
+
+    FF_45: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_8, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_8);
+
+    FF_44: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_9, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_9);
+
+    FF_43: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_10, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_10);
+
+    FF_42: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_11, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_11);
+
+    FF_41: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_12, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_12);
+
+    FF_40: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_13, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_13);
+
+    FF_39: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_14, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_14);
+
+    FF_38: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_15, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_15);
+
+    FF_37: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rcnt_sub_16, CK=>RdClock, CD=>rRst, Q=>rcnt_reg_16);
+
+    FF_36: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_0, CK=>WrClock, CD=>Reset, Q=>WCNT(0));
+
+    FF_35: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_1, CK=>WrClock, CD=>Reset, Q=>WCNT(1));
+
+    FF_34: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_2, CK=>WrClock, CD=>Reset, Q=>WCNT(2));
+
+    FF_33: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_3, CK=>WrClock, CD=>Reset, Q=>WCNT(3));
+
+    FF_32: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_4, CK=>WrClock, CD=>Reset, Q=>WCNT(4));
+
+    FF_31: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_5, CK=>WrClock, CD=>Reset, Q=>WCNT(5));
+
+    FF_30: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_6, CK=>WrClock, CD=>Reset, Q=>WCNT(6));
+
+    FF_29: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_7, CK=>WrClock, CD=>Reset, Q=>WCNT(7));
+
+    FF_28: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_8, CK=>WrClock, CD=>Reset, Q=>WCNT(8));
+
+    FF_27: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_9, CK=>WrClock, CD=>Reset, Q=>WCNT(9));
+
+    FF_26: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_10, CK=>WrClock, CD=>Reset, Q=>WCNT(10));
+
+    FF_25: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_11, CK=>WrClock, CD=>Reset, Q=>WCNT(11));
+
+    FF_24: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_12, CK=>WrClock, CD=>Reset, Q=>WCNT(12));
+
+    FF_23: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_13, CK=>WrClock, CD=>Reset, Q=>WCNT(13));
+
+    FF_22: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_14, CK=>WrClock, CD=>Reset, Q=>WCNT(14));
+
+    FF_21: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>wfill_sub_15, CK=>WrClock, CD=>Reset, Q=>WCNT(15));
+
+    FF_20: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_0, CK=>RdClock, CD=>rRst, Q=>RCNT(0));
+
+    FF_19: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_1, CK=>RdClock, CD=>rRst, Q=>RCNT(1));
+
+    FF_18: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_2, CK=>RdClock, CD=>rRst, Q=>RCNT(2));
+
+    FF_17: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_3, CK=>RdClock, CD=>rRst, Q=>RCNT(3));
+
+    FF_16: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_4, CK=>RdClock, CD=>rRst, Q=>RCNT(4));
+
+    FF_15: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_5, CK=>RdClock, CD=>rRst, Q=>RCNT(5));
+
+    FF_14: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_6, CK=>RdClock, CD=>rRst, Q=>RCNT(6));
+
+    FF_13: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_7, CK=>RdClock, CD=>rRst, Q=>RCNT(7));
+
+    FF_12: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_8, CK=>RdClock, CD=>rRst, Q=>RCNT(8));
+
+    FF_11: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_9, CK=>RdClock, CD=>rRst, Q=>RCNT(9));
+
+    FF_10: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_10, CK=>RdClock, CD=>rRst, Q=>RCNT(10));
+
+    FF_9: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_11, CK=>RdClock, CD=>rRst, Q=>RCNT(11));
+
+    FF_8: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_12, CK=>RdClock, CD=>rRst, Q=>RCNT(12));
+
+    FF_7: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_13, CK=>RdClock, CD=>rRst, Q=>RCNT(13));
+
+    FF_6: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_14, CK=>RdClock, CD=>rRst, Q=>RCNT(14));
+
+    FF_5: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_15, CK=>RdClock, CD=>rRst, Q=>RCNT(15));
+
+    FF_4: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>rfill_sub_16, CK=>RdClock, CD=>rRst, Q=>RCNT(16));
+
+    FF_3: FD1S3BX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i);
+
+    FF_2: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i);
+
+    FF_1: FD1S3BX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>ae_d, CK=>RdClock, PD=>rRst, Q=>AlmostEmpty);
+
+    FF_0: FD1S3DX
+        -- synopsys translate_off
+        generic map (GSR=> "ENABLED")
+        -- synopsys translate_on
+        port map (D=>af_d, CK=>WrClock, CD=>Reset, Q=>AlmostFull);
+
+    w_gctr_cia: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, 
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, 
+            S1=>open);
+
+    w_gctr_0: CU2
+        port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, 
+            NC0=>iwcount_0, NC1=>iwcount_1);
+
+    w_gctr_1: CU2
+        port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, 
+            NC0=>iwcount_2, NC1=>iwcount_3);
+
+    w_gctr_2: CU2
+        port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, 
+            NC0=>iwcount_4, NC1=>iwcount_5);
+
+    w_gctr_3: CU2
+        port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, 
+            NC0=>iwcount_6, NC1=>iwcount_7);
+
+    w_gctr_4: CU2
+        port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, 
+            NC0=>iwcount_8, NC1=>iwcount_9);
+
+    w_gctr_5: CU2
+        port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, 
+            NC0=>iwcount_10, NC1=>iwcount_11);
+
+    w_gctr_6: CU2
+        port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, 
+            NC0=>iwcount_12, NC1=>iwcount_13);
+
+    w_gctr_7: CU2
+        port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, 
+            NC0=>iwcount_14, NC1=>iwcount_15);
+
+    r_gctr_cia: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, 
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, 
+            S1=>open);
+
+    r_gctr_0: CU2
+        port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, 
+            NC0=>ircount_0, NC1=>ircount_1);
+
+    r_gctr_1: CU2
+        port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, 
+            NC0=>ircount_2, NC1=>ircount_3);
+
+    r_gctr_2: CU2
+        port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, 
+            NC0=>ircount_4, NC1=>ircount_5);
+
+    r_gctr_3: CU2
+        port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, 
+            NC0=>ircount_6, NC1=>ircount_7);
+
+    r_gctr_4: CU2
+        port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, 
+            NC0=>ircount_8, NC1=>ircount_9);
+
+    r_gctr_5: CU2
+        port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, 
+            NC0=>ircount_10, NC1=>ircount_11);
+
+    r_gctr_6: CU2
+        port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, 
+            NC0=>ircount_12, NC1=>ircount_13);
+
+    r_gctr_7: CU2
+        port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, 
+            NC0=>ircount_14, NC1=>ircount_15);
+
+    r_gctr_8: CU2
+        port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8, 
+            NC0=>ircount_16, NC1=>open);
+
+    mux_7: MUX41
+        port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, 
+            D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0));
+
+    mux_6: MUX41
+        port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, 
+            D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1));
+
+    mux_5: MUX41
+        port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, 
+            D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2));
+
+    mux_4: MUX41
+        port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, 
+            D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3));
+
+    mux_3: MUX41
+        port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, 
+            D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4));
+
+    mux_2: MUX41
+        port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, 
+            D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5));
+
+    mux_1: MUX41
+        port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, 
+            D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6));
+
+    mux_0: MUX41
+        port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, 
+            D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7));
+
+    wcnt_0: FSUB2B
+        port map (A0=>scuba_vhi, A1=>wcount_0, B0=>scuba_vlo, 
+            B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_2, S0=>open, 
+            S1=>wcnt_sub_0);
+
+    wcnt_1: FSUB2B
+        port map (A0=>wcount_1, A1=>wcount_2, B0=>rcount_w2, 
+            B1=>rcount_w3, BI=>co0_2, BOUT=>co1_2, S0=>wcnt_sub_1, 
+            S1=>wcnt_sub_2);
+
+    wcnt_2: FSUB2B
+        port map (A0=>wcount_3, A1=>wcount_4, B0=>rcount_w4, 
+            B1=>rcount_w5, BI=>co1_2, BOUT=>co2_2, S0=>wcnt_sub_3, 
+            S1=>wcnt_sub_4);
+
+    wcnt_3: FSUB2B
+        port map (A0=>wcount_5, A1=>wcount_6, B0=>rcount_w6, 
+            B1=>rcount_w7, BI=>co2_2, BOUT=>co3_2, S0=>wcnt_sub_5, 
+            S1=>wcnt_sub_6);
+
+    wcnt_4: FSUB2B
+        port map (A0=>wcount_7, A1=>wcount_8, B0=>rcount_w8, 
+            B1=>rcount_w9, BI=>co3_2, BOUT=>co4_2, S0=>wcnt_sub_7, 
+            S1=>wcnt_sub_8);
+
+    wcnt_5: FSUB2B
+        port map (A0=>wcount_9, A1=>wcount_10, B0=>rcount_w10, 
+            B1=>rcount_w11, BI=>co4_2, BOUT=>co5_2, S0=>wcnt_sub_9, 
+            S1=>wcnt_sub_10);
+
+    wcnt_6: FSUB2B
+        port map (A0=>wcount_11, A1=>wcount_12, B0=>rcount_w12, 
+            B1=>r_g2b_xor_cluster_0, BI=>co5_2, BOUT=>co6_2, 
+            S0=>wcnt_sub_11, S1=>wcnt_sub_12);
+
+    wcnt_7: FSUB2B
+        port map (A0=>wcount_13, A1=>wcount_14, B0=>rcount_w14, 
+            B1=>rcount_w15, BI=>co6_2, BOUT=>co7_2, S0=>wcnt_sub_13, 
+            S1=>wcnt_sub_14);
+
+    wcnt_8: FSUB2B
+        port map (A0=>wcnt_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, BI=>co7_2, BOUT=>open, S0=>wcnt_sub_15, 
+            S1=>open);
+
+    rcnt_0: FSUB2B
+        port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>rcount_0, BI=>scuba_vlo, BOUT=>co0_3, S0=>open, 
+            S1=>rcnt_sub_0);
+
+    rcnt_1: FSUB2B
+        port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rcount_1, 
+            B1=>rcount_2, BI=>co0_3, BOUT=>co1_3, S0=>rcnt_sub_1, 
+            S1=>rcnt_sub_2);
+
+    rcnt_2: FSUB2B
+        port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rcount_3, 
+            B1=>rcount_4, BI=>co1_3, BOUT=>co2_3, S0=>rcnt_sub_3, 
+            S1=>rcnt_sub_4);
+
+    rcnt_3: FSUB2B
+        port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rcount_5, 
+            B1=>rcount_6, BI=>co2_3, BOUT=>co3_3, S0=>rcnt_sub_5, 
+            S1=>rcnt_sub_6);
+
+    rcnt_4: FSUB2B
+        port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rcount_7, 
+            B1=>rcount_8, BI=>co3_3, BOUT=>co4_3, S0=>rcnt_sub_7, 
+            S1=>rcnt_sub_8);
+
+    rcnt_5: FSUB2B
+        port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rcount_9, 
+            B1=>rcount_10, BI=>co4_3, BOUT=>co5_3, S0=>rcnt_sub_9, 
+            S1=>rcnt_sub_10);
+
+    rcnt_6: FSUB2B
+        port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rcount_11, 
+            B1=>rcount_12, BI=>co5_3, BOUT=>co6_3, S0=>rcnt_sub_11, 
+            S1=>rcnt_sub_12);
+
+    rcnt_7: FSUB2B
+        port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rcount_13, 
+            B1=>rcount_14, BI=>co6_3, BOUT=>co7_3, S0=>rcnt_sub_13, 
+            S1=>rcnt_sub_14);
+
+    rcnt_8: FSUB2B
+        port map (A0=>wcount_r14, A1=>rcnt_sub_msb, B0=>rcount_15, 
+            B1=>scuba_vlo, BI=>co7_3, BOUT=>co8_1, S0=>rcnt_sub_15, 
+            S1=>rcnt_sub_16);
+
+    rcntd: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, CI=>co8_1, COUT=>open, S0=>co8_1d, S1=>open);
+
+    wfill_0: FSUB2B
+        port map (A0=>scuba_vhi, A1=>wptr_0, B0=>scuba_vlo, 
+            B1=>rcount_w1, BI=>scuba_vlo, BOUT=>co0_4, S0=>open, 
+            S1=>wfill_sub_0);
+
+    wfill_1: FSUB2B
+        port map (A0=>wptr_1, A1=>wptr_2, B0=>rcount_w2, B1=>rcount_w3, 
+            BI=>co0_4, BOUT=>co1_4, S0=>wfill_sub_1, S1=>wfill_sub_2);
+
+    wfill_2: FSUB2B
+        port map (A0=>wptr_3, A1=>wptr_4, B0=>rcount_w4, B1=>rcount_w5, 
+            BI=>co1_4, BOUT=>co2_4, S0=>wfill_sub_3, S1=>wfill_sub_4);
+
+    wfill_3: FSUB2B
+        port map (A0=>wptr_5, A1=>wptr_6, B0=>rcount_w6, B1=>rcount_w7, 
+            BI=>co2_4, BOUT=>co3_4, S0=>wfill_sub_5, S1=>wfill_sub_6);
+
+    wfill_4: FSUB2B
+        port map (A0=>wptr_7, A1=>wptr_8, B0=>rcount_w8, B1=>rcount_w9, 
+            BI=>co3_4, BOUT=>co4_4, S0=>wfill_sub_7, S1=>wfill_sub_8);
+
+    wfill_5: FSUB2B
+        port map (A0=>wptr_9, A1=>wptr_10, B0=>rcount_w10, 
+            B1=>rcount_w11, BI=>co4_4, BOUT=>co5_4, S0=>wfill_sub_9, 
+            S1=>wfill_sub_10);
+
+    wfill_6: FSUB2B
+        port map (A0=>wptr_11, A1=>wptr_12, B0=>rcount_w12, 
+            B1=>r_g2b_xor_cluster_0, BI=>co5_4, BOUT=>co6_4, 
+            S0=>wfill_sub_11, S1=>wfill_sub_12);
+
+    wfill_7: FSUB2B
+        port map (A0=>wptr_13, A1=>wptr_14, B0=>rcount_w14, 
+            B1=>rcount_w15, BI=>co6_4, BOUT=>co7_4, S0=>wfill_sub_13, 
+            S1=>wfill_sub_14);
+
+    wfill_8: FSUB2B
+        port map (A0=>wfill_sub_msb, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, BI=>co7_4, BOUT=>open, S0=>wfill_sub_15, 
+            S1=>open);
+
+    scuba_vhi_inst: VHI
+        port map (Z=>scuba_vhi);
+
+    rfill_0: FSUB2B
+        port map (A0=>scuba_vhi, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>rptr_0, BI=>scuba_vlo, BOUT=>co0_5, S0=>open, 
+            S1=>rfill_sub_0);
+
+    rfill_1: FSUB2B
+        port map (A0=>wcount_r0, A1=>wcount_r1, B0=>rptr_1, B1=>rptr_2, 
+            BI=>co0_5, BOUT=>co1_5, S0=>rfill_sub_1, S1=>rfill_sub_2);
+
+    rfill_2: FSUB2B
+        port map (A0=>wcount_r2, A1=>wcount_r3, B0=>rptr_3, B1=>rptr_4, 
+            BI=>co1_5, BOUT=>co2_5, S0=>rfill_sub_3, S1=>rfill_sub_4);
+
+    rfill_3: FSUB2B
+        port map (A0=>wcount_r4, A1=>wcount_r5, B0=>rptr_5, B1=>rptr_6, 
+            BI=>co2_5, BOUT=>co3_5, S0=>rfill_sub_5, S1=>rfill_sub_6);
+
+    rfill_4: FSUB2B
+        port map (A0=>wcount_r6, A1=>wcount_r7, B0=>rptr_7, B1=>rptr_8, 
+            BI=>co3_5, BOUT=>co4_5, S0=>rfill_sub_7, S1=>rfill_sub_8);
+
+    rfill_5: FSUB2B
+        port map (A0=>wcount_r8, A1=>wcount_r9, B0=>rptr_9, B1=>rptr_10, 
+            BI=>co4_5, BOUT=>co5_5, S0=>rfill_sub_9, S1=>rfill_sub_10);
+
+    rfill_6: FSUB2B
+        port map (A0=>wcount_r10, A1=>wcount_r11, B0=>rptr_11, 
+            B1=>rptr_12, BI=>co5_5, BOUT=>co6_5, S0=>rfill_sub_11, 
+            S1=>rfill_sub_12);
+
+    rfill_7: FSUB2B
+        port map (A0=>w_g2b_xor_cluster_0, A1=>wcount_r13, B0=>rptr_13, 
+            B1=>rptr_14, BI=>co6_5, BOUT=>co7_5, S0=>rfill_sub_13, 
+            S1=>rfill_sub_14);
+
+    rfill_8: FSUB2B
+        port map (A0=>wcount_r14, A1=>rfill_sub_msb, B0=>rptr_15, 
+            B1=>scuba_vlo, BI=>co7_5, BOUT=>co8_2, S0=>rfill_sub_15, 
+            S1=>rfill_sub_16);
+
+    rfilld: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, CI=>co8_2, COUT=>open, S0=>co8_2d, S1=>open);
+
+    empty_cmp_ci_a: FADD2B
+        port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, 
+            CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open);
+
+    empty_cmp_0: AGEB2
+        port map (A0=>rcount_0, A1=>rcount_1, B0=>scuba_vlo, 
+            B1=>wcount_r0, CI=>cmp_ci, GE=>co0_6);
+
+    empty_cmp_1: AGEB2
+        port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r1, 
+            B1=>wcount_r2, CI=>co0_6, GE=>co1_6);
+
+    empty_cmp_2: AGEB2
+        port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r3, 
+            B1=>wcount_r4, CI=>co1_6, GE=>co2_6);
+
+    empty_cmp_3: AGEB2
+        port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r5, 
+            B1=>wcount_r6, CI=>co2_6, GE=>co3_6);
+
+    empty_cmp_4: AGEB2
+        port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r7, 
+            B1=>wcount_r8, CI=>co3_6, GE=>co4_6);
+
+    empty_cmp_5: AGEB2
+        port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r9, 
+            B1=>wcount_r10, CI=>co4_6, GE=>co5_6);
+
+    empty_cmp_6: AGEB2
+        port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r11, 
+            B1=>w_g2b_xor_cluster_0, CI=>co5_6, GE=>co6_6);
+
+    empty_cmp_7: AGEB2
+        port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r13, 
+            B1=>wcount_r14, CI=>co6_6, GE=>co7_6);
+
+    empty_cmp_8: AGEB2
+        port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, 
+            B1=>scuba_vlo, CI=>co7_6, GE=>empty_d_c);
+
+    a0: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, 
+            S1=>open);
+
+    full_cmp_ci_a: FADD2B
+        port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, 
+            CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open);
+
+    full_cmp_0: AGEB2
+        port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w1, 
+            B1=>rcount_w2, CI=>cmp_ci_1, GE=>co0_7);
+
+    full_cmp_1: AGEB2
+        port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w3, 
+            B1=>rcount_w4, CI=>co0_7, GE=>co1_7);
+
+    full_cmp_2: AGEB2
+        port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w5, 
+            B1=>rcount_w6, CI=>co1_7, GE=>co2_7);
+
+    full_cmp_3: AGEB2
+        port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w7, 
+            B1=>rcount_w8, CI=>co2_7, GE=>co3_7);
+
+    full_cmp_4: AGEB2
+        port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w9, 
+            B1=>rcount_w10, CI=>co3_7, GE=>co4_7);
+
+    full_cmp_5: AGEB2
+        port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w11, 
+            B1=>rcount_w12, CI=>co4_7, GE=>co5_7);
+
+    full_cmp_6: AGEB2
+        port map (A0=>wcount_12, A1=>wcount_13, B0=>r_g2b_xor_cluster_0, 
+            B1=>rcount_w14, CI=>co5_7, GE=>co6_7);
+
+    full_cmp_7: AGEB2
+        port map (A0=>wcount_14, A1=>full_cmp_set, B0=>rcount_w15, 
+            B1=>full_cmp_clr, CI=>co6_7, GE=>full_d_c);
+
+    a1: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, 
+            S1=>open);
+
+    ae_cmp_ci_a: FADD2B
+        port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, 
+            CI=>scuba_vlo, COUT=>cmp_ci_2, S0=>open, S1=>open);
+
+    ae_cmp_0: AGEB2
+        port map (A0=>AmEmptyThresh(0), A1=>AmEmptyThresh(1), 
+            B0=>rcnt_reg_0, B1=>rcnt_reg_1, CI=>cmp_ci_2, GE=>co0_8);
+
+    ae_cmp_1: AGEB2
+        port map (A0=>AmEmptyThresh(2), A1=>AmEmptyThresh(3), 
+            B0=>rcnt_reg_2, B1=>rcnt_reg_3, CI=>co0_8, GE=>co1_8);
+
+    ae_cmp_2: AGEB2
+        port map (A0=>AmEmptyThresh(4), A1=>AmEmptyThresh(5), 
+            B0=>rcnt_reg_4, B1=>rcnt_reg_5, CI=>co1_8, GE=>co2_8);
+
+    ae_cmp_3: AGEB2
+        port map (A0=>AmEmptyThresh(6), A1=>AmEmptyThresh(7), 
+            B0=>rcnt_reg_6, B1=>rcnt_reg_7, CI=>co2_8, GE=>co3_8);
+
+    ae_cmp_4: AGEB2
+        port map (A0=>AmEmptyThresh(8), A1=>AmEmptyThresh(9), 
+            B0=>rcnt_reg_8, B1=>rcnt_reg_9, CI=>co3_8, GE=>co4_8);
+
+    ae_cmp_5: AGEB2
+        port map (A0=>AmEmptyThresh(10), A1=>AmEmptyThresh(11), 
+            B0=>rcnt_reg_10, B1=>rcnt_reg_11, CI=>co4_8, GE=>co5_8);
+
+    ae_cmp_6: AGEB2
+        port map (A0=>AmEmptyThresh(12), A1=>AmEmptyThresh(13), 
+            B0=>rcnt_reg_12, B1=>rcnt_reg_13, CI=>co5_8, GE=>co6_8);
+
+    ae_cmp_7: AGEB2
+        port map (A0=>AmEmptyThresh(14), A1=>AmEmptyThresh(15), 
+            B0=>rcnt_reg_14, B1=>rcnt_reg_15, CI=>co6_8, GE=>co7_7);
+
+    ae_cmp_8: AGEB2
+        port map (A0=>ae_setsig, A1=>scuba_vlo, B0=>ae_clrsig, 
+            B1=>scuba_vlo, CI=>co7_7, GE=>ae_d_c);
+
+    a2: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, CI=>ae_d_c, COUT=>open, S0=>ae_d, S1=>open);
+
+    af_d_cmp_ci_a: FADD2B
+        port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, 
+            CI=>scuba_vlo, COUT=>cmp_ci_3, S0=>open, S1=>open);
+
+    af_d_cmp_0: AGEB2
+        port map (A0=>wcnt_reg_0, A1=>wcnt_reg_1, B0=>AmFullThresh(0), 
+            B1=>AmFullThresh(1), CI=>cmp_ci_3, GE=>co0_9);
+
+    af_d_cmp_1: AGEB2
+        port map (A0=>wcnt_reg_2, A1=>wcnt_reg_3, B0=>AmFullThresh(2), 
+            B1=>AmFullThresh(3), CI=>co0_9, GE=>co1_9);
+
+    af_d_cmp_2: AGEB2
+        port map (A0=>wcnt_reg_4, A1=>wcnt_reg_5, B0=>AmFullThresh(4), 
+            B1=>AmFullThresh(5), CI=>co1_9, GE=>co2_9);
+
+    af_d_cmp_3: AGEB2
+        port map (A0=>wcnt_reg_6, A1=>wcnt_reg_7, B0=>AmFullThresh(6), 
+            B1=>AmFullThresh(7), CI=>co2_9, GE=>co3_9);
+
+    af_d_cmp_4: AGEB2
+        port map (A0=>wcnt_reg_8, A1=>wcnt_reg_9, B0=>AmFullThresh(8), 
+            B1=>AmFullThresh(9), CI=>co3_9, GE=>co4_9);
+
+    af_d_cmp_5: AGEB2
+        port map (A0=>wcnt_reg_10, A1=>wcnt_reg_11, B0=>AmFullThresh(10), 
+            B1=>AmFullThresh(11), CI=>co4_9, GE=>co5_9);
+
+    af_d_cmp_6: AGEB2
+        port map (A0=>wcnt_reg_12, A1=>wcnt_reg_13, B0=>AmFullThresh(12), 
+            B1=>AmFullThresh(13), CI=>co5_9, GE=>co6_9);
+
+    af_d_cmp_7: AGEB2
+        port map (A0=>wcnt_reg_14, A1=>wcnt_reg_15, B0=>AmFullThresh(14), 
+            B1=>scuba_vlo, CI=>co6_9, GE=>af_d_c);
+
+    scuba_vlo_inst: VLO
+        port map (Z=>scuba_vlo);
+
+    a3: FADD2B
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, 
+            B1=>scuba_vlo, CI=>af_d_c, COUT=>open, S0=>af_d, S1=>open);
+
+    Empty <= empty_i;
+    Full <= full_i;
+end Structure;
+
+-- synopsys translate_off
+library ecp2m;
+configuration Structure_CON of fifo_32kx16x8_mb is
+    for Structure
+        for all:AGEB2 use entity ecp2m.AGEB2(V); end for;
+        for all:AND2 use entity ecp2m.AND2(V); end for;
+        for all:CU2 use entity ecp2m.CU2(V); end for;
+        for all:FADD2B use entity ecp2m.FADD2B(V); end for;
+        for all:FSUB2B use entity ecp2m.FSUB2B(V); end for;
+        for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for;
+        for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for;
+        for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for;
+        for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for;
+        for all:INV use entity ecp2m.INV(V); end for;
+        for all:MUX41 use entity ecp2m.MUX41(V); end for;
+        for all:OR2 use entity ecp2m.OR2(V); end for;
+        for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for;
+        for all:VHI use entity ecp2m.VHI(V); end for;
+        for all:VLO use entity ecp2m.VLO(V); end for;
+        for all:XOR2 use entity ecp2m.XOR2(V); end for;
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;
+    end for;
+end Structure_CON;
+
+-- synopsys translate_on
diff --git a/gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_32kx16x8_mb_tmpl.vhd
new file mode 100755 (executable)
index 0000000..bc2e00d
--- /dev/null
@@ -0,0 +1,26 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v8.0_PROD_Build (41)
+-- Module  Version: 5.3
+-- Fri Feb 05 16:48:13 2010
+
+-- parameterized module component declaration
+component fifo_32kx16x8_mb
+    port (Data: in  std_logic_vector(15 downto 0); 
+        WrClock: in  std_logic; RdClock: in  std_logic; 
+        WrEn: in  std_logic; RdEn: in  std_logic; Reset: in  std_logic; 
+        RPReset: in  std_logic; 
+        AmEmptyThresh: in  std_logic_vector(15 downto 0); 
+        AmFullThresh: in  std_logic_vector(14 downto 0); 
+        Q: out  std_logic_vector(7 downto 0); 
+        WCNT: out  std_logic_vector(15 downto 0); 
+        RCNT: out  std_logic_vector(16 downto 0); Empty: out  std_logic; 
+        Full: out  std_logic; AlmostEmpty: out  std_logic; 
+        AlmostFull: out  std_logic);
+end component;
+
+-- parameterized module component instance
+__ : fifo_32kx16x8_mb
+    port map (Data(15 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, 
+        RdEn=>__, Reset=>__, RPReset=>__, AmEmptyThresh(15 downto 0)=>__, 
+        AmFullThresh(14 downto 0)=>__, Q(7 downto 0)=>__, WCNT(15 downto 0)=>__, 
+        RCNT(16 downto 0)=>__, Empty=>__, Full=>__, AlmostEmpty=>__, 
+        AlmostFull=>__);
diff --git a/gbe_ecp2m/ipcores/fifo_4096x32.lpc b/gbe_ecp2m/ipcores/fifo_4096x32.lpc
new file mode 100755 (executable)
index 0000000..3f5196b
--- /dev/null
@@ -0,0 +1,47 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-5F900C\r
+SpeedGrade=-5\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=FIFO_DC\r
+CoreRevision=5.3\r
+ModuleName=fifo_4096x32\r
+SourceFormat=Schematic/VHDL\r
+ParameterFileVersion=1.0\r
+Date=12/18/2009\r
+Time=03:02:30\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+FIFOImp=EBR Based\r
+Depth=4096\r
+Width=32\r
+RDepth=4096\r
+RWidth=32\r
+regout=0\r
+CtrlByRdEn=0\r
+EmpFlg=0\r
+PeMode=Static - Dual Threshold\r
+PeAssert=10\r
+PeDeassert=12\r
+FullFlg=0\r
+PfMode=Static - Dual Threshold\r
+PfAssert=508\r
+PfDeassert=506\r
+RDataCount=0\r
+WDataCount=0\r
+EnECC=0\r
diff --git a/gbe_ecp2m/ipcores/fifo_4096x32.vhd b/gbe_ecp2m/ipcores/fifo_4096x32.vhd
new file mode 100755 (executable)
index 0000000..51a2cd4
--- /dev/null
@@ -0,0 +1,2415 @@
+-- VHDL netlist generated by SCUBA ispLever_v8.0_PROD_Build (41)\r
+-- Module  Version: 5.3\r
+--/opt/lattice/ispLEVER8.0/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 4096 -width 32 -depth 4096 -rdata_width 32 -no_enable -pe -1 -pf -1 -e \r
+\r
+-- Fri Dec 18 03:02:30 2009\r
+\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+-- synopsys translate_off\r
+library ecp2m;\r
+use ecp2m.components.all;\r
+-- synopsys translate_on\r
+\r
+entity fifo_4096x32 is\r
+    port (\r
+        Data: in  std_logic_vector(31 downto 0); \r
+        WrClock: in  std_logic; \r
+        RdClock: in  std_logic; \r
+        WrEn: in  std_logic; \r
+        RdEn: in  std_logic; \r
+        Reset: in  std_logic; \r
+        RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(31 downto 0); \r
+        Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end fifo_4096x32;\r
+\r
+architecture Structure of fifo_4096x32 is\r
+\r
+    -- internal signal declarations\r
+    signal invout_1: std_logic;\r
+    signal invout_0: std_logic;\r
+    signal w_g2b_xor_cluster_2_1: std_logic;\r
+    signal w_g2b_xor_cluster_2: std_logic;\r
+    signal w_g2b_xor_cluster_1: std_logic;\r
+    signal r_g2b_xor_cluster_2_1: std_logic;\r
+    signal r_g2b_xor_cluster_2: std_logic;\r
+    signal r_g2b_xor_cluster_1: std_logic;\r
+    signal w_gdata_0: std_logic;\r
+    signal w_gdata_1: std_logic;\r
+    signal w_gdata_2: std_logic;\r
+    signal w_gdata_3: std_logic;\r
+    signal w_gdata_4: std_logic;\r
+    signal w_gdata_5: std_logic;\r
+    signal w_gdata_6: std_logic;\r
+    signal w_gdata_7: std_logic;\r
+    signal w_gdata_8: std_logic;\r
+    signal w_gdata_9: std_logic;\r
+    signal w_gdata_10: std_logic;\r
+    signal w_gdata_11: std_logic;\r
+    signal wptr_0: std_logic;\r
+    signal wptr_1: std_logic;\r
+    signal wptr_2: std_logic;\r
+    signal wptr_3: std_logic;\r
+    signal wptr_4: std_logic;\r
+    signal wptr_5: std_logic;\r
+    signal wptr_6: std_logic;\r
+    signal wptr_7: std_logic;\r
+    signal wptr_8: std_logic;\r
+    signal wptr_9: std_logic;\r
+    signal wptr_10: std_logic;\r
+    signal wptr_11: std_logic;\r
+    signal wptr_12: std_logic;\r
+    signal r_gdata_0: std_logic;\r
+    signal r_gdata_1: std_logic;\r
+    signal r_gdata_2: std_logic;\r
+    signal r_gdata_3: std_logic;\r
+    signal r_gdata_4: std_logic;\r
+    signal r_gdata_5: std_logic;\r
+    signal r_gdata_6: std_logic;\r
+    signal r_gdata_7: std_logic;\r
+    signal r_gdata_8: std_logic;\r
+    signal r_gdata_9: std_logic;\r
+    signal r_gdata_10: std_logic;\r
+    signal r_gdata_11: std_logic;\r
+    signal rptr_0: std_logic;\r
+    signal rptr_1: std_logic;\r
+    signal rptr_2: std_logic;\r
+    signal rptr_3: std_logic;\r
+    signal rptr_4: std_logic;\r
+    signal rptr_5: std_logic;\r
+    signal rptr_6: std_logic;\r
+    signal rptr_7: std_logic;\r
+    signal rptr_8: std_logic;\r
+    signal rptr_9: std_logic;\r
+    signal rptr_10: std_logic;\r
+    signal rptr_11: std_logic;\r
+    signal rptr_12: std_logic;\r
+    signal w_gcount_0: std_logic;\r
+    signal w_gcount_1: std_logic;\r
+    signal w_gcount_2: std_logic;\r
+    signal w_gcount_3: std_logic;\r
+    signal w_gcount_4: std_logic;\r
+    signal w_gcount_5: std_logic;\r
+    signal w_gcount_6: std_logic;\r
+    signal w_gcount_7: std_logic;\r
+    signal w_gcount_8: std_logic;\r
+    signal w_gcount_9: std_logic;\r
+    signal w_gcount_10: std_logic;\r
+    signal w_gcount_11: std_logic;\r
+    signal w_gcount_12: std_logic;\r
+    signal r_gcount_0: std_logic;\r
+    signal r_gcount_1: std_logic;\r
+    signal r_gcount_2: std_logic;\r
+    signal r_gcount_3: std_logic;\r
+    signal r_gcount_4: std_logic;\r
+    signal r_gcount_5: std_logic;\r
+    signal r_gcount_6: std_logic;\r
+    signal r_gcount_7: std_logic;\r
+    signal r_gcount_8: std_logic;\r
+    signal r_gcount_9: std_logic;\r
+    signal r_gcount_10: std_logic;\r
+    signal r_gcount_11: std_logic;\r
+    signal r_gcount_12: std_logic;\r
+    signal w_gcount_r20: std_logic;\r
+    signal w_gcount_r0: std_logic;\r
+    signal w_gcount_r21: std_logic;\r
+    signal w_gcount_r1: std_logic;\r
+    signal w_gcount_r22: std_logic;\r
+    signal w_gcount_r2: std_logic;\r
+    signal w_gcount_r23: std_logic;\r
+    signal w_gcount_r3: std_logic;\r
+    signal w_gcount_r24: std_logic;\r
+    signal w_gcount_r4: std_logic;\r
+    signal w_gcount_r25: std_logic;\r
+    signal w_gcount_r5: std_logic;\r
+    signal w_gcount_r26: std_logic;\r
+    signal w_gcount_r6: std_logic;\r
+    signal w_gcount_r27: std_logic;\r
+    signal w_gcount_r7: std_logic;\r
+    signal w_gcount_r28: std_logic;\r
+    signal w_gcount_r8: std_logic;\r
+    signal w_gcount_r29: std_logic;\r
+    signal w_gcount_r9: std_logic;\r
+    signal w_gcount_r210: std_logic;\r
+    signal w_gcount_r10: std_logic;\r
+    signal w_gcount_r211: std_logic;\r
+    signal w_gcount_r11: std_logic;\r
+    signal w_gcount_r212: std_logic;\r
+    signal w_gcount_r12: std_logic;\r
+    signal r_gcount_w20: std_logic;\r
+    signal r_gcount_w0: std_logic;\r
+    signal r_gcount_w21: std_logic;\r
+    signal r_gcount_w1: std_logic;\r
+    signal r_gcount_w22: std_logic;\r
+    signal r_gcount_w2: std_logic;\r
+    signal r_gcount_w23: std_logic;\r
+    signal r_gcount_w3: std_logic;\r
+    signal r_gcount_w24: std_logic;\r
+    signal r_gcount_w4: std_logic;\r
+    signal r_gcount_w25: std_logic;\r
+    signal r_gcount_w5: std_logic;\r
+    signal r_gcount_w26: std_logic;\r
+    signal r_gcount_w6: std_logic;\r
+    signal r_gcount_w27: std_logic;\r
+    signal r_gcount_w7: std_logic;\r
+    signal r_gcount_w28: std_logic;\r
+    signal r_gcount_w8: std_logic;\r
+    signal r_gcount_w29: std_logic;\r
+    signal r_gcount_w9: std_logic;\r
+    signal r_gcount_w210: std_logic;\r
+    signal r_gcount_w10: std_logic;\r
+    signal r_gcount_w211: std_logic;\r
+    signal r_gcount_w11: std_logic;\r
+    signal r_gcount_w212: std_logic;\r
+    signal r_gcount_w12: std_logic;\r
+    signal empty_i: std_logic;\r
+    signal rRst: std_logic;\r
+    signal full_i: std_logic;\r
+    signal iwcount_0: std_logic;\r
+    signal iwcount_1: std_logic;\r
+    signal w_gctr_ci: std_logic;\r
+    signal iwcount_2: std_logic;\r
+    signal iwcount_3: std_logic;\r
+    signal co0: std_logic;\r
+    signal iwcount_4: std_logic;\r
+    signal iwcount_5: std_logic;\r
+    signal co1: std_logic;\r
+    signal iwcount_6: std_logic;\r
+    signal iwcount_7: std_logic;\r
+    signal co2: std_logic;\r
+    signal iwcount_8: std_logic;\r
+    signal iwcount_9: std_logic;\r
+    signal co3: std_logic;\r
+    signal iwcount_10: std_logic;\r
+    signal iwcount_11: std_logic;\r
+    signal co4: std_logic;\r
+    signal iwcount_12: std_logic;\r
+    signal co6: std_logic;\r
+    signal wcount_12: std_logic;\r
+    signal co5: std_logic;\r
+    signal scuba_vhi: std_logic;\r
+    signal ircount_0: std_logic;\r
+    signal ircount_1: std_logic;\r
+    signal r_gctr_ci: std_logic;\r
+    signal ircount_2: std_logic;\r
+    signal ircount_3: std_logic;\r
+    signal co0_1: std_logic;\r
+    signal ircount_4: std_logic;\r
+    signal ircount_5: std_logic;\r
+    signal co1_1: std_logic;\r
+    signal ircount_6: std_logic;\r
+    signal ircount_7: std_logic;\r
+    signal co2_1: std_logic;\r
+    signal ircount_8: std_logic;\r
+    signal ircount_9: std_logic;\r
+    signal co3_1: std_logic;\r
+    signal ircount_10: std_logic;\r
+    signal ircount_11: std_logic;\r
+    signal co4_1: std_logic;\r
+    signal ircount_12: std_logic;\r
+    signal co6_1: std_logic;\r
+    signal rcount_12: std_logic;\r
+    signal co5_1: std_logic;\r
+    signal rden_i: std_logic;\r
+    signal cmp_ci: std_logic;\r
+    signal wcount_r0: std_logic;\r
+    signal wcount_r1: std_logic;\r
+    signal rcount_0: std_logic;\r
+    signal rcount_1: std_logic;\r
+    signal co0_2: std_logic;\r
+    signal wcount_r2: std_logic;\r
+    signal wcount_r3: std_logic;\r
+    signal rcount_2: std_logic;\r
+    signal rcount_3: std_logic;\r
+    signal co1_2: std_logic;\r
+    signal wcount_r4: std_logic;\r
+    signal wcount_r5: std_logic;\r
+    signal rcount_4: std_logic;\r
+    signal rcount_5: std_logic;\r
+    signal co2_2: std_logic;\r
+    signal wcount_r6: std_logic;\r
+    signal wcount_r7: std_logic;\r
+    signal rcount_6: std_logic;\r
+    signal rcount_7: std_logic;\r
+    signal co3_2: std_logic;\r
+    signal wcount_r8: std_logic;\r
+    signal w_g2b_xor_cluster_0: std_logic;\r
+    signal rcount_8: std_logic;\r
+    signal rcount_9: std_logic;\r
+    signal co4_2: std_logic;\r
+    signal wcount_r10: std_logic;\r
+    signal wcount_r11: std_logic;\r
+    signal rcount_10: std_logic;\r
+    signal rcount_11: std_logic;\r
+    signal co5_2: std_logic;\r
+    signal empty_cmp_clr: std_logic;\r
+    signal empty_cmp_set: std_logic;\r
+    signal empty_d: std_logic;\r
+    signal empty_d_c: std_logic;\r
+    signal wren_i: std_logic;\r
+    signal cmp_ci_1: std_logic;\r
+    signal rcount_w0: std_logic;\r
+    signal rcount_w1: std_logic;\r
+    signal wcount_0: std_logic;\r
+    signal wcount_1: std_logic;\r
+    signal co0_3: std_logic;\r
+    signal rcount_w2: std_logic;\r
+    signal rcount_w3: std_logic;\r
+    signal wcount_2: std_logic;\r
+    signal wcount_3: std_logic;\r
+    signal co1_3: std_logic;\r
+    signal rcount_w4: std_logic;\r
+    signal rcount_w5: std_logic;\r
+    signal wcount_4: std_logic;\r
+    signal wcount_5: std_logic;\r
+    signal co2_3: std_logic;\r
+    signal rcount_w6: std_logic;\r
+    signal rcount_w7: std_logic;\r
+    signal wcount_6: std_logic;\r
+    signal wcount_7: std_logic;\r
+    signal co3_3: std_logic;\r
+    signal rcount_w8: std_logic;\r
+    signal r_g2b_xor_cluster_0: std_logic;\r
+    signal wcount_8: std_logic;\r
+    signal wcount_9: std_logic;\r
+    signal co4_3: std_logic;\r
+    signal rcount_w10: std_logic;\r
+    signal rcount_w11: std_logic;\r
+    signal wcount_10: std_logic;\r
+    signal wcount_11: std_logic;\r
+    signal co5_3: std_logic;\r
+    signal full_cmp_clr: std_logic;\r
+    signal full_cmp_set: std_logic;\r
+    signal full_d: std_logic;\r
+    signal full_d_c: std_logic;\r
+    signal scuba_vlo: std_logic;\r
+\r
+    -- local component declarations\r
+    component AGEB2\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; GE: out  std_logic);\r
+    end component;\r
+    component AND2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component CU2\r
+        port (CI: in  std_logic; PC0: in  std_logic; PC1: in  std_logic; \r
+            CO: out  std_logic; NC0: out  std_logic; NC1: out  std_logic);\r
+    end component;\r
+    component FADD2B\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; COUT: out  std_logic; \r
+            S0: out  std_logic; S1: out  std_logic);\r
+    end component;\r
+    component FD1P3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            PD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1P3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            CD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1S3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; PD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component FD1S3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; CD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component INV\r
+        port (A: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component OR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component ROM16X1\r
+    -- synopsys translate_off\r
+        generic (initval : in String);\r
+    -- synopsys translate_on\r
+        port (AD3: in  std_logic; AD2: in  std_logic; AD1: in  std_logic; \r
+            AD0: in  std_logic; DO0: out  std_logic);\r
+    end component;\r
+    component VHI\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component VLO\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component XOR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component DP16KB\r
+    -- synopsys translate_off\r
+        generic (GSR : in String; WRITEMODE_B : in String; \r
+                CSDECODE_B : in std_logic_vector(2 downto 0); \r
+                CSDECODE_A : in std_logic_vector(2 downto 0); \r
+                WRITEMODE_A : in String; RESETMODE : in String; \r
+                REGMODE_B : in String; REGMODE_A : in String; \r
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);\r
+    -- synopsys translate_on\r
+        port (DIA0: in  std_logic; DIA1: in  std_logic; \r
+            DIA2: in  std_logic; DIA3: in  std_logic; \r
+            DIA4: in  std_logic; DIA5: in  std_logic; \r
+            DIA6: in  std_logic; DIA7: in  std_logic; \r
+            DIA8: in  std_logic; DIA9: in  std_logic; \r
+            DIA10: in  std_logic; DIA11: in  std_logic; \r
+            DIA12: in  std_logic; DIA13: in  std_logic; \r
+            DIA14: in  std_logic; DIA15: in  std_logic; \r
+            DIA16: in  std_logic; DIA17: in  std_logic; \r
+            ADA0: in  std_logic; ADA1: in  std_logic; \r
+            ADA2: in  std_logic; ADA3: in  std_logic; \r
+            ADA4: in  std_logic; ADA5: in  std_logic; \r
+            ADA6: in  std_logic; ADA7: in  std_logic; \r
+            ADA8: in  std_logic; ADA9: in  std_logic; \r
+            ADA10: in  std_logic; ADA11: in  std_logic; \r
+            ADA12: in  std_logic; ADA13: in  std_logic; \r
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; \r
+            CSA0: in  std_logic; CSA1: in  std_logic; \r
+            CSA2: in  std_logic; RSTA: in  std_logic; \r
+            DIB0: in  std_logic; DIB1: in  std_logic; \r
+            DIB2: in  std_logic; DIB3: in  std_logic; \r
+            DIB4: in  std_logic; DIB5: in  std_logic; \r
+            DIB6: in  std_logic; DIB7: in  std_logic; \r
+            DIB8: in  std_logic; DIB9: in  std_logic; \r
+            DIB10: in  std_logic; DIB11: in  std_logic; \r
+            DIB12: in  std_logic; DIB13: in  std_logic; \r
+            DIB14: in  std_logic; DIB15: in  std_logic; \r
+            DIB16: in  std_logic; DIB17: in  std_logic; \r
+            ADB0: in  std_logic; ADB1: in  std_logic; \r
+            ADB2: in  std_logic; ADB3: in  std_logic; \r
+            ADB4: in  std_logic; ADB5: in  std_logic; \r
+            ADB6: in  std_logic; ADB7: in  std_logic; \r
+            ADB8: in  std_logic; ADB9: in  std_logic; \r
+            ADB10: in  std_logic; ADB11: in  std_logic; \r
+            ADB12: in  std_logic; ADB13: in  std_logic; \r
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; \r
+            CSB0: in  std_logic; CSB1: in  std_logic; \r
+            CSB2: in  std_logic; RSTB: in  std_logic; \r
+            DOA0: out  std_logic; DOA1: out  std_logic; \r
+            DOA2: out  std_logic; DOA3: out  std_logic; \r
+            DOA4: out  std_logic; DOA5: out  std_logic; \r
+            DOA6: out  std_logic; DOA7: out  std_logic; \r
+            DOA8: out  std_logic; DOA9: out  std_logic; \r
+            DOA10: out  std_logic; DOA11: out  std_logic; \r
+            DOA12: out  std_logic; DOA13: out  std_logic; \r
+            DOA14: out  std_logic; DOA15: out  std_logic; \r
+            DOA16: out  std_logic; DOA17: out  std_logic; \r
+            DOB0: out  std_logic; DOB1: out  std_logic; \r
+            DOB2: out  std_logic; DOB3: out  std_logic; \r
+            DOB4: out  std_logic; DOB5: out  std_logic; \r
+            DOB6: out  std_logic; DOB7: out  std_logic; \r
+            DOB8: out  std_logic; DOB9: out  std_logic; \r
+            DOB10: out  std_logic; DOB11: out  std_logic; \r
+            DOB12: out  std_logic; DOB13: out  std_logic; \r
+            DOB14: out  std_logic; DOB15: out  std_logic; \r
+            DOB16: out  std_logic; DOB17: out  std_logic);\r
+    end component;\r
+    attribute initval : string; \r
+    attribute MEM_LPC_FILE : string; \r
+    attribute MEM_INIT_FILE : string; \r
+    attribute CSDECODE_B : string; \r
+    attribute CSDECODE_A : string; \r
+    attribute WRITEMODE_B : string; \r
+    attribute WRITEMODE_A : string; \r
+    attribute RESETMODE : string; \r
+    attribute REGMODE_B : string; \r
+    attribute REGMODE_A : string; \r
+    attribute DATA_WIDTH_B : string; \r
+    attribute DATA_WIDTH_A : string; \r
+    attribute GSR : string; \r
+    attribute initval of LUT4_33 : label is "0x6996";\r
+    attribute initval of LUT4_32 : label is "0x6996";\r
+    attribute initval of LUT4_31 : label is "0x6996";\r
+    attribute initval of LUT4_30 : label is "0x6996";\r
+    attribute initval of LUT4_29 : label is "0x6996";\r
+    attribute initval of LUT4_28 : label is "0x6996";\r
+    attribute initval of LUT4_27 : label is "0x6996";\r
+    attribute initval of LUT4_26 : label is "0x6996";\r
+    attribute initval of LUT4_25 : label is "0x6996";\r
+    attribute initval of LUT4_24 : label is "0x6996";\r
+    attribute initval of LUT4_23 : label is "0x6996";\r
+    attribute initval of LUT4_22 : label is "0x6996";\r
+    attribute initval of LUT4_21 : label is "0x6996";\r
+    attribute initval of LUT4_20 : label is "0x6996";\r
+    attribute initval of LUT4_19 : label is "0x6996";\r
+    attribute initval of LUT4_18 : label is "0x6996";\r
+    attribute initval of LUT4_17 : label is "0x6996";\r
+    attribute initval of LUT4_16 : label is "0x6996";\r
+    attribute initval of LUT4_15 : label is "0x6996";\r
+    attribute initval of LUT4_14 : label is "0x6996";\r
+    attribute initval of LUT4_13 : label is "0x6996";\r
+    attribute initval of LUT4_12 : label is "0x6996";\r
+    attribute initval of LUT4_11 : label is "0x6996";\r
+    attribute initval of LUT4_10 : label is "0x6996";\r
+    attribute initval of LUT4_9 : label is "0x6996";\r
+    attribute initval of LUT4_8 : label is "0x6996";\r
+    attribute initval of LUT4_7 : label is "0x6996";\r
+    attribute initval of LUT4_6 : label is "0x6996";\r
+    attribute initval of LUT4_5 : label is "0x6996";\r
+    attribute initval of LUT4_4 : label is "0x6996";\r
+    attribute initval of LUT4_3 : label is "0x0410";\r
+    attribute initval of LUT4_2 : label is "0x1004";\r
+    attribute initval of LUT4_1 : label is "0x0140";\r
+    attribute initval of LUT4_0 : label is "0x4001";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_0_7 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_0_7 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_0_7 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_0_7 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_0_7 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_0_7 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_0_7 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_0_7 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_0_7 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_0_7 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_0_7 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_0_7 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_1_6 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_1_6 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_1_6 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_1_6 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_1_6 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_1_6 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_1_6 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_1_6 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_1_6 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_1_6 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_1_6 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_1_6 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_2_5 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_2_5 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_2_5 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_2_5 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_2_5 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_2_5 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_2_5 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_2_5 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_2_5 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_2_5 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_2_5 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_2_5 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_3_4 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_3_4 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_3_4 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_3_4 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_3_4 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_3_4 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_3_4 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_3_4 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_3_4 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_3_4 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_3_4 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_3_4 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_4_3 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_4_3 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_4_3 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_4_3 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_4_3 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_4_3 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_4_3 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_4_3 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_4_3 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_4_3 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_4_3 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_4_3 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_5_2 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_5_2 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_5_2 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_5_2 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_5_2 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_5_2 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_5_2 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_5_2 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_5_2 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_5_2 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_5_2 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_5_2 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_6_1 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_6_1 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_6_1 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_6_1 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_6_1 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_6_1 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_6_1 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_6_1 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_6_1 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_6_1 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_6_1 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_6_1 : label is "4";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_7_0 : label is "fifo_4096x32.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_7_0 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_7_0 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_7_0 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_7_0 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_7_0 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_7_0 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_7_0 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_7_0 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_7_0 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_7_0 : label is "4";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_7_0 : label is "4";\r
+    attribute GSR of FF_131 : label is "ENABLED";\r
+    attribute GSR of FF_130 : label is "ENABLED";\r
+    attribute GSR of FF_129 : label is "ENABLED";\r
+    attribute GSR of FF_128 : label is "ENABLED";\r
+    attribute GSR of FF_127 : label is "ENABLED";\r
+    attribute GSR of FF_126 : label is "ENABLED";\r
+    attribute GSR of FF_125 : label is "ENABLED";\r
+    attribute GSR of FF_124 : label is "ENABLED";\r
+    attribute GSR of FF_123 : label is "ENABLED";\r
+    attribute GSR of FF_122 : label is "ENABLED";\r
+    attribute GSR of FF_121 : label is "ENABLED";\r
+    attribute GSR of FF_120 : label is "ENABLED";\r
+    attribute GSR of FF_119 : label is "ENABLED";\r
+    attribute GSR of FF_118 : label is "ENABLED";\r
+    attribute GSR of FF_117 : label is "ENABLED";\r
+    attribute GSR of FF_116 : label is "ENABLED";\r
+    attribute GSR of FF_115 : label is "ENABLED";\r
+    attribute GSR of FF_114 : label is "ENABLED";\r
+    attribute GSR of FF_113 : label is "ENABLED";\r
+    attribute GSR of FF_112 : label is "ENABLED";\r
+    attribute GSR of FF_111 : label is "ENABLED";\r
+    attribute GSR of FF_110 : label is "ENABLED";\r
+    attribute GSR of FF_109 : label is "ENABLED";\r
+    attribute GSR of FF_108 : label is "ENABLED";\r
+    attribute GSR of FF_107 : label is "ENABLED";\r
+    attribute GSR of FF_106 : label is "ENABLED";\r
+    attribute GSR of FF_105 : label is "ENABLED";\r
+    attribute GSR of FF_104 : label is "ENABLED";\r
+    attribute GSR of FF_103 : label is "ENABLED";\r
+    attribute GSR of FF_102 : label is "ENABLED";\r
+    attribute GSR of FF_101 : label is "ENABLED";\r
+    attribute GSR of FF_100 : label is "ENABLED";\r
+    attribute GSR of FF_99 : label is "ENABLED";\r
+    attribute GSR of FF_98 : label is "ENABLED";\r
+    attribute GSR of FF_97 : label is "ENABLED";\r
+    attribute GSR of FF_96 : label is "ENABLED";\r
+    attribute GSR of FF_95 : label is "ENABLED";\r
+    attribute GSR of FF_94 : label is "ENABLED";\r
+    attribute GSR of FF_93 : label is "ENABLED";\r
+    attribute GSR of FF_92 : label is "ENABLED";\r
+    attribute GSR of FF_91 : label is "ENABLED";\r
+    attribute GSR of FF_90 : label is "ENABLED";\r
+    attribute GSR of FF_89 : label is "ENABLED";\r
+    attribute GSR of FF_88 : label is "ENABLED";\r
+    attribute GSR of FF_87 : label is "ENABLED";\r
+    attribute GSR of FF_86 : label is "ENABLED";\r
+    attribute GSR of FF_85 : label is "ENABLED";\r
+    attribute GSR of FF_84 : label is "ENABLED";\r
+    attribute GSR of FF_83 : label is "ENABLED";\r
+    attribute GSR of FF_82 : label is "ENABLED";\r
+    attribute GSR of FF_81 : label is "ENABLED";\r
+    attribute GSR of FF_80 : label is "ENABLED";\r
+    attribute GSR of FF_79 : label is "ENABLED";\r
+    attribute GSR of FF_78 : label is "ENABLED";\r
+    attribute GSR of FF_77 : label is "ENABLED";\r
+    attribute GSR of FF_76 : label is "ENABLED";\r
+    attribute GSR of FF_75 : label is "ENABLED";\r
+    attribute GSR of FF_74 : label is "ENABLED";\r
+    attribute GSR of FF_73 : label is "ENABLED";\r
+    attribute GSR of FF_72 : label is "ENABLED";\r
+    attribute GSR of FF_71 : label is "ENABLED";\r
+    attribute GSR of FF_70 : label is "ENABLED";\r
+    attribute GSR of FF_69 : label is "ENABLED";\r
+    attribute GSR of FF_68 : label is "ENABLED";\r
+    attribute GSR of FF_67 : label is "ENABLED";\r
+    attribute GSR of FF_66 : label is "ENABLED";\r
+    attribute GSR of FF_65 : label is "ENABLED";\r
+    attribute GSR of FF_64 : label is "ENABLED";\r
+    attribute GSR of FF_63 : label is "ENABLED";\r
+    attribute GSR of FF_62 : label is "ENABLED";\r
+    attribute GSR of FF_61 : label is "ENABLED";\r
+    attribute GSR of FF_60 : label is "ENABLED";\r
+    attribute GSR of FF_59 : label is "ENABLED";\r
+    attribute GSR of FF_58 : label is "ENABLED";\r
+    attribute GSR of FF_57 : label is "ENABLED";\r
+    attribute GSR of FF_56 : label is "ENABLED";\r
+    attribute GSR of FF_55 : label is "ENABLED";\r
+    attribute GSR of FF_54 : label is "ENABLED";\r
+    attribute GSR of FF_53 : label is "ENABLED";\r
+    attribute GSR of FF_52 : label is "ENABLED";\r
+    attribute GSR of FF_51 : label is "ENABLED";\r
+    attribute GSR of FF_50 : label is "ENABLED";\r
+    attribute GSR of FF_49 : label is "ENABLED";\r
+    attribute GSR of FF_48 : label is "ENABLED";\r
+    attribute GSR of FF_47 : label is "ENABLED";\r
+    attribute GSR of FF_46 : label is "ENABLED";\r
+    attribute GSR of FF_45 : label is "ENABLED";\r
+    attribute GSR of FF_44 : label is "ENABLED";\r
+    attribute GSR of FF_43 : label is "ENABLED";\r
+    attribute GSR of FF_42 : label is "ENABLED";\r
+    attribute GSR of FF_41 : label is "ENABLED";\r
+    attribute GSR of FF_40 : label is "ENABLED";\r
+    attribute GSR of FF_39 : label is "ENABLED";\r
+    attribute GSR of FF_38 : label is "ENABLED";\r
+    attribute GSR of FF_37 : label is "ENABLED";\r
+    attribute GSR of FF_36 : label is "ENABLED";\r
+    attribute GSR of FF_35 : label is "ENABLED";\r
+    attribute GSR of FF_34 : label is "ENABLED";\r
+    attribute GSR of FF_33 : label is "ENABLED";\r
+    attribute GSR of FF_32 : label is "ENABLED";\r
+    attribute GSR of FF_31 : label is "ENABLED";\r
+    attribute GSR of FF_30 : label is "ENABLED";\r
+    attribute GSR of FF_29 : label is "ENABLED";\r
+    attribute GSR of FF_28 : label is "ENABLED";\r
+    attribute GSR of FF_27 : label is "ENABLED";\r
+    attribute GSR of FF_26 : label is "ENABLED";\r
+    attribute GSR of FF_25 : label is "ENABLED";\r
+    attribute GSR of FF_24 : label is "ENABLED";\r
+    attribute GSR of FF_23 : label is "ENABLED";\r
+    attribute GSR of FF_22 : label is "ENABLED";\r
+    attribute GSR of FF_21 : label is "ENABLED";\r
+    attribute GSR of FF_20 : label is "ENABLED";\r
+    attribute GSR of FF_19 : label is "ENABLED";\r
+    attribute GSR of FF_18 : label is "ENABLED";\r
+    attribute GSR of FF_17 : label is "ENABLED";\r
+    attribute GSR of FF_16 : label is "ENABLED";\r
+    attribute GSR of FF_15 : label is "ENABLED";\r
+    attribute GSR of FF_14 : label is "ENABLED";\r
+    attribute GSR of FF_13 : label is "ENABLED";\r
+    attribute GSR of FF_12 : label is "ENABLED";\r
+    attribute GSR of FF_11 : label is "ENABLED";\r
+    attribute GSR of FF_10 : label is "ENABLED";\r
+    attribute GSR of FF_9 : label is "ENABLED";\r
+    attribute GSR of FF_8 : label is "ENABLED";\r
+    attribute GSR of FF_7 : label is "ENABLED";\r
+    attribute GSR of FF_6 : label is "ENABLED";\r
+    attribute GSR of FF_5 : label is "ENABLED";\r
+    attribute GSR of FF_4 : label is "ENABLED";\r
+    attribute GSR of FF_3 : label is "ENABLED";\r
+    attribute GSR of FF_2 : label is "ENABLED";\r
+    attribute GSR of FF_1 : label is "ENABLED";\r
+    attribute GSR of FF_0 : label is "ENABLED";\r
+    attribute syn_keep : boolean;\r
+\r
+begin\r
+    -- component instantiation statements\r
+    AND2_t26: AND2\r
+        port map (A=>WrEn, B=>invout_1, Z=>wren_i);\r
+\r
+    INV_1: INV\r
+        port map (A=>full_i, Z=>invout_1);\r
+\r
+    AND2_t25: AND2\r
+        port map (A=>RdEn, B=>invout_0, Z=>rden_i);\r
+\r
+    INV_0: INV\r
+        port map (A=>empty_i, Z=>invout_0);\r
+\r
+    OR2_t24: OR2\r
+        port map (A=>Reset, B=>RPReset, Z=>rRst);\r
+\r
+    XOR2_t23: XOR2\r
+        port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0);\r
+\r
+    XOR2_t22: XOR2\r
+        port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1);\r
+\r
+    XOR2_t21: XOR2\r
+        port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2);\r
+\r
+    XOR2_t20: XOR2\r
+        port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3);\r
+\r
+    XOR2_t19: XOR2\r
+        port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4);\r
+\r
+    XOR2_t18: XOR2\r
+        port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5);\r
+\r
+    XOR2_t17: XOR2\r
+        port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6);\r
+\r
+    XOR2_t16: XOR2\r
+        port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7);\r
+\r
+    XOR2_t15: XOR2\r
+        port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8);\r
+\r
+    XOR2_t14: XOR2\r
+        port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9);\r
+\r
+    XOR2_t13: XOR2\r
+        port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10);\r
+\r
+    XOR2_t12: XOR2\r
+        port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11);\r
+\r
+    XOR2_t11: XOR2\r
+        port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0);\r
+\r
+    XOR2_t10: XOR2\r
+        port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1);\r
+\r
+    XOR2_t9: XOR2\r
+        port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2);\r
+\r
+    XOR2_t8: XOR2\r
+        port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3);\r
+\r
+    XOR2_t7: XOR2\r
+        port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4);\r
+\r
+    XOR2_t6: XOR2\r
+        port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5);\r
+\r
+    XOR2_t5: XOR2\r
+        port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6);\r
+\r
+    XOR2_t4: XOR2\r
+        port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7);\r
+\r
+    XOR2_t3: XOR2\r
+        port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8);\r
+\r
+    XOR2_t2: XOR2\r
+        port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9);\r
+\r
+    XOR2_t1: XOR2\r
+        port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10);\r
+\r
+    XOR2_t0: XOR2\r
+        port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11);\r
+\r
+    LUT4_33: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, \r
+            AD1=>w_gcount_r211, AD0=>w_gcount_r212, \r
+            DO0=>w_g2b_xor_cluster_0);\r
+\r
+    LUT4_32: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, \r
+            AD1=>w_gcount_r27, AD0=>w_gcount_r28, \r
+            DO0=>w_g2b_xor_cluster_1);\r
+\r
+    LUT4_31: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, \r
+            AD1=>w_gcount_r23, AD0=>w_gcount_r24, \r
+            DO0=>w_g2b_xor_cluster_2);\r
+\r
+    LUT4_30: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>wcount_r11);\r
+\r
+    LUT4_29: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, \r
+            AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10);\r
+\r
+    LUT4_28: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, \r
+            AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8);\r
+\r
+    LUT4_27: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, \r
+            AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7);\r
+\r
+    LUT4_26: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, \r
+            AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6);\r
+\r
+    LUT4_25: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5);\r
+\r
+    LUT4_24: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4);\r
+\r
+    LUT4_23: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3);\r
+\r
+    LUT4_22: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, \r
+            AD1=>w_gcount_r24, AD0=>scuba_vlo, \r
+            DO0=>w_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_21: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2);\r
+\r
+    LUT4_20: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1);\r
+\r
+    LUT4_19: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0);\r
+\r
+    LUT4_18: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, \r
+            AD1=>r_gcount_w211, AD0=>r_gcount_w212, \r
+            DO0=>r_g2b_xor_cluster_0);\r
+\r
+    LUT4_17: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, \r
+            AD1=>r_gcount_w27, AD0=>r_gcount_w28, \r
+            DO0=>r_g2b_xor_cluster_1);\r
+\r
+    LUT4_16: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, \r
+            AD1=>r_gcount_w23, AD0=>r_gcount_w24, \r
+            DO0=>r_g2b_xor_cluster_2);\r
+\r
+    LUT4_15: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>rcount_w11);\r
+\r
+    LUT4_14: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, \r
+            AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10);\r
+\r
+    LUT4_13: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, \r
+            AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8);\r
+\r
+    LUT4_12: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, \r
+            AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7);\r
+\r
+    LUT4_11: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, \r
+            AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6);\r
+\r
+    LUT4_10: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5);\r
+\r
+    LUT4_9: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4);\r
+\r
+    LUT4_8: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3);\r
+\r
+    LUT4_7: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, \r
+            AD1=>r_gcount_w24, AD0=>scuba_vlo, \r
+            DO0=>r_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_6: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2);\r
+\r
+    LUT4_5: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1);\r
+\r
+    LUT4_4: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0);\r
+\r
+    LUT4_3: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0410")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_set);\r
+\r
+    LUT4_2: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x1004")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_clr);\r
+\r
+    LUT4_1: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0140")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_set);\r
+\r
+    LUT4_0: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x4001")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_clr);\r
+\r
+    pdp_ram_0_0_7: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), \r
+            DIA3=>Data(3), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(0), DOB1=>Q(1), DOB2=>Q(2), DOB3=>Q(3), \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_1_6: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(4), DIA1=>Data(5), DIA2=>Data(6), \r
+            DIA3=>Data(7), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(4), DOB1=>Q(5), DOB2=>Q(6), DOB3=>Q(7), \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_2_5: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(8), DIA1=>Data(9), DIA2=>Data(10), \r
+            DIA3=>Data(11), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(8), DOB1=>Q(9), DOB2=>Q(10), \r
+            DOB3=>Q(11), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, \r
+            DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, \r
+            DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, \r
+            DOB16=>open, DOB17=>open);\r
+\r
+    pdp_ram_0_3_4: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(12), DIA1=>Data(13), DIA2=>Data(14), \r
+            DIA3=>Data(15), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(12), DOB1=>Q(13), DOB2=>Q(14), \r
+            DOB3=>Q(15), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, \r
+            DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, \r
+            DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, \r
+            DOB16=>open, DOB17=>open);\r
+\r
+    pdp_ram_0_4_3: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(16), DIA1=>Data(17), DIA2=>Data(18), \r
+            DIA3=>Data(19), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(16), DOB1=>Q(17), DOB2=>Q(18), \r
+            DOB3=>Q(19), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, \r
+            DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, \r
+            DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, \r
+            DOB16=>open, DOB17=>open);\r
+\r
+    pdp_ram_0_5_2: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(20), DIA1=>Data(21), DIA2=>Data(22), \r
+            DIA3=>Data(23), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(20), DOB1=>Q(21), DOB2=>Q(22), \r
+            DOB3=>Q(23), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, \r
+            DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, \r
+            DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, \r
+            DOB16=>open, DOB17=>open);\r
+\r
+    pdp_ram_0_6_1: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(24), DIA1=>Data(25), DIA2=>Data(26), \r
+            DIA3=>Data(27), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(24), DOB1=>Q(25), DOB2=>Q(26), \r
+            DOB3=>Q(27), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, \r
+            DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, \r
+            DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, \r
+            DOB16=>open, DOB17=>open);\r
+\r
+    pdp_ram_0_7_0: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  4, \r
+        DATA_WIDTH_A=>  4)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(28), DIA1=>Data(29), DIA2=>Data(30), \r
+            DIA3=>Data(31), DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>wptr_0, ADA3=>wptr_1, \r
+            ADA4=>wptr_2, ADA5=>wptr_3, ADA6=>wptr_4, ADA7=>wptr_5, \r
+            ADA8=>wptr_6, ADA9=>wptr_7, ADA10=>wptr_8, ADA11=>wptr_9, \r
+            ADA12=>wptr_10, ADA13=>wptr_11, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>scuba_vlo, CSA1=>scuba_vlo, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>scuba_vlo, \r
+            ADB1=>scuba_vlo, ADB2=>rptr_0, ADB3=>rptr_1, ADB4=>rptr_2, \r
+            ADB5=>rptr_3, ADB6=>rptr_4, ADB7=>rptr_5, ADB8=>rptr_6, \r
+            ADB9=>rptr_7, ADB10=>rptr_8, ADB11=>rptr_9, ADB12=>rptr_10, \r
+            ADB13=>rptr_11, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, \r
+            RSTB=>Reset, DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, \r
+            DOA4=>open, DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, \r
+            DOA9=>open, DOA10=>open, DOA11=>open, DOA12=>open, \r
+            DOA13=>open, DOA14=>open, DOA15=>open, DOA16=>open, \r
+            DOA17=>open, DOB0=>Q(28), DOB1=>Q(29), DOB2=>Q(30), \r
+            DOB3=>Q(31), DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, \r
+            DOB8=>open, DOB9=>open, DOB10=>open, DOB11=>open, \r
+            DOB12=>open, DOB13=>open, DOB14=>open, DOB15=>open, \r
+            DOB16=>open, DOB17=>open);\r
+\r
+    FF_131: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, \r
+            Q=>wcount_0);\r
+\r
+    FF_130: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_1);\r
+\r
+    FF_129: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_2);\r
+\r
+    FF_128: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_3);\r
+\r
+    FF_127: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_4);\r
+\r
+    FF_126: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_5);\r
+\r
+    FF_125: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_6);\r
+\r
+    FF_124: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_7);\r
+\r
+    FF_123: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_8);\r
+\r
+    FF_122: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_9);\r
+\r
+    FF_121: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_10);\r
+\r
+    FF_120: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_11);\r
+\r
+    FF_119: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_12);\r
+\r
+    FF_118: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_0);\r
+\r
+    FF_117: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_1);\r
+\r
+    FF_116: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_2);\r
+\r
+    FF_115: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_3);\r
+\r
+    FF_114: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_4);\r
+\r
+    FF_113: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_5);\r
+\r
+    FF_112: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_6);\r
+\r
+    FF_111: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_7);\r
+\r
+    FF_110: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_8);\r
+\r
+    FF_109: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_9);\r
+\r
+    FF_108: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_10);\r
+\r
+    FF_107: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_11);\r
+\r
+    FF_106: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_12);\r
+\r
+    FF_105: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_0);\r
+\r
+    FF_104: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_1);\r
+\r
+    FF_103: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_2);\r
+\r
+    FF_102: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_3);\r
+\r
+    FF_101: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_4);\r
+\r
+    FF_100: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_5);\r
+\r
+    FF_99: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_6);\r
+\r
+    FF_98: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_7);\r
+\r
+    FF_97: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_8);\r
+\r
+    FF_96: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_9);\r
+\r
+    FF_95: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_10);\r
+\r
+    FF_94: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_11);\r
+\r
+    FF_93: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_12);\r
+\r
+    FF_92: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, \r
+            Q=>rcount_0);\r
+\r
+    FF_91: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_1);\r
+\r
+    FF_90: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_2);\r
+\r
+    FF_89: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_3);\r
+\r
+    FF_88: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_4);\r
+\r
+    FF_87: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_5);\r
+\r
+    FF_86: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_6);\r
+\r
+    FF_85: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_7);\r
+\r
+    FF_84: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_8);\r
+\r
+    FF_83: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_9);\r
+\r
+    FF_82: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_10);\r
+\r
+    FF_81: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_11);\r
+\r
+    FF_80: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_12);\r
+\r
+    FF_79: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_0);\r
+\r
+    FF_78: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_1);\r
+\r
+    FF_77: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_2);\r
+\r
+    FF_76: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_3);\r
+\r
+    FF_75: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_4);\r
+\r
+    FF_74: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_5);\r
+\r
+    FF_73: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_6);\r
+\r
+    FF_72: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_7);\r
+\r
+    FF_71: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_8);\r
+\r
+    FF_70: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_9);\r
+\r
+    FF_69: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_10);\r
+\r
+    FF_68: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_11);\r
+\r
+    FF_67: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_12);\r
+\r
+    FF_66: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_0);\r
+\r
+    FF_65: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_1);\r
+\r
+    FF_64: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_2);\r
+\r
+    FF_63: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_3);\r
+\r
+    FF_62: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_4);\r
+\r
+    FF_61: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_5);\r
+\r
+    FF_60: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_6);\r
+\r
+    FF_59: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_7);\r
+\r
+    FF_58: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_8);\r
+\r
+    FF_57: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_9);\r
+\r
+    FF_56: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_10);\r
+\r
+    FF_55: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_11);\r
+\r
+    FF_54: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_12);\r
+\r
+    FF_53: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0);\r
+\r
+    FF_52: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1);\r
+\r
+    FF_51: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2);\r
+\r
+    FF_50: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3);\r
+\r
+    FF_49: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4);\r
+\r
+    FF_48: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5);\r
+\r
+    FF_47: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6);\r
+\r
+    FF_46: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7);\r
+\r
+    FF_45: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8);\r
+\r
+    FF_44: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9);\r
+\r
+    FF_43: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r10);\r
+\r
+    FF_42: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r11);\r
+\r
+    FF_41: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r12);\r
+\r
+    FF_40: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0);\r
+\r
+    FF_39: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1);\r
+\r
+    FF_38: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2);\r
+\r
+    FF_37: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3);\r
+\r
+    FF_36: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4);\r
+\r
+    FF_35: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5);\r
+\r
+    FF_34: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6);\r
+\r
+    FF_33: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7);\r
+\r
+    FF_32: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8);\r
+\r
+    FF_31: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9);\r
+\r
+    FF_30: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10);\r
+\r
+    FF_29: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11);\r
+\r
+    FF_28: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12);\r
+\r
+    FF_27: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r20);\r
+\r
+    FF_26: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r21);\r
+\r
+    FF_25: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r22);\r
+\r
+    FF_24: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r23);\r
+\r
+    FF_23: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r24);\r
+\r
+    FF_22: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r25);\r
+\r
+    FF_21: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r26);\r
+\r
+    FF_20: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r27);\r
+\r
+    FF_19: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r28);\r
+\r
+    FF_18: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r29);\r
+\r
+    FF_17: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r210);\r
+\r
+    FF_16: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r211);\r
+\r
+    FF_15: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r212);\r
+\r
+    FF_14: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20);\r
+\r
+    FF_13: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21);\r
+\r
+    FF_12: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22);\r
+\r
+    FF_11: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23);\r
+\r
+    FF_10: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24);\r
+\r
+    FF_9: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25);\r
+\r
+    FF_8: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26);\r
+\r
+    FF_7: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27);\r
+\r
+    FF_6: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28);\r
+\r
+    FF_5: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29);\r
+\r
+    FF_4: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w210);\r
+\r
+    FF_3: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w211);\r
+\r
+    FF_2: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w212);\r
+\r
+    FF_1: FD1S3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i);\r
+\r
+    FF_0: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i);\r
+\r
+    w_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    w_gctr_0: CU2\r
+        port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, \r
+            NC0=>iwcount_0, NC1=>iwcount_1);\r
+\r
+    w_gctr_1: CU2\r
+        port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, \r
+            NC0=>iwcount_2, NC1=>iwcount_3);\r
+\r
+    w_gctr_2: CU2\r
+        port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, \r
+            NC0=>iwcount_4, NC1=>iwcount_5);\r
+\r
+    w_gctr_3: CU2\r
+        port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, \r
+            NC0=>iwcount_6, NC1=>iwcount_7);\r
+\r
+    w_gctr_4: CU2\r
+        port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, \r
+            NC0=>iwcount_8, NC1=>iwcount_9);\r
+\r
+    w_gctr_5: CU2\r
+        port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, \r
+            NC0=>iwcount_10, NC1=>iwcount_11);\r
+\r
+    w_gctr_6: CU2\r
+        port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, \r
+            NC0=>iwcount_12, NC1=>open);\r
+\r
+    scuba_vhi_inst: VHI\r
+        port map (Z=>scuba_vhi);\r
+\r
+    r_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    r_gctr_0: CU2\r
+        port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, \r
+            NC0=>ircount_0, NC1=>ircount_1);\r
+\r
+    r_gctr_1: CU2\r
+        port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, \r
+            NC0=>ircount_2, NC1=>ircount_3);\r
+\r
+    r_gctr_2: CU2\r
+        port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, \r
+            NC0=>ircount_4, NC1=>ircount_5);\r
+\r
+    r_gctr_3: CU2\r
+        port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, \r
+            NC0=>ircount_6, NC1=>ircount_7);\r
+\r
+    r_gctr_4: CU2\r
+        port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, \r
+            NC0=>ircount_8, NC1=>ircount_9);\r
+\r
+    r_gctr_5: CU2\r
+        port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, \r
+            NC0=>ircount_10, NC1=>ircount_11);\r
+\r
+    r_gctr_6: CU2\r
+        port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, \r
+            NC0=>ircount_12, NC1=>open);\r
+\r
+    empty_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open);\r
+\r
+    empty_cmp_0: AGEB2\r
+        port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, \r
+            B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2);\r
+\r
+    empty_cmp_1: AGEB2\r
+        port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, \r
+            B1=>wcount_r3, CI=>co0_2, GE=>co1_2);\r
+\r
+    empty_cmp_2: AGEB2\r
+        port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, \r
+            B1=>wcount_r5, CI=>co1_2, GE=>co2_2);\r
+\r
+    empty_cmp_3: AGEB2\r
+        port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, \r
+            B1=>wcount_r7, CI=>co2_2, GE=>co3_2);\r
+\r
+    empty_cmp_4: AGEB2\r
+        port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, \r
+            B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2);\r
+\r
+    empty_cmp_5: AGEB2\r
+        port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, \r
+            B1=>wcount_r11, CI=>co4_2, GE=>co5_2);\r
+\r
+    empty_cmp_6: AGEB2\r
+        port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, \r
+            B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c);\r
+\r
+    a0: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, \r
+            S1=>open);\r
+\r
+    full_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open);\r
+\r
+    full_cmp_0: AGEB2\r
+        port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, \r
+            B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3);\r
+\r
+    full_cmp_1: AGEB2\r
+        port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, \r
+            B1=>rcount_w3, CI=>co0_3, GE=>co1_3);\r
+\r
+    full_cmp_2: AGEB2\r
+        port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, \r
+            B1=>rcount_w5, CI=>co1_3, GE=>co2_3);\r
+\r
+    full_cmp_3: AGEB2\r
+        port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, \r
+            B1=>rcount_w7, CI=>co2_3, GE=>co3_3);\r
+\r
+    full_cmp_4: AGEB2\r
+        port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, \r
+            B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3);\r
+\r
+    full_cmp_5: AGEB2\r
+        port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, \r
+            B1=>rcount_w11, CI=>co4_3, GE=>co5_3);\r
+\r
+    full_cmp_6: AGEB2\r
+        port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, \r
+            B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c);\r
+\r
+    scuba_vlo_inst: VLO\r
+        port map (Z=>scuba_vlo);\r
+\r
+    a1: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, \r
+            S1=>open);\r
+\r
+    Empty <= empty_i;\r
+    Full <= full_i;\r
+end Structure;\r
+\r
+-- synopsys translate_off\r
+library ecp2m;\r
+configuration Structure_CON of fifo_4096x32 is\r
+    for Structure\r
+        for all:AGEB2 use entity ecp2m.AGEB2(V); end for;\r
+        for all:AND2 use entity ecp2m.AND2(V); end for;\r
+        for all:CU2 use entity ecp2m.CU2(V); end for;\r
+        for all:FADD2B use entity ecp2m.FADD2B(V); end for;\r
+        for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for;\r
+        for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for;\r
+        for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for;\r
+        for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for;\r
+        for all:INV use entity ecp2m.INV(V); end for;\r
+        for all:OR2 use entity ecp2m.OR2(V); end for;\r
+        for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for;\r
+        for all:VHI use entity ecp2m.VHI(V); end for;\r
+        for all:VLO use entity ecp2m.VLO(V); end for;\r
+        for all:XOR2 use entity ecp2m.XOR2(V); end for;\r
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;\r
+    end for;\r
+end Structure_CON;\r
+\r
+-- synopsys translate_on\r
diff --git a/gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_4096x32_tmpl.vhd
new file mode 100755 (executable)
index 0000000..745eb44
--- /dev/null
@@ -0,0 +1,18 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v8.0_PROD_Build (41)\r
+-- Module  Version: 5.3\r
+-- Fri Dec 18 03:02:30 2009\r
+\r
+-- parameterized module component declaration\r
+component fifo_4096x32\r
+    port (Data: in  std_logic_vector(31 downto 0); \r
+        WrClock: in  std_logic; RdClock: in  std_logic; \r
+        WrEn: in  std_logic; RdEn: in  std_logic; Reset: in  std_logic; \r
+        RPReset: in  std_logic; Q: out  std_logic_vector(31 downto 0); \r
+        Empty: out  std_logic; Full: out  std_logic);\r
+end component;\r
+\r
+-- parameterized module component instance\r
+__ : fifo_4096x32\r
+    port map (Data(31 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, \r
+        RdEn=>__, Reset=>__, RPReset=>__, Q(31 downto 0)=>__, Empty=>__, \r
+        Full=>__);\r
diff --git a/gbe_ecp2m/ipcores/fifo_4096x9.lpc b/gbe_ecp2m/ipcores/fifo_4096x9.lpc
new file mode 100755 (executable)
index 0000000..22cb7c6
--- /dev/null
@@ -0,0 +1,47 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-5F900C\r
+SpeedGrade=-5\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=FIFO_DC\r
+CoreRevision=5.2\r
+ModuleName=fifo_4096x9\r
+SourceFormat=Schematic/VHDL\r
+ParameterFileVersion=1.0\r
+Date=01/05/2010\r
+Time=23:44:15\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+FIFOImp=EBR Based\r
+Depth=4096\r
+Width=9\r
+RDepth=4096\r
+RWidth=9\r
+regout=0\r
+CtrlByRdEn=0\r
+EmpFlg=0\r
+PeMode=Static - Dual Threshold\r
+PeAssert=10\r
+PeDeassert=12\r
+FullFlg=0\r
+PfMode=Static - Dual Threshold\r
+PfAssert=508\r
+PfDeassert=506\r
+RDataCount=0\r
+WDataCount=0\r
+EnECC=0\r
diff --git a/gbe_ecp2m/ipcores/fifo_4096x9.vhd b/gbe_ecp2m/ipcores/fifo_4096x9.vhd
new file mode 100755 (executable)
index 0000000..ca644d2
--- /dev/null
@@ -0,0 +1,2171 @@
+-- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.2\r
+--/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 4096 -width 9 -depth 4096 -rdata_width 9 -no_enable -pe -1 -pf -1 -e \r
+\r
+-- Tue Jan  5 23:44:15 2010\r
+\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+-- synopsys translate_off\r
+library ecp2m;\r
+use ecp2m.components.all;\r
+-- synopsys translate_on\r
+\r
+entity fifo_4096x9 is\r
+    port (\r
+        Data: in  std_logic_vector(8 downto 0); \r
+        WrClock: in  std_logic; \r
+        RdClock: in  std_logic; \r
+        WrEn: in  std_logic; \r
+        RdEn: in  std_logic; \r
+        Reset: in  std_logic; \r
+        RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(8 downto 0); \r
+        Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end fifo_4096x9;\r
+\r
+architecture Structure of fifo_4096x9 is\r
+\r
+    -- internal signal declarations\r
+    signal invout_1: std_logic;\r
+    signal invout_0: std_logic;\r
+    signal w_g2b_xor_cluster_2_1: std_logic;\r
+    signal w_g2b_xor_cluster_2: std_logic;\r
+    signal w_g2b_xor_cluster_1: std_logic;\r
+    signal r_g2b_xor_cluster_2_1: std_logic;\r
+    signal r_g2b_xor_cluster_2: std_logic;\r
+    signal r_g2b_xor_cluster_1: std_logic;\r
+    signal w_gdata_0: std_logic;\r
+    signal w_gdata_1: std_logic;\r
+    signal w_gdata_2: std_logic;\r
+    signal w_gdata_3: std_logic;\r
+    signal w_gdata_4: std_logic;\r
+    signal w_gdata_5: std_logic;\r
+    signal w_gdata_6: std_logic;\r
+    signal w_gdata_7: std_logic;\r
+    signal w_gdata_8: std_logic;\r
+    signal w_gdata_9: std_logic;\r
+    signal w_gdata_10: std_logic;\r
+    signal w_gdata_11: std_logic;\r
+    signal wptr_0: std_logic;\r
+    signal wptr_1: std_logic;\r
+    signal wptr_2: std_logic;\r
+    signal wptr_3: std_logic;\r
+    signal wptr_4: std_logic;\r
+    signal wptr_5: std_logic;\r
+    signal wptr_6: std_logic;\r
+    signal wptr_7: std_logic;\r
+    signal wptr_8: std_logic;\r
+    signal wptr_9: std_logic;\r
+    signal wptr_10: std_logic;\r
+    signal wptr_11: std_logic;\r
+    signal wptr_12: std_logic;\r
+    signal r_gdata_0: std_logic;\r
+    signal r_gdata_1: std_logic;\r
+    signal r_gdata_2: std_logic;\r
+    signal r_gdata_3: std_logic;\r
+    signal r_gdata_4: std_logic;\r
+    signal r_gdata_5: std_logic;\r
+    signal r_gdata_6: std_logic;\r
+    signal r_gdata_7: std_logic;\r
+    signal r_gdata_8: std_logic;\r
+    signal r_gdata_9: std_logic;\r
+    signal r_gdata_10: std_logic;\r
+    signal r_gdata_11: std_logic;\r
+    signal rptr_0: std_logic;\r
+    signal rptr_1: std_logic;\r
+    signal rptr_2: std_logic;\r
+    signal rptr_3: std_logic;\r
+    signal rptr_4: std_logic;\r
+    signal rptr_5: std_logic;\r
+    signal rptr_6: std_logic;\r
+    signal rptr_7: std_logic;\r
+    signal rptr_8: std_logic;\r
+    signal rptr_9: std_logic;\r
+    signal rptr_10: std_logic;\r
+    signal rptr_12: std_logic;\r
+    signal rptr_11: std_logic;\r
+    signal w_gcount_0: std_logic;\r
+    signal w_gcount_1: std_logic;\r
+    signal w_gcount_2: std_logic;\r
+    signal w_gcount_3: std_logic;\r
+    signal w_gcount_4: std_logic;\r
+    signal w_gcount_5: std_logic;\r
+    signal w_gcount_6: std_logic;\r
+    signal w_gcount_7: std_logic;\r
+    signal w_gcount_8: std_logic;\r
+    signal w_gcount_9: std_logic;\r
+    signal w_gcount_10: std_logic;\r
+    signal w_gcount_11: std_logic;\r
+    signal w_gcount_12: std_logic;\r
+    signal r_gcount_0: std_logic;\r
+    signal r_gcount_1: std_logic;\r
+    signal r_gcount_2: std_logic;\r
+    signal r_gcount_3: std_logic;\r
+    signal r_gcount_4: std_logic;\r
+    signal r_gcount_5: std_logic;\r
+    signal r_gcount_6: std_logic;\r
+    signal r_gcount_7: std_logic;\r
+    signal r_gcount_8: std_logic;\r
+    signal r_gcount_9: std_logic;\r
+    signal r_gcount_10: std_logic;\r
+    signal r_gcount_11: std_logic;\r
+    signal r_gcount_12: std_logic;\r
+    signal w_gcount_r20: std_logic;\r
+    signal w_gcount_r0: std_logic;\r
+    signal w_gcount_r21: std_logic;\r
+    signal w_gcount_r1: std_logic;\r
+    signal w_gcount_r22: std_logic;\r
+    signal w_gcount_r2: std_logic;\r
+    signal w_gcount_r23: std_logic;\r
+    signal w_gcount_r3: std_logic;\r
+    signal w_gcount_r24: std_logic;\r
+    signal w_gcount_r4: std_logic;\r
+    signal w_gcount_r25: std_logic;\r
+    signal w_gcount_r5: std_logic;\r
+    signal w_gcount_r26: std_logic;\r
+    signal w_gcount_r6: std_logic;\r
+    signal w_gcount_r27: std_logic;\r
+    signal w_gcount_r7: std_logic;\r
+    signal w_gcount_r28: std_logic;\r
+    signal w_gcount_r8: std_logic;\r
+    signal w_gcount_r29: std_logic;\r
+    signal w_gcount_r9: std_logic;\r
+    signal w_gcount_r210: std_logic;\r
+    signal w_gcount_r10: std_logic;\r
+    signal w_gcount_r211: std_logic;\r
+    signal w_gcount_r11: std_logic;\r
+    signal w_gcount_r212: std_logic;\r
+    signal w_gcount_r12: std_logic;\r
+    signal r_gcount_w20: std_logic;\r
+    signal r_gcount_w0: std_logic;\r
+    signal r_gcount_w21: std_logic;\r
+    signal r_gcount_w1: std_logic;\r
+    signal r_gcount_w22: std_logic;\r
+    signal r_gcount_w2: std_logic;\r
+    signal r_gcount_w23: std_logic;\r
+    signal r_gcount_w3: std_logic;\r
+    signal r_gcount_w24: std_logic;\r
+    signal r_gcount_w4: std_logic;\r
+    signal r_gcount_w25: std_logic;\r
+    signal r_gcount_w5: std_logic;\r
+    signal r_gcount_w26: std_logic;\r
+    signal r_gcount_w6: std_logic;\r
+    signal r_gcount_w27: std_logic;\r
+    signal r_gcount_w7: std_logic;\r
+    signal r_gcount_w28: std_logic;\r
+    signal r_gcount_w8: std_logic;\r
+    signal r_gcount_w29: std_logic;\r
+    signal r_gcount_w9: std_logic;\r
+    signal r_gcount_w210: std_logic;\r
+    signal r_gcount_w10: std_logic;\r
+    signal r_gcount_w211: std_logic;\r
+    signal r_gcount_w11: std_logic;\r
+    signal r_gcount_w212: std_logic;\r
+    signal r_gcount_w12: std_logic;\r
+    signal empty_i: std_logic;\r
+    signal rRst: std_logic;\r
+    signal full_i: std_logic;\r
+    signal iwcount_0: std_logic;\r
+    signal iwcount_1: std_logic;\r
+    signal w_gctr_ci: std_logic;\r
+    signal iwcount_2: std_logic;\r
+    signal iwcount_3: std_logic;\r
+    signal co0: std_logic;\r
+    signal iwcount_4: std_logic;\r
+    signal iwcount_5: std_logic;\r
+    signal co1: std_logic;\r
+    signal iwcount_6: std_logic;\r
+    signal iwcount_7: std_logic;\r
+    signal co2: std_logic;\r
+    signal iwcount_8: std_logic;\r
+    signal iwcount_9: std_logic;\r
+    signal co3: std_logic;\r
+    signal iwcount_10: std_logic;\r
+    signal iwcount_11: std_logic;\r
+    signal co4: std_logic;\r
+    signal iwcount_12: std_logic;\r
+    signal co6: std_logic;\r
+    signal wcount_12: std_logic;\r
+    signal co5: std_logic;\r
+    signal scuba_vhi: std_logic;\r
+    signal ircount_0: std_logic;\r
+    signal ircount_1: std_logic;\r
+    signal r_gctr_ci: std_logic;\r
+    signal ircount_2: std_logic;\r
+    signal ircount_3: std_logic;\r
+    signal co0_1: std_logic;\r
+    signal ircount_4: std_logic;\r
+    signal ircount_5: std_logic;\r
+    signal co1_1: std_logic;\r
+    signal ircount_6: std_logic;\r
+    signal ircount_7: std_logic;\r
+    signal co2_1: std_logic;\r
+    signal ircount_8: std_logic;\r
+    signal ircount_9: std_logic;\r
+    signal co3_1: std_logic;\r
+    signal ircount_10: std_logic;\r
+    signal ircount_11: std_logic;\r
+    signal co4_1: std_logic;\r
+    signal ircount_12: std_logic;\r
+    signal co6_1: std_logic;\r
+    signal rcount_12: std_logic;\r
+    signal co5_1: std_logic;\r
+    signal mdout1_1_0: std_logic;\r
+    signal mdout1_0_0: std_logic;\r
+    signal mdout1_1_1: std_logic;\r
+    signal mdout1_0_1: std_logic;\r
+    signal mdout1_1_2: std_logic;\r
+    signal mdout1_0_2: std_logic;\r
+    signal mdout1_1_3: std_logic;\r
+    signal mdout1_0_3: std_logic;\r
+    signal mdout1_1_4: std_logic;\r
+    signal mdout1_0_4: std_logic;\r
+    signal mdout1_1_5: std_logic;\r
+    signal mdout1_0_5: std_logic;\r
+    signal mdout1_1_6: std_logic;\r
+    signal mdout1_0_6: std_logic;\r
+    signal mdout1_1_7: std_logic;\r
+    signal mdout1_0_7: std_logic;\r
+    signal rptr_11_ff: std_logic;\r
+    signal mdout1_1_8: std_logic;\r
+    signal mdout1_0_8: std_logic;\r
+    signal rden_i: std_logic;\r
+    signal cmp_ci: std_logic;\r
+    signal wcount_r0: std_logic;\r
+    signal wcount_r1: std_logic;\r
+    signal rcount_0: std_logic;\r
+    signal rcount_1: std_logic;\r
+    signal co0_2: std_logic;\r
+    signal wcount_r2: std_logic;\r
+    signal wcount_r3: std_logic;\r
+    signal rcount_2: std_logic;\r
+    signal rcount_3: std_logic;\r
+    signal co1_2: std_logic;\r
+    signal wcount_r4: std_logic;\r
+    signal wcount_r5: std_logic;\r
+    signal rcount_4: std_logic;\r
+    signal rcount_5: std_logic;\r
+    signal co2_2: std_logic;\r
+    signal wcount_r6: std_logic;\r
+    signal wcount_r7: std_logic;\r
+    signal rcount_6: std_logic;\r
+    signal rcount_7: std_logic;\r
+    signal co3_2: std_logic;\r
+    signal wcount_r8: std_logic;\r
+    signal w_g2b_xor_cluster_0: std_logic;\r
+    signal rcount_8: std_logic;\r
+    signal rcount_9: std_logic;\r
+    signal co4_2: std_logic;\r
+    signal wcount_r10: std_logic;\r
+    signal wcount_r11: std_logic;\r
+    signal rcount_10: std_logic;\r
+    signal rcount_11: std_logic;\r
+    signal co5_2: std_logic;\r
+    signal empty_cmp_clr: std_logic;\r
+    signal empty_cmp_set: std_logic;\r
+    signal empty_d: std_logic;\r
+    signal empty_d_c: std_logic;\r
+    signal wren_i: std_logic;\r
+    signal cmp_ci_1: std_logic;\r
+    signal rcount_w0: std_logic;\r
+    signal rcount_w1: std_logic;\r
+    signal wcount_0: std_logic;\r
+    signal wcount_1: std_logic;\r
+    signal co0_3: std_logic;\r
+    signal rcount_w2: std_logic;\r
+    signal rcount_w3: std_logic;\r
+    signal wcount_2: std_logic;\r
+    signal wcount_3: std_logic;\r
+    signal co1_3: std_logic;\r
+    signal rcount_w4: std_logic;\r
+    signal rcount_w5: std_logic;\r
+    signal wcount_4: std_logic;\r
+    signal wcount_5: std_logic;\r
+    signal co2_3: std_logic;\r
+    signal rcount_w6: std_logic;\r
+    signal rcount_w7: std_logic;\r
+    signal wcount_6: std_logic;\r
+    signal wcount_7: std_logic;\r
+    signal co3_3: std_logic;\r
+    signal rcount_w8: std_logic;\r
+    signal r_g2b_xor_cluster_0: std_logic;\r
+    signal wcount_8: std_logic;\r
+    signal wcount_9: std_logic;\r
+    signal co4_3: std_logic;\r
+    signal rcount_w10: std_logic;\r
+    signal rcount_w11: std_logic;\r
+    signal wcount_10: std_logic;\r
+    signal wcount_11: std_logic;\r
+    signal co5_3: std_logic;\r
+    signal full_cmp_clr: std_logic;\r
+    signal full_cmp_set: std_logic;\r
+    signal full_d: std_logic;\r
+    signal full_d_c: std_logic;\r
+    signal scuba_vlo: std_logic;\r
+\r
+    -- local component declarations\r
+    component AGEB2\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; GE: out  std_logic);\r
+    end component;\r
+    component AND2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component CU2\r
+        port (CI: in  std_logic; PC0: in  std_logic; PC1: in  std_logic; \r
+            CO: out  std_logic; NC0: out  std_logic; NC1: out  std_logic);\r
+    end component;\r
+    component FADD2B\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; COUT: out  std_logic; \r
+            S0: out  std_logic; S1: out  std_logic);\r
+    end component;\r
+    component FD1P3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            PD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1P3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            CD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1S3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; PD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component FD1S3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; CD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component INV\r
+        port (A: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component MUX21\r
+        port (D0: in  std_logic; D1: in  std_logic; SD: in  std_logic; \r
+            Z: out  std_logic);\r
+    end component;\r
+    component OR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component ROM16X1\r
+    -- synopsys translate_off\r
+        generic (initval : in String);\r
+    -- synopsys translate_on\r
+        port (AD3: in  std_logic; AD2: in  std_logic; AD1: in  std_logic; \r
+            AD0: in  std_logic; DO0: out  std_logic);\r
+    end component;\r
+    component VHI\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component VLO\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component XOR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component DP16KB\r
+    -- synopsys translate_off\r
+        generic (GSR : in String; WRITEMODE_B : in String; \r
+                CSDECODE_B : in std_logic_vector(2 downto 0); \r
+                CSDECODE_A : in std_logic_vector(2 downto 0); \r
+                WRITEMODE_A : in String; RESETMODE : in String; \r
+                REGMODE_B : in String; REGMODE_A : in String; \r
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);\r
+    -- synopsys translate_on\r
+        port (DIA0: in  std_logic; DIA1: in  std_logic; \r
+            DIA2: in  std_logic; DIA3: in  std_logic; \r
+            DIA4: in  std_logic; DIA5: in  std_logic; \r
+            DIA6: in  std_logic; DIA7: in  std_logic; \r
+            DIA8: in  std_logic; DIA9: in  std_logic; \r
+            DIA10: in  std_logic; DIA11: in  std_logic; \r
+            DIA12: in  std_logic; DIA13: in  std_logic; \r
+            DIA14: in  std_logic; DIA15: in  std_logic; \r
+            DIA16: in  std_logic; DIA17: in  std_logic; \r
+            ADA0: in  std_logic; ADA1: in  std_logic; \r
+            ADA2: in  std_logic; ADA3: in  std_logic; \r
+            ADA4: in  std_logic; ADA5: in  std_logic; \r
+            ADA6: in  std_logic; ADA7: in  std_logic; \r
+            ADA8: in  std_logic; ADA9: in  std_logic; \r
+            ADA10: in  std_logic; ADA11: in  std_logic; \r
+            ADA12: in  std_logic; ADA13: in  std_logic; \r
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; \r
+            CSA0: in  std_logic; CSA1: in  std_logic; \r
+            CSA2: in  std_logic; RSTA: in  std_logic; \r
+            DIB0: in  std_logic; DIB1: in  std_logic; \r
+            DIB2: in  std_logic; DIB3: in  std_logic; \r
+            DIB4: in  std_logic; DIB5: in  std_logic; \r
+            DIB6: in  std_logic; DIB7: in  std_logic; \r
+            DIB8: in  std_logic; DIB9: in  std_logic; \r
+            DIB10: in  std_logic; DIB11: in  std_logic; \r
+            DIB12: in  std_logic; DIB13: in  std_logic; \r
+            DIB14: in  std_logic; DIB15: in  std_logic; \r
+            DIB16: in  std_logic; DIB17: in  std_logic; \r
+            ADB0: in  std_logic; ADB1: in  std_logic; \r
+            ADB2: in  std_logic; ADB3: in  std_logic; \r
+            ADB4: in  std_logic; ADB5: in  std_logic; \r
+            ADB6: in  std_logic; ADB7: in  std_logic; \r
+            ADB8: in  std_logic; ADB9: in  std_logic; \r
+            ADB10: in  std_logic; ADB11: in  std_logic; \r
+            ADB12: in  std_logic; ADB13: in  std_logic; \r
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; \r
+            CSB0: in  std_logic; CSB1: in  std_logic; \r
+            CSB2: in  std_logic; RSTB: in  std_logic; \r
+            DOA0: out  std_logic; DOA1: out  std_logic; \r
+            DOA2: out  std_logic; DOA3: out  std_logic; \r
+            DOA4: out  std_logic; DOA5: out  std_logic; \r
+            DOA6: out  std_logic; DOA7: out  std_logic; \r
+            DOA8: out  std_logic; DOA9: out  std_logic; \r
+            DOA10: out  std_logic; DOA11: out  std_logic; \r
+            DOA12: out  std_logic; DOA13: out  std_logic; \r
+            DOA14: out  std_logic; DOA15: out  std_logic; \r
+            DOA16: out  std_logic; DOA17: out  std_logic; \r
+            DOB0: out  std_logic; DOB1: out  std_logic; \r
+            DOB2: out  std_logic; DOB3: out  std_logic; \r
+            DOB4: out  std_logic; DOB5: out  std_logic; \r
+            DOB6: out  std_logic; DOB7: out  std_logic; \r
+            DOB8: out  std_logic; DOB9: out  std_logic; \r
+            DOB10: out  std_logic; DOB11: out  std_logic; \r
+            DOB12: out  std_logic; DOB13: out  std_logic; \r
+            DOB14: out  std_logic; DOB15: out  std_logic; \r
+            DOB16: out  std_logic; DOB17: out  std_logic);\r
+    end component;\r
+    attribute initval : string; \r
+    attribute MEM_LPC_FILE : string; \r
+    attribute MEM_INIT_FILE : string; \r
+    attribute CSDECODE_B : string; \r
+    attribute CSDECODE_A : string; \r
+    attribute WRITEMODE_B : string; \r
+    attribute WRITEMODE_A : string; \r
+    attribute RESETMODE : string; \r
+    attribute REGMODE_B : string; \r
+    attribute REGMODE_A : string; \r
+    attribute DATA_WIDTH_B : string; \r
+    attribute DATA_WIDTH_A : string; \r
+    attribute GSR : string; \r
+    attribute initval of LUT4_33 : label is "0x6996";\r
+    attribute initval of LUT4_32 : label is "0x6996";\r
+    attribute initval of LUT4_31 : label is "0x6996";\r
+    attribute initval of LUT4_30 : label is "0x6996";\r
+    attribute initval of LUT4_29 : label is "0x6996";\r
+    attribute initval of LUT4_28 : label is "0x6996";\r
+    attribute initval of LUT4_27 : label is "0x6996";\r
+    attribute initval of LUT4_26 : label is "0x6996";\r
+    attribute initval of LUT4_25 : label is "0x6996";\r
+    attribute initval of LUT4_24 : label is "0x6996";\r
+    attribute initval of LUT4_23 : label is "0x6996";\r
+    attribute initval of LUT4_22 : label is "0x6996";\r
+    attribute initval of LUT4_21 : label is "0x6996";\r
+    attribute initval of LUT4_20 : label is "0x6996";\r
+    attribute initval of LUT4_19 : label is "0x6996";\r
+    attribute initval of LUT4_18 : label is "0x6996";\r
+    attribute initval of LUT4_17 : label is "0x6996";\r
+    attribute initval of LUT4_16 : label is "0x6996";\r
+    attribute initval of LUT4_15 : label is "0x6996";\r
+    attribute initval of LUT4_14 : label is "0x6996";\r
+    attribute initval of LUT4_13 : label is "0x6996";\r
+    attribute initval of LUT4_12 : label is "0x6996";\r
+    attribute initval of LUT4_11 : label is "0x6996";\r
+    attribute initval of LUT4_10 : label is "0x6996";\r
+    attribute initval of LUT4_9 : label is "0x6996";\r
+    attribute initval of LUT4_8 : label is "0x6996";\r
+    attribute initval of LUT4_7 : label is "0x6996";\r
+    attribute initval of LUT4_6 : label is "0x6996";\r
+    attribute initval of LUT4_5 : label is "0x6996";\r
+    attribute initval of LUT4_4 : label is "0x6996";\r
+    attribute initval of LUT4_3 : label is "0x0410";\r
+    attribute initval of LUT4_2 : label is "0x1004";\r
+    attribute initval of LUT4_1 : label is "0x0140";\r
+    attribute initval of LUT4_0 : label is "0x4001";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_0_1 : label is "fifo_4096x9.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_0_1 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_0_1 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_0_1 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_0_1 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_0_1 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_0_1 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_0_1 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_0_1 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_0_1 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_0_1 : label is "9";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_0_1 : label is "9";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_0_0 : label is "fifo_4096x9.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_0_0 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_0_0 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_0_0 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_0_0 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_0_0 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_0_0 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_0_0 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_0_0 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_0_0 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_0_0 : label is "9";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_0_0 : label is "9";\r
+    attribute GSR of FF_132 : label is "ENABLED";\r
+    attribute GSR of FF_131 : label is "ENABLED";\r
+    attribute GSR of FF_130 : label is "ENABLED";\r
+    attribute GSR of FF_129 : label is "ENABLED";\r
+    attribute GSR of FF_128 : label is "ENABLED";\r
+    attribute GSR of FF_127 : label is "ENABLED";\r
+    attribute GSR of FF_126 : label is "ENABLED";\r
+    attribute GSR of FF_125 : label is "ENABLED";\r
+    attribute GSR of FF_124 : label is "ENABLED";\r
+    attribute GSR of FF_123 : label is "ENABLED";\r
+    attribute GSR of FF_122 : label is "ENABLED";\r
+    attribute GSR of FF_121 : label is "ENABLED";\r
+    attribute GSR of FF_120 : label is "ENABLED";\r
+    attribute GSR of FF_119 : label is "ENABLED";\r
+    attribute GSR of FF_118 : label is "ENABLED";\r
+    attribute GSR of FF_117 : label is "ENABLED";\r
+    attribute GSR of FF_116 : label is "ENABLED";\r
+    attribute GSR of FF_115 : label is "ENABLED";\r
+    attribute GSR of FF_114 : label is "ENABLED";\r
+    attribute GSR of FF_113 : label is "ENABLED";\r
+    attribute GSR of FF_112 : label is "ENABLED";\r
+    attribute GSR of FF_111 : label is "ENABLED";\r
+    attribute GSR of FF_110 : label is "ENABLED";\r
+    attribute GSR of FF_109 : label is "ENABLED";\r
+    attribute GSR of FF_108 : label is "ENABLED";\r
+    attribute GSR of FF_107 : label is "ENABLED";\r
+    attribute GSR of FF_106 : label is "ENABLED";\r
+    attribute GSR of FF_105 : label is "ENABLED";\r
+    attribute GSR of FF_104 : label is "ENABLED";\r
+    attribute GSR of FF_103 : label is "ENABLED";\r
+    attribute GSR of FF_102 : label is "ENABLED";\r
+    attribute GSR of FF_101 : label is "ENABLED";\r
+    attribute GSR of FF_100 : label is "ENABLED";\r
+    attribute GSR of FF_99 : label is "ENABLED";\r
+    attribute GSR of FF_98 : label is "ENABLED";\r
+    attribute GSR of FF_97 : label is "ENABLED";\r
+    attribute GSR of FF_96 : label is "ENABLED";\r
+    attribute GSR of FF_95 : label is "ENABLED";\r
+    attribute GSR of FF_94 : label is "ENABLED";\r
+    attribute GSR of FF_93 : label is "ENABLED";\r
+    attribute GSR of FF_92 : label is "ENABLED";\r
+    attribute GSR of FF_91 : label is "ENABLED";\r
+    attribute GSR of FF_90 : label is "ENABLED";\r
+    attribute GSR of FF_89 : label is "ENABLED";\r
+    attribute GSR of FF_88 : label is "ENABLED";\r
+    attribute GSR of FF_87 : label is "ENABLED";\r
+    attribute GSR of FF_86 : label is "ENABLED";\r
+    attribute GSR of FF_85 : label is "ENABLED";\r
+    attribute GSR of FF_84 : label is "ENABLED";\r
+    attribute GSR of FF_83 : label is "ENABLED";\r
+    attribute GSR of FF_82 : label is "ENABLED";\r
+    attribute GSR of FF_81 : label is "ENABLED";\r
+    attribute GSR of FF_80 : label is "ENABLED";\r
+    attribute GSR of FF_79 : label is "ENABLED";\r
+    attribute GSR of FF_78 : label is "ENABLED";\r
+    attribute GSR of FF_77 : label is "ENABLED";\r
+    attribute GSR of FF_76 : label is "ENABLED";\r
+    attribute GSR of FF_75 : label is "ENABLED";\r
+    attribute GSR of FF_74 : label is "ENABLED";\r
+    attribute GSR of FF_73 : label is "ENABLED";\r
+    attribute GSR of FF_72 : label is "ENABLED";\r
+    attribute GSR of FF_71 : label is "ENABLED";\r
+    attribute GSR of FF_70 : label is "ENABLED";\r
+    attribute GSR of FF_69 : label is "ENABLED";\r
+    attribute GSR of FF_68 : label is "ENABLED";\r
+    attribute GSR of FF_67 : label is "ENABLED";\r
+    attribute GSR of FF_66 : label is "ENABLED";\r
+    attribute GSR of FF_65 : label is "ENABLED";\r
+    attribute GSR of FF_64 : label is "ENABLED";\r
+    attribute GSR of FF_63 : label is "ENABLED";\r
+    attribute GSR of FF_62 : label is "ENABLED";\r
+    attribute GSR of FF_61 : label is "ENABLED";\r
+    attribute GSR of FF_60 : label is "ENABLED";\r
+    attribute GSR of FF_59 : label is "ENABLED";\r
+    attribute GSR of FF_58 : label is "ENABLED";\r
+    attribute GSR of FF_57 : label is "ENABLED";\r
+    attribute GSR of FF_56 : label is "ENABLED";\r
+    attribute GSR of FF_55 : label is "ENABLED";\r
+    attribute GSR of FF_54 : label is "ENABLED";\r
+    attribute GSR of FF_53 : label is "ENABLED";\r
+    attribute GSR of FF_52 : label is "ENABLED";\r
+    attribute GSR of FF_51 : label is "ENABLED";\r
+    attribute GSR of FF_50 : label is "ENABLED";\r
+    attribute GSR of FF_49 : label is "ENABLED";\r
+    attribute GSR of FF_48 : label is "ENABLED";\r
+    attribute GSR of FF_47 : label is "ENABLED";\r
+    attribute GSR of FF_46 : label is "ENABLED";\r
+    attribute GSR of FF_45 : label is "ENABLED";\r
+    attribute GSR of FF_44 : label is "ENABLED";\r
+    attribute GSR of FF_43 : label is "ENABLED";\r
+    attribute GSR of FF_42 : label is "ENABLED";\r
+    attribute GSR of FF_41 : label is "ENABLED";\r
+    attribute GSR of FF_40 : label is "ENABLED";\r
+    attribute GSR of FF_39 : label is "ENABLED";\r
+    attribute GSR of FF_38 : label is "ENABLED";\r
+    attribute GSR of FF_37 : label is "ENABLED";\r
+    attribute GSR of FF_36 : label is "ENABLED";\r
+    attribute GSR of FF_35 : label is "ENABLED";\r
+    attribute GSR of FF_34 : label is "ENABLED";\r
+    attribute GSR of FF_33 : label is "ENABLED";\r
+    attribute GSR of FF_32 : label is "ENABLED";\r
+    attribute GSR of FF_31 : label is "ENABLED";\r
+    attribute GSR of FF_30 : label is "ENABLED";\r
+    attribute GSR of FF_29 : label is "ENABLED";\r
+    attribute GSR of FF_28 : label is "ENABLED";\r
+    attribute GSR of FF_27 : label is "ENABLED";\r
+    attribute GSR of FF_26 : label is "ENABLED";\r
+    attribute GSR of FF_25 : label is "ENABLED";\r
+    attribute GSR of FF_24 : label is "ENABLED";\r
+    attribute GSR of FF_23 : label is "ENABLED";\r
+    attribute GSR of FF_22 : label is "ENABLED";\r
+    attribute GSR of FF_21 : label is "ENABLED";\r
+    attribute GSR of FF_20 : label is "ENABLED";\r
+    attribute GSR of FF_19 : label is "ENABLED";\r
+    attribute GSR of FF_18 : label is "ENABLED";\r
+    attribute GSR of FF_17 : label is "ENABLED";\r
+    attribute GSR of FF_16 : label is "ENABLED";\r
+    attribute GSR of FF_15 : label is "ENABLED";\r
+    attribute GSR of FF_14 : label is "ENABLED";\r
+    attribute GSR of FF_13 : label is "ENABLED";\r
+    attribute GSR of FF_12 : label is "ENABLED";\r
+    attribute GSR of FF_11 : label is "ENABLED";\r
+    attribute GSR of FF_10 : label is "ENABLED";\r
+    attribute GSR of FF_9 : label is "ENABLED";\r
+    attribute GSR of FF_8 : label is "ENABLED";\r
+    attribute GSR of FF_7 : label is "ENABLED";\r
+    attribute GSR of FF_6 : label is "ENABLED";\r
+    attribute GSR of FF_5 : label is "ENABLED";\r
+    attribute GSR of FF_4 : label is "ENABLED";\r
+    attribute GSR of FF_3 : label is "ENABLED";\r
+    attribute GSR of FF_2 : label is "ENABLED";\r
+    attribute GSR of FF_1 : label is "ENABLED";\r
+    attribute GSR of FF_0 : label is "ENABLED";\r
+    attribute syn_keep : boolean;\r
+\r
+begin\r
+    -- component instantiation statements\r
+    AND2_t26: AND2\r
+        port map (A=>WrEn, B=>invout_1, Z=>wren_i);\r
+\r
+    INV_1: INV\r
+        port map (A=>full_i, Z=>invout_1);\r
+\r
+    AND2_t25: AND2\r
+        port map (A=>RdEn, B=>invout_0, Z=>rden_i);\r
+\r
+    INV_0: INV\r
+        port map (A=>empty_i, Z=>invout_0);\r
+\r
+    OR2_t24: OR2\r
+        port map (A=>Reset, B=>RPReset, Z=>rRst);\r
+\r
+    XOR2_t23: XOR2\r
+        port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0);\r
+\r
+    XOR2_t22: XOR2\r
+        port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1);\r
+\r
+    XOR2_t21: XOR2\r
+        port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2);\r
+\r
+    XOR2_t20: XOR2\r
+        port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3);\r
+\r
+    XOR2_t19: XOR2\r
+        port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4);\r
+\r
+    XOR2_t18: XOR2\r
+        port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5);\r
+\r
+    XOR2_t17: XOR2\r
+        port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6);\r
+\r
+    XOR2_t16: XOR2\r
+        port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7);\r
+\r
+    XOR2_t15: XOR2\r
+        port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8);\r
+\r
+    XOR2_t14: XOR2\r
+        port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9);\r
+\r
+    XOR2_t13: XOR2\r
+        port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10);\r
+\r
+    XOR2_t12: XOR2\r
+        port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11);\r
+\r
+    XOR2_t11: XOR2\r
+        port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0);\r
+\r
+    XOR2_t10: XOR2\r
+        port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1);\r
+\r
+    XOR2_t9: XOR2\r
+        port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2);\r
+\r
+    XOR2_t8: XOR2\r
+        port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3);\r
+\r
+    XOR2_t7: XOR2\r
+        port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4);\r
+\r
+    XOR2_t6: XOR2\r
+        port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5);\r
+\r
+    XOR2_t5: XOR2\r
+        port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6);\r
+\r
+    XOR2_t4: XOR2\r
+        port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7);\r
+\r
+    XOR2_t3: XOR2\r
+        port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8);\r
+\r
+    XOR2_t2: XOR2\r
+        port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9);\r
+\r
+    XOR2_t1: XOR2\r
+        port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10);\r
+\r
+    XOR2_t0: XOR2\r
+        port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11);\r
+\r
+    LUT4_33: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, \r
+            AD1=>w_gcount_r211, AD0=>w_gcount_r212, \r
+            DO0=>w_g2b_xor_cluster_0);\r
+\r
+    LUT4_32: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, \r
+            AD1=>w_gcount_r27, AD0=>w_gcount_r28, \r
+            DO0=>w_g2b_xor_cluster_1);\r
+\r
+    LUT4_31: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, \r
+            AD1=>w_gcount_r23, AD0=>w_gcount_r24, \r
+            DO0=>w_g2b_xor_cluster_2);\r
+\r
+    LUT4_30: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>wcount_r11);\r
+\r
+    LUT4_29: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, \r
+            AD1=>w_gcount_r212, AD0=>scuba_vlo, DO0=>wcount_r10);\r
+\r
+    LUT4_28: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, \r
+            AD1=>w_gcount_r210, AD0=>wcount_r11, DO0=>wcount_r8);\r
+\r
+    LUT4_27: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r27, AD2=>w_gcount_r28, \r
+            AD1=>w_gcount_r29, AD0=>wcount_r10, DO0=>wcount_r7);\r
+\r
+    LUT4_26: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, \r
+            AD1=>w_gcount_r28, AD0=>w_g2b_xor_cluster_0, DO0=>wcount_r6);\r
+\r
+    LUT4_25: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r5);\r
+\r
+    LUT4_24: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r24, AD0=>scuba_vlo, DO0=>wcount_r4);\r
+\r
+    LUT4_23: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r23, AD0=>w_gcount_r24, DO0=>wcount_r3);\r
+\r
+    LUT4_22: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, \r
+            AD1=>w_gcount_r24, AD0=>scuba_vlo, \r
+            DO0=>w_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_21: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r2);\r
+\r
+    LUT4_20: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r1);\r
+\r
+    LUT4_19: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r20, DO0=>wcount_r0);\r
+\r
+    LUT4_18: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, \r
+            AD1=>r_gcount_w211, AD0=>r_gcount_w212, \r
+            DO0=>r_g2b_xor_cluster_0);\r
+\r
+    LUT4_17: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, \r
+            AD1=>r_gcount_w27, AD0=>r_gcount_w28, \r
+            DO0=>r_g2b_xor_cluster_1);\r
+\r
+    LUT4_16: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, \r
+            AD1=>r_gcount_w23, AD0=>r_gcount_w24, \r
+            DO0=>r_g2b_xor_cluster_2);\r
+\r
+    LUT4_15: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>rcount_w11);\r
+\r
+    LUT4_14: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, \r
+            AD1=>r_gcount_w212, AD0=>scuba_vlo, DO0=>rcount_w10);\r
+\r
+    LUT4_13: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, \r
+            AD1=>r_gcount_w210, AD0=>rcount_w11, DO0=>rcount_w8);\r
+\r
+    LUT4_12: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w27, AD2=>r_gcount_w28, \r
+            AD1=>r_gcount_w29, AD0=>rcount_w10, DO0=>rcount_w7);\r
+\r
+    LUT4_11: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, \r
+            AD1=>r_gcount_w28, AD0=>r_g2b_xor_cluster_0, DO0=>rcount_w6);\r
+\r
+    LUT4_10: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w5);\r
+\r
+    LUT4_9: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w24, AD0=>scuba_vlo, DO0=>rcount_w4);\r
+\r
+    LUT4_8: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w23, AD0=>r_gcount_w24, DO0=>rcount_w3);\r
+\r
+    LUT4_7: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, \r
+            AD1=>r_gcount_w24, AD0=>scuba_vlo, \r
+            DO0=>r_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_6: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w2);\r
+\r
+    LUT4_5: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w1);\r
+\r
+    LUT4_4: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w20, DO0=>rcount_w0);\r
+\r
+    LUT4_3: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0410")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_set);\r
+\r
+    LUT4_2: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x1004")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_12, AD2=>rcount_12, AD1=>w_gcount_r212, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_clr);\r
+\r
+    LUT4_1: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0140")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_set);\r
+\r
+    LUT4_0: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x4001")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_12, AD2=>wcount_12, AD1=>r_gcount_w212, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_clr);\r
+\r
+    pdp_ram_0_0_1: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  9, \r
+        DATA_WIDTH_A=>  9)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), \r
+            DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), \r
+            DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, \r
+            DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, \r
+            DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, \r
+            DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, \r
+            ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, \r
+            ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, \r
+            ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, \r
+            ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, \r
+            CSA0=>wptr_11, CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, \r
+            DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, \r
+            DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, \r
+            DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, \r
+            DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, \r
+            DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, \r
+            DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, \r
+            ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, \r
+            ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, \r
+            ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, \r
+            ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, \r
+            CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>rptr_11, \r
+            CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, \r
+            DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, \r
+            DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, \r
+            DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, \r
+            DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_0_0, \r
+            DOB1=>mdout1_0_1, DOB2=>mdout1_0_2, DOB3=>mdout1_0_3, \r
+            DOB4=>mdout1_0_4, DOB5=>mdout1_0_5, DOB6=>mdout1_0_6, \r
+            DOB7=>mdout1_0_7, DOB8=>mdout1_0_8, DOB9=>open, DOB10=>open, \r
+            DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, \r
+            DOB15=>open, DOB16=>open, DOB17=>open);\r
+\r
+    pdp_ram_1_0_0: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  9, \r
+        DATA_WIDTH_A=>  9)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>Data(0), DIA1=>Data(1), DIA2=>Data(2), \r
+            DIA3=>Data(3), DIA4=>Data(4), DIA5=>Data(5), DIA6=>Data(6), \r
+            DIA7=>Data(7), DIA8=>Data(8), DIA9=>scuba_vlo, \r
+            DIA10=>scuba_vlo, DIA11=>scuba_vlo, DIA12=>scuba_vlo, \r
+            DIA13=>scuba_vlo, DIA14=>scuba_vlo, DIA15=>scuba_vlo, \r
+            DIA16=>scuba_vlo, DIA17=>scuba_vlo, ADA0=>scuba_vlo, \r
+            ADA1=>scuba_vlo, ADA2=>scuba_vlo, ADA3=>wptr_0, ADA4=>wptr_1, \r
+            ADA5=>wptr_2, ADA6=>wptr_3, ADA7=>wptr_4, ADA8=>wptr_5, \r
+            ADA9=>wptr_6, ADA10=>wptr_7, ADA11=>wptr_8, ADA12=>wptr_9, \r
+            ADA13=>wptr_10, CEA=>wren_i, CLKA=>WrClock, WEA=>scuba_vhi, \r
+            CSA0=>wptr_11, CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, \r
+            DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, \r
+            DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, \r
+            DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, \r
+            DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, \r
+            DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, \r
+            DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, \r
+            ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, \r
+            ADB3=>rptr_0, ADB4=>rptr_1, ADB5=>rptr_2, ADB6=>rptr_3, \r
+            ADB7=>rptr_4, ADB8=>rptr_5, ADB9=>rptr_6, ADB10=>rptr_7, \r
+            ADB11=>rptr_8, ADB12=>rptr_9, ADB13=>rptr_10, CEB=>rden_i, \r
+            CLKB=>RdClock, WEB=>scuba_vlo, CSB0=>rptr_11, \r
+            CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>Reset, DOA0=>open, \r
+            DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, DOA5=>open, \r
+            DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, DOA10=>open, \r
+            DOA11=>open, DOA12=>open, DOA13=>open, DOA14=>open, \r
+            DOA15=>open, DOA16=>open, DOA17=>open, DOB0=>mdout1_1_0, \r
+            DOB1=>mdout1_1_1, DOB2=>mdout1_1_2, DOB3=>mdout1_1_3, \r
+            DOB4=>mdout1_1_4, DOB5=>mdout1_1_5, DOB6=>mdout1_1_6, \r
+            DOB7=>mdout1_1_7, DOB8=>mdout1_1_8, DOB9=>open, DOB10=>open, \r
+            DOB11=>open, DOB12=>open, DOB13=>open, DOB14=>open, \r
+            DOB15=>open, DOB16=>open, DOB17=>open);\r
+\r
+    FF_132: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, \r
+            Q=>wcount_0);\r
+\r
+    FF_131: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_1);\r
+\r
+    FF_130: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_2);\r
+\r
+    FF_129: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_3);\r
+\r
+    FF_128: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_4);\r
+\r
+    FF_127: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_5);\r
+\r
+    FF_126: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_6);\r
+\r
+    FF_125: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_7);\r
+\r
+    FF_124: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_8);\r
+\r
+    FF_123: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_9);\r
+\r
+    FF_122: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_10);\r
+\r
+    FF_121: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_11);\r
+\r
+    FF_120: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_12);\r
+\r
+    FF_119: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_0);\r
+\r
+    FF_118: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_1);\r
+\r
+    FF_117: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_2);\r
+\r
+    FF_116: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_3);\r
+\r
+    FF_115: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_4);\r
+\r
+    FF_114: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_5);\r
+\r
+    FF_113: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_6);\r
+\r
+    FF_112: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_7);\r
+\r
+    FF_111: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_8);\r
+\r
+    FF_110: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_9);\r
+\r
+    FF_109: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_10);\r
+\r
+    FF_108: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_11);\r
+\r
+    FF_107: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_12);\r
+\r
+    FF_106: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_0);\r
+\r
+    FF_105: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_1);\r
+\r
+    FF_104: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_2);\r
+\r
+    FF_103: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_3);\r
+\r
+    FF_102: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_4);\r
+\r
+    FF_101: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_5);\r
+\r
+    FF_100: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_6);\r
+\r
+    FF_99: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_7);\r
+\r
+    FF_98: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_8);\r
+\r
+    FF_97: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_9);\r
+\r
+    FF_96: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_10);\r
+\r
+    FF_95: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_11);\r
+\r
+    FF_94: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_12);\r
+\r
+    FF_93: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, \r
+            Q=>rcount_0);\r
+\r
+    FF_92: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_1);\r
+\r
+    FF_91: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_2);\r
+\r
+    FF_90: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_3);\r
+\r
+    FF_89: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_4);\r
+\r
+    FF_88: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_5);\r
+\r
+    FF_87: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_6);\r
+\r
+    FF_86: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_7);\r
+\r
+    FF_85: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_8);\r
+\r
+    FF_84: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_9);\r
+\r
+    FF_83: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_10);\r
+\r
+    FF_82: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_11);\r
+\r
+    FF_81: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_12);\r
+\r
+    FF_80: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_0);\r
+\r
+    FF_79: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_1);\r
+\r
+    FF_78: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_2);\r
+\r
+    FF_77: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_3);\r
+\r
+    FF_76: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_4);\r
+\r
+    FF_75: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_5);\r
+\r
+    FF_74: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_6);\r
+\r
+    FF_73: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_7);\r
+\r
+    FF_72: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_8);\r
+\r
+    FF_71: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_9);\r
+\r
+    FF_70: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_10);\r
+\r
+    FF_69: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_11);\r
+\r
+    FF_68: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_12);\r
+\r
+    FF_67: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_0);\r
+\r
+    FF_66: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_1);\r
+\r
+    FF_65: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_2);\r
+\r
+    FF_64: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_3);\r
+\r
+    FF_63: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_4);\r
+\r
+    FF_62: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_5);\r
+\r
+    FF_61: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_6);\r
+\r
+    FF_60: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_7);\r
+\r
+    FF_59: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_8);\r
+\r
+    FF_58: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_9);\r
+\r
+    FF_57: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_10);\r
+\r
+    FF_56: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_11);\r
+\r
+    FF_55: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_12);\r
+\r
+    FF_54: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rptr_11, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, \r
+            Q=>rptr_11_ff);\r
+\r
+    FF_53: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0);\r
+\r
+    FF_52: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1);\r
+\r
+    FF_51: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2);\r
+\r
+    FF_50: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3);\r
+\r
+    FF_49: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4);\r
+\r
+    FF_48: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5);\r
+\r
+    FF_47: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6);\r
+\r
+    FF_46: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7);\r
+\r
+    FF_45: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8);\r
+\r
+    FF_44: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9);\r
+\r
+    FF_43: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r10);\r
+\r
+    FF_42: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r11);\r
+\r
+    FF_41: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r12);\r
+\r
+    FF_40: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0);\r
+\r
+    FF_39: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1);\r
+\r
+    FF_38: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2);\r
+\r
+    FF_37: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3);\r
+\r
+    FF_36: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4);\r
+\r
+    FF_35: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5);\r
+\r
+    FF_34: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6);\r
+\r
+    FF_33: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7);\r
+\r
+    FF_32: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8);\r
+\r
+    FF_31: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9);\r
+\r
+    FF_30: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10);\r
+\r
+    FF_29: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11);\r
+\r
+    FF_28: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12);\r
+\r
+    FF_27: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r20);\r
+\r
+    FF_26: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r21);\r
+\r
+    FF_25: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r22);\r
+\r
+    FF_24: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r23);\r
+\r
+    FF_23: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r24);\r
+\r
+    FF_22: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r25);\r
+\r
+    FF_21: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r26);\r
+\r
+    FF_20: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r27);\r
+\r
+    FF_19: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r28);\r
+\r
+    FF_18: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r29);\r
+\r
+    FF_17: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r210);\r
+\r
+    FF_16: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r211);\r
+\r
+    FF_15: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r212);\r
+\r
+    FF_14: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20);\r
+\r
+    FF_13: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21);\r
+\r
+    FF_12: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22);\r
+\r
+    FF_11: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23);\r
+\r
+    FF_10: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24);\r
+\r
+    FF_9: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25);\r
+\r
+    FF_8: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26);\r
+\r
+    FF_7: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27);\r
+\r
+    FF_6: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28);\r
+\r
+    FF_5: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29);\r
+\r
+    FF_4: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w210);\r
+\r
+    FF_3: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w211);\r
+\r
+    FF_2: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w212);\r
+\r
+    FF_1: FD1S3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i);\r
+\r
+    FF_0: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i);\r
+\r
+    w_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    w_gctr_0: CU2\r
+        port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, \r
+            NC0=>iwcount_0, NC1=>iwcount_1);\r
+\r
+    w_gctr_1: CU2\r
+        port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, \r
+            NC0=>iwcount_2, NC1=>iwcount_3);\r
+\r
+    w_gctr_2: CU2\r
+        port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, \r
+            NC0=>iwcount_4, NC1=>iwcount_5);\r
+\r
+    w_gctr_3: CU2\r
+        port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, \r
+            NC0=>iwcount_6, NC1=>iwcount_7);\r
+\r
+    w_gctr_4: CU2\r
+        port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, \r
+            NC0=>iwcount_8, NC1=>iwcount_9);\r
+\r
+    w_gctr_5: CU2\r
+        port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, \r
+            NC0=>iwcount_10, NC1=>iwcount_11);\r
+\r
+    w_gctr_6: CU2\r
+        port map (CI=>co5, PC0=>wcount_12, PC1=>scuba_vlo, CO=>co6, \r
+            NC0=>iwcount_12, NC1=>open);\r
+\r
+    scuba_vhi_inst: VHI\r
+        port map (Z=>scuba_vhi);\r
+\r
+    r_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    r_gctr_0: CU2\r
+        port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, \r
+            NC0=>ircount_0, NC1=>ircount_1);\r
+\r
+    r_gctr_1: CU2\r
+        port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, \r
+            NC0=>ircount_2, NC1=>ircount_3);\r
+\r
+    r_gctr_2: CU2\r
+        port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, \r
+            NC0=>ircount_4, NC1=>ircount_5);\r
+\r
+    r_gctr_3: CU2\r
+        port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, \r
+            NC0=>ircount_6, NC1=>ircount_7);\r
+\r
+    r_gctr_4: CU2\r
+        port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, \r
+            NC0=>ircount_8, NC1=>ircount_9);\r
+\r
+    r_gctr_5: CU2\r
+        port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, \r
+            NC0=>ircount_10, NC1=>ircount_11);\r
+\r
+    r_gctr_6: CU2\r
+        port map (CI=>co5_1, PC0=>rcount_12, PC1=>scuba_vlo, CO=>co6_1, \r
+            NC0=>ircount_12, NC1=>open);\r
+\r
+    mux_8: MUX21\r
+        port map (D0=>mdout1_0_0, D1=>mdout1_1_0, SD=>rptr_11_ff, \r
+            Z=>Q(0));\r
+\r
+    mux_7: MUX21\r
+        port map (D0=>mdout1_0_1, D1=>mdout1_1_1, SD=>rptr_11_ff, \r
+            Z=>Q(1));\r
+\r
+    mux_6: MUX21\r
+        port map (D0=>mdout1_0_2, D1=>mdout1_1_2, SD=>rptr_11_ff, \r
+            Z=>Q(2));\r
+\r
+    mux_5: MUX21\r
+        port map (D0=>mdout1_0_3, D1=>mdout1_1_3, SD=>rptr_11_ff, \r
+            Z=>Q(3));\r
+\r
+    mux_4: MUX21\r
+        port map (D0=>mdout1_0_4, D1=>mdout1_1_4, SD=>rptr_11_ff, \r
+            Z=>Q(4));\r
+\r
+    mux_3: MUX21\r
+        port map (D0=>mdout1_0_5, D1=>mdout1_1_5, SD=>rptr_11_ff, \r
+            Z=>Q(5));\r
+\r
+    mux_2: MUX21\r
+        port map (D0=>mdout1_0_6, D1=>mdout1_1_6, SD=>rptr_11_ff, \r
+            Z=>Q(6));\r
+\r
+    mux_1: MUX21\r
+        port map (D0=>mdout1_0_7, D1=>mdout1_1_7, SD=>rptr_11_ff, \r
+            Z=>Q(7));\r
+\r
+    mux_0: MUX21\r
+        port map (D0=>mdout1_0_8, D1=>mdout1_1_8, SD=>rptr_11_ff, \r
+            Z=>Q(8));\r
+\r
+    empty_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open);\r
+\r
+    empty_cmp_0: AGEB2\r
+        port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, \r
+            B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2);\r
+\r
+    empty_cmp_1: AGEB2\r
+        port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, \r
+            B1=>wcount_r3, CI=>co0_2, GE=>co1_2);\r
+\r
+    empty_cmp_2: AGEB2\r
+        port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, \r
+            B1=>wcount_r5, CI=>co1_2, GE=>co2_2);\r
+\r
+    empty_cmp_3: AGEB2\r
+        port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, \r
+            B1=>wcount_r7, CI=>co2_2, GE=>co3_2);\r
+\r
+    empty_cmp_4: AGEB2\r
+        port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, \r
+            B1=>w_g2b_xor_cluster_0, CI=>co3_2, GE=>co4_2);\r
+\r
+    empty_cmp_5: AGEB2\r
+        port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, \r
+            B1=>wcount_r11, CI=>co4_2, GE=>co5_2);\r
+\r
+    empty_cmp_6: AGEB2\r
+        port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, \r
+            B1=>scuba_vlo, CI=>co5_2, GE=>empty_d_c);\r
+\r
+    a0: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, \r
+            S1=>open);\r
+\r
+    full_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open);\r
+\r
+    full_cmp_0: AGEB2\r
+        port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, \r
+            B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3);\r
+\r
+    full_cmp_1: AGEB2\r
+        port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, \r
+            B1=>rcount_w3, CI=>co0_3, GE=>co1_3);\r
+\r
+    full_cmp_2: AGEB2\r
+        port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, \r
+            B1=>rcount_w5, CI=>co1_3, GE=>co2_3);\r
+\r
+    full_cmp_3: AGEB2\r
+        port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, \r
+            B1=>rcount_w7, CI=>co2_3, GE=>co3_3);\r
+\r
+    full_cmp_4: AGEB2\r
+        port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, \r
+            B1=>r_g2b_xor_cluster_0, CI=>co3_3, GE=>co4_3);\r
+\r
+    full_cmp_5: AGEB2\r
+        port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, \r
+            B1=>rcount_w11, CI=>co4_3, GE=>co5_3);\r
+\r
+    full_cmp_6: AGEB2\r
+        port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, \r
+            B1=>scuba_vlo, CI=>co5_3, GE=>full_d_c);\r
+\r
+    scuba_vlo_inst: VLO\r
+        port map (Z=>scuba_vlo);\r
+\r
+    a1: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, \r
+            S1=>open);\r
+\r
+    Empty <= empty_i;\r
+    Full <= full_i;\r
+end Structure;\r
+\r
+-- synopsys translate_off\r
+library ecp2m;\r
+configuration Structure_CON of fifo_4096x9 is\r
+    for Structure\r
+        for all:AGEB2 use entity ecp2m.AGEB2(V); end for;\r
+        for all:AND2 use entity ecp2m.AND2(V); end for;\r
+        for all:CU2 use entity ecp2m.CU2(V); end for;\r
+        for all:FADD2B use entity ecp2m.FADD2B(V); end for;\r
+        for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for;\r
+        for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for;\r
+        for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for;\r
+        for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for;\r
+        for all:INV use entity ecp2m.INV(V); end for;\r
+        for all:MUX21 use entity ecp2m.MUX21(V); end for;\r
+        for all:OR2 use entity ecp2m.OR2(V); end for;\r
+        for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for;\r
+        for all:VHI use entity ecp2m.VHI(V); end for;\r
+        for all:VLO use entity ecp2m.VLO(V); end for;\r
+        for all:XOR2 use entity ecp2m.XOR2(V); end for;\r
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;\r
+    end for;\r
+end Structure_CON;\r
+\r
+-- synopsys translate_on\r
diff --git a/gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_4096x9_tmpl.vhd
new file mode 100755 (executable)
index 0000000..f754d74
--- /dev/null
@@ -0,0 +1,18 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.2\r
+-- Tue Jan  5 23:44:15 2010\r
+\r
+-- parameterized module component declaration\r
+component fifo_4096x9\r
+    port (Data: in  std_logic_vector(8 downto 0); WrClock: in  std_logic; \r
+        RdClock: in  std_logic; WrEn: in  std_logic; RdEn: in  std_logic; \r
+        Reset: in  std_logic; RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(8 downto 0); Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end component;\r
+\r
+-- parameterized module component instance\r
+__ : fifo_4096x9\r
+    port map (Data(8 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, \r
+        RdEn=>__, Reset=>__, RPReset=>__, Q(8 downto 0)=>__, Empty=>__, \r
+        Full=>__);\r
diff --git a/gbe_ecp2m/ipcores/fifo_64kx8.lpc b/gbe_ecp2m/ipcores/fifo_64kx8.lpc
new file mode 100755 (executable)
index 0000000..3d27821
--- /dev/null
@@ -0,0 +1,47 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-5F900C\r
+SpeedGrade=-5\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=FIFO_DC\r
+CoreRevision=5.2\r
+ModuleName=fifo_64kx8\r
+SourceFormat=Schematic/VHDL\r
+ParameterFileVersion=1.0\r
+Date=12/26/2009\r
+Time=00:12:05\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+FIFOImp=EBR Based\r
+Depth=65536\r
+Width=8\r
+RDepth=65536\r
+RWidth=8\r
+regout=0\r
+CtrlByRdEn=0\r
+EmpFlg=0\r
+PeMode=Static - Dual Threshold\r
+PeAssert=10\r
+PeDeassert=12\r
+FullFlg=0\r
+PfMode=Static - Dual Threshold\r
+PfAssert=508\r
+PfDeassert=506\r
+RDataCount=0\r
+WDataCount=0\r
+EnECC=0\r
diff --git a/gbe_ecp2m/ipcores/fifo_64kx8.vhd b/gbe_ecp2m/ipcores/fifo_64kx8.vhd
new file mode 100755 (executable)
index 0000000..ba79880
--- /dev/null
@@ -0,0 +1,4435 @@
+-- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.2\r
+--/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type ebfifo -depth 65536 -width 8 -depth 65536 -rdata_width 8 -no_enable -pe -1 -pf -1 -e \r
+\r
+-- Sat Dec 26 00:12:05 2009\r
+\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+-- synopsys translate_off\r
+library ecp2m;\r
+use ecp2m.components.all;\r
+-- synopsys translate_on\r
+\r
+entity fifo_64kx8 is\r
+    port (\r
+        Data: in  std_logic_vector(7 downto 0); \r
+        WrClock: in  std_logic; \r
+        RdClock: in  std_logic; \r
+        WrEn: in  std_logic; \r
+        RdEn: in  std_logic; \r
+        Reset: in  std_logic; \r
+        RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(7 downto 0); \r
+        Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end fifo_64kx8;\r
+\r
+architecture Structure of fifo_64kx8 is\r
+\r
+    -- internal signal declarations\r
+    signal invout_1: std_logic;\r
+    signal invout_0: std_logic;\r
+    signal w_g2b_xor_cluster_2_1: std_logic;\r
+    signal w_g2b_xor_cluster_3_1: std_logic;\r
+    signal w_g2b_xor_cluster_3_2: std_logic;\r
+    signal w_g2b_xor_cluster_3: std_logic;\r
+    signal w_g2b_xor_cluster_2: std_logic;\r
+    signal w_g2b_xor_cluster_1: std_logic;\r
+    signal func_xor_inet_3: std_logic;\r
+    signal func_xor_inet_2: std_logic;\r
+    signal func_xor_inet_1: std_logic;\r
+    signal func_xor_inet: std_logic;\r
+    signal func_xor_inet_4: std_logic;\r
+    signal func_xor_inet_5: std_logic;\r
+    signal r_g2b_xor_cluster_2_1: std_logic;\r
+    signal r_g2b_xor_cluster_3_1: std_logic;\r
+    signal r_g2b_xor_cluster_3_2: std_logic;\r
+    signal r_g2b_xor_cluster_3: std_logic;\r
+    signal r_g2b_xor_cluster_2: std_logic;\r
+    signal r_g2b_xor_cluster_1: std_logic;\r
+    signal func_xor_inet_9: std_logic;\r
+    signal func_xor_inet_8: std_logic;\r
+    signal func_xor_inet_7: std_logic;\r
+    signal func_xor_inet_6: std_logic;\r
+    signal func_xor_inet_10: std_logic;\r
+    signal func_xor_inet_11: std_logic;\r
+    signal w_gdata_0: std_logic;\r
+    signal w_gdata_1: std_logic;\r
+    signal w_gdata_2: std_logic;\r
+    signal w_gdata_3: std_logic;\r
+    signal w_gdata_4: std_logic;\r
+    signal w_gdata_5: std_logic;\r
+    signal w_gdata_6: std_logic;\r
+    signal w_gdata_7: std_logic;\r
+    signal w_gdata_8: std_logic;\r
+    signal w_gdata_9: std_logic;\r
+    signal w_gdata_10: std_logic;\r
+    signal w_gdata_11: std_logic;\r
+    signal w_gdata_12: std_logic;\r
+    signal w_gdata_13: std_logic;\r
+    signal w_gdata_14: std_logic;\r
+    signal w_gdata_15: std_logic;\r
+    signal wptr_0: std_logic;\r
+    signal wptr_1: std_logic;\r
+    signal wptr_2: std_logic;\r
+    signal wptr_3: std_logic;\r
+    signal wptr_4: std_logic;\r
+    signal wptr_5: std_logic;\r
+    signal wptr_6: std_logic;\r
+    signal wptr_7: std_logic;\r
+    signal wptr_8: std_logic;\r
+    signal wptr_9: std_logic;\r
+    signal wptr_10: std_logic;\r
+    signal wptr_11: std_logic;\r
+    signal wptr_12: std_logic;\r
+    signal wptr_13: std_logic;\r
+    signal wptr_14: std_logic;\r
+    signal wptr_15: std_logic;\r
+    signal wptr_16: std_logic;\r
+    signal r_gdata_0: std_logic;\r
+    signal r_gdata_1: std_logic;\r
+    signal r_gdata_2: std_logic;\r
+    signal r_gdata_3: std_logic;\r
+    signal r_gdata_4: std_logic;\r
+    signal r_gdata_5: std_logic;\r
+    signal r_gdata_6: std_logic;\r
+    signal r_gdata_7: std_logic;\r
+    signal r_gdata_8: std_logic;\r
+    signal r_gdata_9: std_logic;\r
+    signal r_gdata_10: std_logic;\r
+    signal r_gdata_11: std_logic;\r
+    signal r_gdata_12: std_logic;\r
+    signal r_gdata_13: std_logic;\r
+    signal r_gdata_14: std_logic;\r
+    signal r_gdata_15: std_logic;\r
+    signal rptr_0: std_logic;\r
+    signal rptr_1: std_logic;\r
+    signal rptr_2: std_logic;\r
+    signal rptr_3: std_logic;\r
+    signal rptr_4: std_logic;\r
+    signal rptr_5: std_logic;\r
+    signal rptr_6: std_logic;\r
+    signal rptr_7: std_logic;\r
+    signal rptr_8: std_logic;\r
+    signal rptr_9: std_logic;\r
+    signal rptr_10: std_logic;\r
+    signal rptr_11: std_logic;\r
+    signal rptr_12: std_logic;\r
+    signal rptr_13: std_logic;\r
+    signal rptr_16: std_logic;\r
+    signal rptr_14: std_logic;\r
+    signal rptr_15: std_logic;\r
+    signal w_gcount_0: std_logic;\r
+    signal w_gcount_1: std_logic;\r
+    signal w_gcount_2: std_logic;\r
+    signal w_gcount_3: std_logic;\r
+    signal w_gcount_4: std_logic;\r
+    signal w_gcount_5: std_logic;\r
+    signal w_gcount_6: std_logic;\r
+    signal w_gcount_7: std_logic;\r
+    signal w_gcount_8: std_logic;\r
+    signal w_gcount_9: std_logic;\r
+    signal w_gcount_10: std_logic;\r
+    signal w_gcount_11: std_logic;\r
+    signal w_gcount_12: std_logic;\r
+    signal w_gcount_13: std_logic;\r
+    signal w_gcount_14: std_logic;\r
+    signal w_gcount_15: std_logic;\r
+    signal w_gcount_16: std_logic;\r
+    signal r_gcount_0: std_logic;\r
+    signal r_gcount_1: std_logic;\r
+    signal r_gcount_2: std_logic;\r
+    signal r_gcount_3: std_logic;\r
+    signal r_gcount_4: std_logic;\r
+    signal r_gcount_5: std_logic;\r
+    signal r_gcount_6: std_logic;\r
+    signal r_gcount_7: std_logic;\r
+    signal r_gcount_8: std_logic;\r
+    signal r_gcount_9: std_logic;\r
+    signal r_gcount_10: std_logic;\r
+    signal r_gcount_11: std_logic;\r
+    signal r_gcount_12: std_logic;\r
+    signal r_gcount_13: std_logic;\r
+    signal r_gcount_14: std_logic;\r
+    signal r_gcount_15: std_logic;\r
+    signal r_gcount_16: std_logic;\r
+    signal w_gcount_r20: std_logic;\r
+    signal w_gcount_r0: std_logic;\r
+    signal w_gcount_r21: std_logic;\r
+    signal w_gcount_r1: std_logic;\r
+    signal w_gcount_r22: std_logic;\r
+    signal w_gcount_r2: std_logic;\r
+    signal w_gcount_r23: std_logic;\r
+    signal w_gcount_r3: std_logic;\r
+    signal w_gcount_r24: std_logic;\r
+    signal w_gcount_r4: std_logic;\r
+    signal w_gcount_r25: std_logic;\r
+    signal w_gcount_r5: std_logic;\r
+    signal w_gcount_r26: std_logic;\r
+    signal w_gcount_r6: std_logic;\r
+    signal w_gcount_r27: std_logic;\r
+    signal w_gcount_r7: std_logic;\r
+    signal w_gcount_r28: std_logic;\r
+    signal w_gcount_r8: std_logic;\r
+    signal w_gcount_r29: std_logic;\r
+    signal w_gcount_r9: std_logic;\r
+    signal w_gcount_r210: std_logic;\r
+    signal w_gcount_r10: std_logic;\r
+    signal w_gcount_r211: std_logic;\r
+    signal w_gcount_r11: std_logic;\r
+    signal w_gcount_r212: std_logic;\r
+    signal w_gcount_r12: std_logic;\r
+    signal w_gcount_r213: std_logic;\r
+    signal w_gcount_r13: std_logic;\r
+    signal w_gcount_r214: std_logic;\r
+    signal w_gcount_r14: std_logic;\r
+    signal w_gcount_r215: std_logic;\r
+    signal w_gcount_r15: std_logic;\r
+    signal w_gcount_r216: std_logic;\r
+    signal w_gcount_r16: std_logic;\r
+    signal r_gcount_w20: std_logic;\r
+    signal r_gcount_w0: std_logic;\r
+    signal r_gcount_w21: std_logic;\r
+    signal r_gcount_w1: std_logic;\r
+    signal r_gcount_w22: std_logic;\r
+    signal r_gcount_w2: std_logic;\r
+    signal r_gcount_w23: std_logic;\r
+    signal r_gcount_w3: std_logic;\r
+    signal r_gcount_w24: std_logic;\r
+    signal r_gcount_w4: std_logic;\r
+    signal r_gcount_w25: std_logic;\r
+    signal r_gcount_w5: std_logic;\r
+    signal r_gcount_w26: std_logic;\r
+    signal r_gcount_w6: std_logic;\r
+    signal r_gcount_w27: std_logic;\r
+    signal r_gcount_w7: std_logic;\r
+    signal r_gcount_w28: std_logic;\r
+    signal r_gcount_w8: std_logic;\r
+    signal r_gcount_w29: std_logic;\r
+    signal r_gcount_w9: std_logic;\r
+    signal r_gcount_w210: std_logic;\r
+    signal r_gcount_w10: std_logic;\r
+    signal r_gcount_w211: std_logic;\r
+    signal r_gcount_w11: std_logic;\r
+    signal r_gcount_w212: std_logic;\r
+    signal r_gcount_w12: std_logic;\r
+    signal r_gcount_w213: std_logic;\r
+    signal r_gcount_w13: std_logic;\r
+    signal r_gcount_w214: std_logic;\r
+    signal r_gcount_w14: std_logic;\r
+    signal r_gcount_w215: std_logic;\r
+    signal r_gcount_w15: std_logic;\r
+    signal r_gcount_w216: std_logic;\r
+    signal r_gcount_w16: std_logic;\r
+    signal empty_i: std_logic;\r
+    signal rRst: std_logic;\r
+    signal full_i: std_logic;\r
+    signal iwcount_0: std_logic;\r
+    signal iwcount_1: std_logic;\r
+    signal w_gctr_ci: std_logic;\r
+    signal iwcount_2: std_logic;\r
+    signal iwcount_3: std_logic;\r
+    signal co0: std_logic;\r
+    signal iwcount_4: std_logic;\r
+    signal iwcount_5: std_logic;\r
+    signal co1: std_logic;\r
+    signal iwcount_6: std_logic;\r
+    signal iwcount_7: std_logic;\r
+    signal co2: std_logic;\r
+    signal iwcount_8: std_logic;\r
+    signal iwcount_9: std_logic;\r
+    signal co3: std_logic;\r
+    signal iwcount_10: std_logic;\r
+    signal iwcount_11: std_logic;\r
+    signal co4: std_logic;\r
+    signal iwcount_12: std_logic;\r
+    signal iwcount_13: std_logic;\r
+    signal co5: std_logic;\r
+    signal iwcount_14: std_logic;\r
+    signal iwcount_15: std_logic;\r
+    signal co6: std_logic;\r
+    signal iwcount_16: std_logic;\r
+    signal co8: std_logic;\r
+    signal wcount_16: std_logic;\r
+    signal co7: std_logic;\r
+    signal scuba_vhi: std_logic;\r
+    signal ircount_0: std_logic;\r
+    signal ircount_1: std_logic;\r
+    signal r_gctr_ci: std_logic;\r
+    signal ircount_2: std_logic;\r
+    signal ircount_3: std_logic;\r
+    signal co0_1: std_logic;\r
+    signal ircount_4: std_logic;\r
+    signal ircount_5: std_logic;\r
+    signal co1_1: std_logic;\r
+    signal ircount_6: std_logic;\r
+    signal ircount_7: std_logic;\r
+    signal co2_1: std_logic;\r
+    signal ircount_8: std_logic;\r
+    signal ircount_9: std_logic;\r
+    signal co3_1: std_logic;\r
+    signal ircount_10: std_logic;\r
+    signal ircount_11: std_logic;\r
+    signal co4_1: std_logic;\r
+    signal ircount_12: std_logic;\r
+    signal ircount_13: std_logic;\r
+    signal co5_1: std_logic;\r
+    signal ircount_14: std_logic;\r
+    signal ircount_15: std_logic;\r
+    signal co6_1: std_logic;\r
+    signal ircount_16: std_logic;\r
+    signal co8_1: std_logic;\r
+    signal rcount_16: std_logic;\r
+    signal co7_1: std_logic;\r
+    signal mdout1_3_0: std_logic;\r
+    signal mdout1_2_0: std_logic;\r
+    signal mdout1_1_0: std_logic;\r
+    signal mdout1_0_0: std_logic;\r
+    signal mdout1_3_1: std_logic;\r
+    signal mdout1_2_1: std_logic;\r
+    signal mdout1_1_1: std_logic;\r
+    signal mdout1_0_1: std_logic;\r
+    signal mdout1_3_2: std_logic;\r
+    signal mdout1_2_2: std_logic;\r
+    signal mdout1_1_2: std_logic;\r
+    signal mdout1_0_2: std_logic;\r
+    signal mdout1_3_3: std_logic;\r
+    signal mdout1_2_3: std_logic;\r
+    signal mdout1_1_3: std_logic;\r
+    signal mdout1_0_3: std_logic;\r
+    signal mdout1_3_4: std_logic;\r
+    signal mdout1_2_4: std_logic;\r
+    signal mdout1_1_4: std_logic;\r
+    signal mdout1_0_4: std_logic;\r
+    signal mdout1_3_5: std_logic;\r
+    signal mdout1_2_5: std_logic;\r
+    signal mdout1_1_5: std_logic;\r
+    signal mdout1_0_5: std_logic;\r
+    signal mdout1_3_6: std_logic;\r
+    signal mdout1_2_6: std_logic;\r
+    signal mdout1_1_6: std_logic;\r
+    signal mdout1_0_6: std_logic;\r
+    signal rptr_15_ff: std_logic;\r
+    signal rptr_14_ff: std_logic;\r
+    signal mdout1_3_7: std_logic;\r
+    signal mdout1_2_7: std_logic;\r
+    signal mdout1_1_7: std_logic;\r
+    signal mdout1_0_7: std_logic;\r
+    signal rden_i: std_logic;\r
+    signal cmp_ci: std_logic;\r
+    signal wcount_r0: std_logic;\r
+    signal wcount_r1: std_logic;\r
+    signal rcount_0: std_logic;\r
+    signal rcount_1: std_logic;\r
+    signal co0_2: std_logic;\r
+    signal wcount_r2: std_logic;\r
+    signal wcount_r3: std_logic;\r
+    signal rcount_2: std_logic;\r
+    signal rcount_3: std_logic;\r
+    signal co1_2: std_logic;\r
+    signal wcount_r4: std_logic;\r
+    signal wcount_r5: std_logic;\r
+    signal rcount_4: std_logic;\r
+    signal rcount_5: std_logic;\r
+    signal co2_2: std_logic;\r
+    signal wcount_r6: std_logic;\r
+    signal wcount_r7: std_logic;\r
+    signal rcount_6: std_logic;\r
+    signal rcount_7: std_logic;\r
+    signal co3_2: std_logic;\r
+    signal wcount_r8: std_logic;\r
+    signal wcount_r9: std_logic;\r
+    signal rcount_8: std_logic;\r
+    signal rcount_9: std_logic;\r
+    signal co4_2: std_logic;\r
+    signal wcount_r10: std_logic;\r
+    signal wcount_r11: std_logic;\r
+    signal rcount_10: std_logic;\r
+    signal rcount_11: std_logic;\r
+    signal co5_2: std_logic;\r
+    signal wcount_r12: std_logic;\r
+    signal w_g2b_xor_cluster_0: std_logic;\r
+    signal rcount_12: std_logic;\r
+    signal rcount_13: std_logic;\r
+    signal co6_2: std_logic;\r
+    signal wcount_r14: std_logic;\r
+    signal wcount_r15: std_logic;\r
+    signal rcount_14: std_logic;\r
+    signal rcount_15: std_logic;\r
+    signal co7_2: std_logic;\r
+    signal empty_cmp_clr: std_logic;\r
+    signal empty_cmp_set: std_logic;\r
+    signal empty_d: std_logic;\r
+    signal empty_d_c: std_logic;\r
+    signal wren_i: std_logic;\r
+    signal cmp_ci_1: std_logic;\r
+    signal rcount_w0: std_logic;\r
+    signal rcount_w1: std_logic;\r
+    signal wcount_0: std_logic;\r
+    signal wcount_1: std_logic;\r
+    signal co0_3: std_logic;\r
+    signal rcount_w2: std_logic;\r
+    signal rcount_w3: std_logic;\r
+    signal wcount_2: std_logic;\r
+    signal wcount_3: std_logic;\r
+    signal co1_3: std_logic;\r
+    signal rcount_w4: std_logic;\r
+    signal rcount_w5: std_logic;\r
+    signal wcount_4: std_logic;\r
+    signal wcount_5: std_logic;\r
+    signal co2_3: std_logic;\r
+    signal rcount_w6: std_logic;\r
+    signal rcount_w7: std_logic;\r
+    signal wcount_6: std_logic;\r
+    signal wcount_7: std_logic;\r
+    signal co3_3: std_logic;\r
+    signal rcount_w8: std_logic;\r
+    signal rcount_w9: std_logic;\r
+    signal wcount_8: std_logic;\r
+    signal wcount_9: std_logic;\r
+    signal co4_3: std_logic;\r
+    signal rcount_w10: std_logic;\r
+    signal rcount_w11: std_logic;\r
+    signal wcount_10: std_logic;\r
+    signal wcount_11: std_logic;\r
+    signal co5_3: std_logic;\r
+    signal rcount_w12: std_logic;\r
+    signal r_g2b_xor_cluster_0: std_logic;\r
+    signal wcount_12: std_logic;\r
+    signal wcount_13: std_logic;\r
+    signal co6_3: std_logic;\r
+    signal rcount_w14: std_logic;\r
+    signal rcount_w15: std_logic;\r
+    signal wcount_14: std_logic;\r
+    signal wcount_15: std_logic;\r
+    signal co7_3: std_logic;\r
+    signal full_cmp_clr: std_logic;\r
+    signal full_cmp_set: std_logic;\r
+    signal full_d: std_logic;\r
+    signal full_d_c: std_logic;\r
+    signal scuba_vlo: std_logic;\r
+\r
+    -- local component declarations\r
+    component AGEB2\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; GE: out  std_logic);\r
+    end component;\r
+    component AND2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component CU2\r
+        port (CI: in  std_logic; PC0: in  std_logic; PC1: in  std_logic; \r
+            CO: out  std_logic; NC0: out  std_logic; NC1: out  std_logic);\r
+    end component;\r
+    component FADD2B\r
+        port (A0: in  std_logic; A1: in  std_logic; B0: in  std_logic; \r
+            B1: in  std_logic; CI: in  std_logic; COUT: out  std_logic; \r
+            S0: out  std_logic; S1: out  std_logic);\r
+    end component;\r
+    component FD1P3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            PD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1P3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; SP: in  std_logic; CK: in  std_logic; \r
+            CD: in  std_logic; Q: out  std_logic);\r
+    end component;\r
+    component FD1S3BX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; PD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component FD1S3DX\r
+    -- synopsys translate_off\r
+        generic (GSR : in String);\r
+    -- synopsys translate_on\r
+        port (D: in  std_logic; CK: in  std_logic; CD: in  std_logic; \r
+            Q: out  std_logic);\r
+    end component;\r
+    component INV\r
+        port (A: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component MUX41\r
+        port (D0: in  std_logic; D1: in  std_logic; D2: in  std_logic; \r
+            D3: in  std_logic; SD1: in  std_logic; SD2: in  std_logic; \r
+            Z: out  std_logic);\r
+    end component;\r
+    component OR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component ROM16X1\r
+    -- synopsys translate_off\r
+        generic (initval : in String);\r
+    -- synopsys translate_on\r
+        port (AD3: in  std_logic; AD2: in  std_logic; AD1: in  std_logic; \r
+            AD0: in  std_logic; DO0: out  std_logic);\r
+    end component;\r
+    component VHI\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component VLO\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component XOR2\r
+        port (A: in  std_logic; B: in  std_logic; Z: out  std_logic);\r
+    end component;\r
+    component DP16KB\r
+    -- synopsys translate_off\r
+        generic (GSR : in String; WRITEMODE_B : in String; \r
+                CSDECODE_B : in std_logic_vector(2 downto 0); \r
+                CSDECODE_A : in std_logic_vector(2 downto 0); \r
+                WRITEMODE_A : in String; RESETMODE : in String; \r
+                REGMODE_B : in String; REGMODE_A : in String; \r
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);\r
+    -- synopsys translate_on\r
+        port (DIA0: in  std_logic; DIA1: in  std_logic; \r
+            DIA2: in  std_logic; DIA3: in  std_logic; \r
+            DIA4: in  std_logic; DIA5: in  std_logic; \r
+            DIA6: in  std_logic; DIA7: in  std_logic; \r
+            DIA8: in  std_logic; DIA9: in  std_logic; \r
+            DIA10: in  std_logic; DIA11: in  std_logic; \r
+            DIA12: in  std_logic; DIA13: in  std_logic; \r
+            DIA14: in  std_logic; DIA15: in  std_logic; \r
+            DIA16: in  std_logic; DIA17: in  std_logic; \r
+            ADA0: in  std_logic; ADA1: in  std_logic; \r
+            ADA2: in  std_logic; ADA3: in  std_logic; \r
+            ADA4: in  std_logic; ADA5: in  std_logic; \r
+            ADA6: in  std_logic; ADA7: in  std_logic; \r
+            ADA8: in  std_logic; ADA9: in  std_logic; \r
+            ADA10: in  std_logic; ADA11: in  std_logic; \r
+            ADA12: in  std_logic; ADA13: in  std_logic; \r
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; \r
+            CSA0: in  std_logic; CSA1: in  std_logic; \r
+            CSA2: in  std_logic; RSTA: in  std_logic; \r
+            DIB0: in  std_logic; DIB1: in  std_logic; \r
+            DIB2: in  std_logic; DIB3: in  std_logic; \r
+            DIB4: in  std_logic; DIB5: in  std_logic; \r
+            DIB6: in  std_logic; DIB7: in  std_logic; \r
+            DIB8: in  std_logic; DIB9: in  std_logic; \r
+            DIB10: in  std_logic; DIB11: in  std_logic; \r
+            DIB12: in  std_logic; DIB13: in  std_logic; \r
+            DIB14: in  std_logic; DIB15: in  std_logic; \r
+            DIB16: in  std_logic; DIB17: in  std_logic; \r
+            ADB0: in  std_logic; ADB1: in  std_logic; \r
+            ADB2: in  std_logic; ADB3: in  std_logic; \r
+            ADB4: in  std_logic; ADB5: in  std_logic; \r
+            ADB6: in  std_logic; ADB7: in  std_logic; \r
+            ADB8: in  std_logic; ADB9: in  std_logic; \r
+            ADB10: in  std_logic; ADB11: in  std_logic; \r
+            ADB12: in  std_logic; ADB13: in  std_logic; \r
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; \r
+            CSB0: in  std_logic; CSB1: in  std_logic; \r
+            CSB2: in  std_logic; RSTB: in  std_logic; \r
+            DOA0: out  std_logic; DOA1: out  std_logic; \r
+            DOA2: out  std_logic; DOA3: out  std_logic; \r
+            DOA4: out  std_logic; DOA5: out  std_logic; \r
+            DOA6: out  std_logic; DOA7: out  std_logic; \r
+            DOA8: out  std_logic; DOA9: out  std_logic; \r
+            DOA10: out  std_logic; DOA11: out  std_logic; \r
+            DOA12: out  std_logic; DOA13: out  std_logic; \r
+            DOA14: out  std_logic; DOA15: out  std_logic; \r
+            DOA16: out  std_logic; DOA17: out  std_logic; \r
+            DOB0: out  std_logic; DOB1: out  std_logic; \r
+            DOB2: out  std_logic; DOB3: out  std_logic; \r
+            DOB4: out  std_logic; DOB5: out  std_logic; \r
+            DOB6: out  std_logic; DOB7: out  std_logic; \r
+            DOB8: out  std_logic; DOB9: out  std_logic; \r
+            DOB10: out  std_logic; DOB11: out  std_logic; \r
+            DOB12: out  std_logic; DOB13: out  std_logic; \r
+            DOB14: out  std_logic; DOB15: out  std_logic; \r
+            DOB16: out  std_logic; DOB17: out  std_logic);\r
+    end component;\r
+    attribute initval : string; \r
+    attribute MEM_LPC_FILE : string; \r
+    attribute MEM_INIT_FILE : string; \r
+    attribute CSDECODE_B : string; \r
+    attribute CSDECODE_A : string; \r
+    attribute WRITEMODE_B : string; \r
+    attribute WRITEMODE_A : string; \r
+    attribute RESETMODE : string; \r
+    attribute REGMODE_B : string; \r
+    attribute REGMODE_A : string; \r
+    attribute DATA_WIDTH_B : string; \r
+    attribute DATA_WIDTH_A : string; \r
+    attribute GSR : string; \r
+    attribute initval of LUT4_59 : label is "0x6996";\r
+    attribute initval of LUT4_58 : label is "0x6996";\r
+    attribute initval of LUT4_57 : label is "0x6996";\r
+    attribute initval of LUT4_56 : label is "0x6996";\r
+    attribute initval of LUT4_55 : label is "0x6996";\r
+    attribute initval of LUT4_54 : label is "0x6996";\r
+    attribute initval of LUT4_53 : label is "0x6996";\r
+    attribute initval of LUT4_52 : label is "0x6996";\r
+    attribute initval of LUT4_51 : label is "0x6996";\r
+    attribute initval of LUT4_50 : label is "0x6996";\r
+    attribute initval of LUT4_49 : label is "0x6996";\r
+    attribute initval of LUT4_48 : label is "0x6996";\r
+    attribute initval of LUT4_47 : label is "0x6996";\r
+    attribute initval of LUT4_46 : label is "0x6996";\r
+    attribute initval of LUT4_45 : label is "0x6996";\r
+    attribute initval of LUT4_44 : label is "0x6996";\r
+    attribute initval of LUT4_43 : label is "0x6996";\r
+    attribute initval of LUT4_42 : label is "0x6996";\r
+    attribute initval of LUT4_41 : label is "0x6996";\r
+    attribute initval of LUT4_40 : label is "0x6996";\r
+    attribute initval of LUT4_39 : label is "0x6996";\r
+    attribute initval of LUT4_38 : label is "0x6996";\r
+    attribute initval of LUT4_37 : label is "0x6996";\r
+    attribute initval of LUT4_36 : label is "0x6996";\r
+    attribute initval of LUT4_35 : label is "0x6996";\r
+    attribute initval of LUT4_34 : label is "0x6996";\r
+    attribute initval of LUT4_33 : label is "0x6996";\r
+    attribute initval of LUT4_32 : label is "0x6996";\r
+    attribute initval of LUT4_31 : label is "0x6996";\r
+    attribute initval of LUT4_30 : label is "0x6996";\r
+    attribute initval of LUT4_29 : label is "0x6996";\r
+    attribute initval of LUT4_28 : label is "0x6996";\r
+    attribute initval of LUT4_27 : label is "0x6996";\r
+    attribute initval of LUT4_26 : label is "0x6996";\r
+    attribute initval of LUT4_25 : label is "0x6996";\r
+    attribute initval of LUT4_24 : label is "0x6996";\r
+    attribute initval of LUT4_23 : label is "0x6996";\r
+    attribute initval of LUT4_22 : label is "0x6996";\r
+    attribute initval of LUT4_21 : label is "0x6996";\r
+    attribute initval of LUT4_20 : label is "0x6996";\r
+    attribute initval of LUT4_19 : label is "0x6996";\r
+    attribute initval of LUT4_18 : label is "0x6996";\r
+    attribute initval of LUT4_17 : label is "0x6996";\r
+    attribute initval of LUT4_16 : label is "0x6996";\r
+    attribute initval of LUT4_15 : label is "0x6996";\r
+    attribute initval of LUT4_14 : label is "0x6996";\r
+    attribute initval of LUT4_13 : label is "0x6996";\r
+    attribute initval of LUT4_12 : label is "0x6996";\r
+    attribute initval of LUT4_11 : label is "0x6996";\r
+    attribute initval of LUT4_10 : label is "0x6996";\r
+    attribute initval of LUT4_9 : label is "0x6996";\r
+    attribute initval of LUT4_8 : label is "0x6996";\r
+    attribute initval of LUT4_7 : label is "0x6996";\r
+    attribute initval of LUT4_6 : label is "0x6996";\r
+    attribute initval of LUT4_5 : label is "0x6996";\r
+    attribute initval of LUT4_4 : label is "0x6996";\r
+    attribute initval of LUT4_3 : label is "0x0410";\r
+    attribute initval of LUT4_2 : label is "0x1004";\r
+    attribute initval of LUT4_1 : label is "0x0140";\r
+    attribute initval of LUT4_0 : label is "0x4001";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_0_31 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_0_31 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_0_31 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_0_31 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_0_31 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_0_31 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_0_31 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_0_31 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_0_31 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_0_31 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_0_31 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_0_31 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_1_30 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_1_30 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_1_30 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_1_30 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_1_30 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_1_30 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_1_30 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_1_30 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_1_30 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_1_30 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_1_30 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_1_30 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_2_29 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_2_29 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_2_29 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_2_29 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_2_29 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_2_29 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_2_29 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_2_29 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_2_29 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_2_29 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_2_29 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_2_29 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_3_28 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_3_28 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_3_28 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_3_28 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_3_28 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_3_28 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_3_28 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_3_28 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_3_28 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_3_28 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_3_28 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_3_28 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_4_27 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_4_27 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_4_27 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_4_27 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_4_27 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_4_27 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_4_27 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_4_27 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_4_27 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_4_27 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_4_27 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_4_27 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_5_26 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_5_26 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_5_26 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_5_26 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_5_26 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_5_26 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_5_26 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_5_26 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_5_26 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_5_26 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_5_26 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_5_26 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_6_25 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_6_25 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_6_25 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_6_25 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_6_25 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_6_25 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_6_25 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_6_25 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_6_25 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_6_25 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_6_25 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_6_25 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_0_7_24 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_0_7_24 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_0_7_24 : label is "0b000";\r
+    attribute CSDECODE_A of pdp_ram_0_7_24 : label is "0b000";\r
+    attribute WRITEMODE_B of pdp_ram_0_7_24 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_0_7_24 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_0_7_24 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_0_7_24 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_0_7_24 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_0_7_24 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_0_7_24 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_0_7_24 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_0_23 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_0_23 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_0_23 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_0_23 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_0_23 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_0_23 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_0_23 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_0_23 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_0_23 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_0_23 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_0_23 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_0_23 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_1_22 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_1_22 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_1_22 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_1_22 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_1_22 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_1_22 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_1_22 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_1_22 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_1_22 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_1_22 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_1_22 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_1_22 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_2_21 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_2_21 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_2_21 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_2_21 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_2_21 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_2_21 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_2_21 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_2_21 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_2_21 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_2_21 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_2_21 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_2_21 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_3_20 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_3_20 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_3_20 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_3_20 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_3_20 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_3_20 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_3_20 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_3_20 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_3_20 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_3_20 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_3_20 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_3_20 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_4_19 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_4_19 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_4_19 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_4_19 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_4_19 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_4_19 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_4_19 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_4_19 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_4_19 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_4_19 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_4_19 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_4_19 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_5_18 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_5_18 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_5_18 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_5_18 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_5_18 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_5_18 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_5_18 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_5_18 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_5_18 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_5_18 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_5_18 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_5_18 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_6_17 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_6_17 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_6_17 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_6_17 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_6_17 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_6_17 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_6_17 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_6_17 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_6_17 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_6_17 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_6_17 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_6_17 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_1_7_16 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_1_7_16 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_1_7_16 : label is "0b001";\r
+    attribute CSDECODE_A of pdp_ram_1_7_16 : label is "0b001";\r
+    attribute WRITEMODE_B of pdp_ram_1_7_16 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_1_7_16 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_1_7_16 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_1_7_16 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_1_7_16 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_1_7_16 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_1_7_16 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_1_7_16 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_0_15 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_0_15 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_0_15 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_0_15 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_0_15 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_0_15 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_0_15 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_0_15 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_0_15 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_0_15 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_0_15 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_0_15 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_1_14 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_1_14 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_1_14 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_1_14 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_1_14 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_1_14 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_1_14 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_1_14 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_1_14 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_1_14 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_1_14 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_1_14 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_2_13 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_2_13 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_2_13 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_2_13 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_2_13 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_2_13 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_2_13 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_2_13 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_2_13 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_2_13 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_2_13 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_2_13 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_3_12 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_3_12 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_3_12 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_3_12 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_3_12 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_3_12 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_3_12 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_3_12 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_3_12 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_3_12 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_3_12 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_3_12 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_4_11 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_4_11 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_4_11 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_4_11 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_4_11 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_4_11 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_4_11 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_4_11 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_4_11 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_4_11 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_4_11 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_4_11 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_5_10 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_5_10 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_5_10 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_5_10 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_5_10 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_5_10 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_5_10 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_5_10 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_5_10 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_5_10 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_5_10 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_5_10 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_6_9 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_6_9 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_6_9 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_6_9 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_6_9 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_6_9 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_6_9 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_6_9 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_6_9 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_6_9 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_6_9 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_6_9 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_2_7_8 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_2_7_8 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_2_7_8 : label is "0b010";\r
+    attribute CSDECODE_A of pdp_ram_2_7_8 : label is "0b010";\r
+    attribute WRITEMODE_B of pdp_ram_2_7_8 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_2_7_8 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_2_7_8 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_2_7_8 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_2_7_8 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_2_7_8 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_2_7_8 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_2_7_8 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_0_7 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_0_7 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_0_7 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_0_7 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_0_7 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_0_7 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_0_7 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_0_7 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_0_7 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_0_7 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_0_7 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_0_7 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_1_6 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_1_6 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_1_6 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_1_6 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_1_6 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_1_6 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_1_6 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_1_6 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_1_6 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_1_6 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_1_6 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_1_6 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_2_5 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_2_5 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_2_5 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_2_5 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_2_5 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_2_5 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_2_5 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_2_5 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_2_5 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_2_5 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_2_5 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_2_5 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_3_4 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_3_4 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_3_4 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_3_4 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_3_4 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_3_4 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_3_4 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_3_4 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_3_4 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_3_4 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_3_4 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_3_4 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_4_3 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_4_3 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_4_3 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_4_3 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_4_3 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_4_3 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_4_3 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_4_3 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_4_3 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_4_3 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_4_3 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_4_3 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_5_2 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_5_2 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_5_2 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_5_2 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_5_2 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_5_2 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_5_2 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_5_2 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_5_2 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_5_2 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_5_2 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_5_2 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_6_1 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_6_1 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_6_1 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_6_1 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_6_1 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_6_1 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_6_1 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_6_1 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_6_1 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_6_1 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_6_1 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_6_1 : label is "1";\r
+    attribute MEM_LPC_FILE of pdp_ram_3_7_0 : label is "fifo_64kx8.lpc";\r
+    attribute MEM_INIT_FILE of pdp_ram_3_7_0 : label is "";\r
+    attribute CSDECODE_B of pdp_ram_3_7_0 : label is "0b011";\r
+    attribute CSDECODE_A of pdp_ram_3_7_0 : label is "0b011";\r
+    attribute WRITEMODE_B of pdp_ram_3_7_0 : label is "NORMAL";\r
+    attribute WRITEMODE_A of pdp_ram_3_7_0 : label is "NORMAL";\r
+    attribute GSR of pdp_ram_3_7_0 : label is "DISABLED";\r
+    attribute RESETMODE of pdp_ram_3_7_0 : label is "ASYNC";\r
+    attribute REGMODE_B of pdp_ram_3_7_0 : label is "NOREG";\r
+    attribute REGMODE_A of pdp_ram_3_7_0 : label is "NOREG";\r
+    attribute DATA_WIDTH_B of pdp_ram_3_7_0 : label is "1";\r
+    attribute DATA_WIDTH_A of pdp_ram_3_7_0 : label is "1";\r
+    attribute GSR of FF_173 : label is "ENABLED";\r
+    attribute GSR of FF_172 : label is "ENABLED";\r
+    attribute GSR of FF_171 : label is "ENABLED";\r
+    attribute GSR of FF_170 : label is "ENABLED";\r
+    attribute GSR of FF_169 : label is "ENABLED";\r
+    attribute GSR of FF_168 : label is "ENABLED";\r
+    attribute GSR of FF_167 : label is "ENABLED";\r
+    attribute GSR of FF_166 : label is "ENABLED";\r
+    attribute GSR of FF_165 : label is "ENABLED";\r
+    attribute GSR of FF_164 : label is "ENABLED";\r
+    attribute GSR of FF_163 : label is "ENABLED";\r
+    attribute GSR of FF_162 : label is "ENABLED";\r
+    attribute GSR of FF_161 : label is "ENABLED";\r
+    attribute GSR of FF_160 : label is "ENABLED";\r
+    attribute GSR of FF_159 : label is "ENABLED";\r
+    attribute GSR of FF_158 : label is "ENABLED";\r
+    attribute GSR of FF_157 : label is "ENABLED";\r
+    attribute GSR of FF_156 : label is "ENABLED";\r
+    attribute GSR of FF_155 : label is "ENABLED";\r
+    attribute GSR of FF_154 : label is "ENABLED";\r
+    attribute GSR of FF_153 : label is "ENABLED";\r
+    attribute GSR of FF_152 : label is "ENABLED";\r
+    attribute GSR of FF_151 : label is "ENABLED";\r
+    attribute GSR of FF_150 : label is "ENABLED";\r
+    attribute GSR of FF_149 : label is "ENABLED";\r
+    attribute GSR of FF_148 : label is "ENABLED";\r
+    attribute GSR of FF_147 : label is "ENABLED";\r
+    attribute GSR of FF_146 : label is "ENABLED";\r
+    attribute GSR of FF_145 : label is "ENABLED";\r
+    attribute GSR of FF_144 : label is "ENABLED";\r
+    attribute GSR of FF_143 : label is "ENABLED";\r
+    attribute GSR of FF_142 : label is "ENABLED";\r
+    attribute GSR of FF_141 : label is "ENABLED";\r
+    attribute GSR of FF_140 : label is "ENABLED";\r
+    attribute GSR of FF_139 : label is "ENABLED";\r
+    attribute GSR of FF_138 : label is "ENABLED";\r
+    attribute GSR of FF_137 : label is "ENABLED";\r
+    attribute GSR of FF_136 : label is "ENABLED";\r
+    attribute GSR of FF_135 : label is "ENABLED";\r
+    attribute GSR of FF_134 : label is "ENABLED";\r
+    attribute GSR of FF_133 : label is "ENABLED";\r
+    attribute GSR of FF_132 : label is "ENABLED";\r
+    attribute GSR of FF_131 : label is "ENABLED";\r
+    attribute GSR of FF_130 : label is "ENABLED";\r
+    attribute GSR of FF_129 : label is "ENABLED";\r
+    attribute GSR of FF_128 : label is "ENABLED";\r
+    attribute GSR of FF_127 : label is "ENABLED";\r
+    attribute GSR of FF_126 : label is "ENABLED";\r
+    attribute GSR of FF_125 : label is "ENABLED";\r
+    attribute GSR of FF_124 : label is "ENABLED";\r
+    attribute GSR of FF_123 : label is "ENABLED";\r
+    attribute GSR of FF_122 : label is "ENABLED";\r
+    attribute GSR of FF_121 : label is "ENABLED";\r
+    attribute GSR of FF_120 : label is "ENABLED";\r
+    attribute GSR of FF_119 : label is "ENABLED";\r
+    attribute GSR of FF_118 : label is "ENABLED";\r
+    attribute GSR of FF_117 : label is "ENABLED";\r
+    attribute GSR of FF_116 : label is "ENABLED";\r
+    attribute GSR of FF_115 : label is "ENABLED";\r
+    attribute GSR of FF_114 : label is "ENABLED";\r
+    attribute GSR of FF_113 : label is "ENABLED";\r
+    attribute GSR of FF_112 : label is "ENABLED";\r
+    attribute GSR of FF_111 : label is "ENABLED";\r
+    attribute GSR of FF_110 : label is "ENABLED";\r
+    attribute GSR of FF_109 : label is "ENABLED";\r
+    attribute GSR of FF_108 : label is "ENABLED";\r
+    attribute GSR of FF_107 : label is "ENABLED";\r
+    attribute GSR of FF_106 : label is "ENABLED";\r
+    attribute GSR of FF_105 : label is "ENABLED";\r
+    attribute GSR of FF_104 : label is "ENABLED";\r
+    attribute GSR of FF_103 : label is "ENABLED";\r
+    attribute GSR of FF_102 : label is "ENABLED";\r
+    attribute GSR of FF_101 : label is "ENABLED";\r
+    attribute GSR of FF_100 : label is "ENABLED";\r
+    attribute GSR of FF_99 : label is "ENABLED";\r
+    attribute GSR of FF_98 : label is "ENABLED";\r
+    attribute GSR of FF_97 : label is "ENABLED";\r
+    attribute GSR of FF_96 : label is "ENABLED";\r
+    attribute GSR of FF_95 : label is "ENABLED";\r
+    attribute GSR of FF_94 : label is "ENABLED";\r
+    attribute GSR of FF_93 : label is "ENABLED";\r
+    attribute GSR of FF_92 : label is "ENABLED";\r
+    attribute GSR of FF_91 : label is "ENABLED";\r
+    attribute GSR of FF_90 : label is "ENABLED";\r
+    attribute GSR of FF_89 : label is "ENABLED";\r
+    attribute GSR of FF_88 : label is "ENABLED";\r
+    attribute GSR of FF_87 : label is "ENABLED";\r
+    attribute GSR of FF_86 : label is "ENABLED";\r
+    attribute GSR of FF_85 : label is "ENABLED";\r
+    attribute GSR of FF_84 : label is "ENABLED";\r
+    attribute GSR of FF_83 : label is "ENABLED";\r
+    attribute GSR of FF_82 : label is "ENABLED";\r
+    attribute GSR of FF_81 : label is "ENABLED";\r
+    attribute GSR of FF_80 : label is "ENABLED";\r
+    attribute GSR of FF_79 : label is "ENABLED";\r
+    attribute GSR of FF_78 : label is "ENABLED";\r
+    attribute GSR of FF_77 : label is "ENABLED";\r
+    attribute GSR of FF_76 : label is "ENABLED";\r
+    attribute GSR of FF_75 : label is "ENABLED";\r
+    attribute GSR of FF_74 : label is "ENABLED";\r
+    attribute GSR of FF_73 : label is "ENABLED";\r
+    attribute GSR of FF_72 : label is "ENABLED";\r
+    attribute GSR of FF_71 : label is "ENABLED";\r
+    attribute GSR of FF_70 : label is "ENABLED";\r
+    attribute GSR of FF_69 : label is "ENABLED";\r
+    attribute GSR of FF_68 : label is "ENABLED";\r
+    attribute GSR of FF_67 : label is "ENABLED";\r
+    attribute GSR of FF_66 : label is "ENABLED";\r
+    attribute GSR of FF_65 : label is "ENABLED";\r
+    attribute GSR of FF_64 : label is "ENABLED";\r
+    attribute GSR of FF_63 : label is "ENABLED";\r
+    attribute GSR of FF_62 : label is "ENABLED";\r
+    attribute GSR of FF_61 : label is "ENABLED";\r
+    attribute GSR of FF_60 : label is "ENABLED";\r
+    attribute GSR of FF_59 : label is "ENABLED";\r
+    attribute GSR of FF_58 : label is "ENABLED";\r
+    attribute GSR of FF_57 : label is "ENABLED";\r
+    attribute GSR of FF_56 : label is "ENABLED";\r
+    attribute GSR of FF_55 : label is "ENABLED";\r
+    attribute GSR of FF_54 : label is "ENABLED";\r
+    attribute GSR of FF_53 : label is "ENABLED";\r
+    attribute GSR of FF_52 : label is "ENABLED";\r
+    attribute GSR of FF_51 : label is "ENABLED";\r
+    attribute GSR of FF_50 : label is "ENABLED";\r
+    attribute GSR of FF_49 : label is "ENABLED";\r
+    attribute GSR of FF_48 : label is "ENABLED";\r
+    attribute GSR of FF_47 : label is "ENABLED";\r
+    attribute GSR of FF_46 : label is "ENABLED";\r
+    attribute GSR of FF_45 : label is "ENABLED";\r
+    attribute GSR of FF_44 : label is "ENABLED";\r
+    attribute GSR of FF_43 : label is "ENABLED";\r
+    attribute GSR of FF_42 : label is "ENABLED";\r
+    attribute GSR of FF_41 : label is "ENABLED";\r
+    attribute GSR of FF_40 : label is "ENABLED";\r
+    attribute GSR of FF_39 : label is "ENABLED";\r
+    attribute GSR of FF_38 : label is "ENABLED";\r
+    attribute GSR of FF_37 : label is "ENABLED";\r
+    attribute GSR of FF_36 : label is "ENABLED";\r
+    attribute GSR of FF_35 : label is "ENABLED";\r
+    attribute GSR of FF_34 : label is "ENABLED";\r
+    attribute GSR of FF_33 : label is "ENABLED";\r
+    attribute GSR of FF_32 : label is "ENABLED";\r
+    attribute GSR of FF_31 : label is "ENABLED";\r
+    attribute GSR of FF_30 : label is "ENABLED";\r
+    attribute GSR of FF_29 : label is "ENABLED";\r
+    attribute GSR of FF_28 : label is "ENABLED";\r
+    attribute GSR of FF_27 : label is "ENABLED";\r
+    attribute GSR of FF_26 : label is "ENABLED";\r
+    attribute GSR of FF_25 : label is "ENABLED";\r
+    attribute GSR of FF_24 : label is "ENABLED";\r
+    attribute GSR of FF_23 : label is "ENABLED";\r
+    attribute GSR of FF_22 : label is "ENABLED";\r
+    attribute GSR of FF_21 : label is "ENABLED";\r
+    attribute GSR of FF_20 : label is "ENABLED";\r
+    attribute GSR of FF_19 : label is "ENABLED";\r
+    attribute GSR of FF_18 : label is "ENABLED";\r
+    attribute GSR of FF_17 : label is "ENABLED";\r
+    attribute GSR of FF_16 : label is "ENABLED";\r
+    attribute GSR of FF_15 : label is "ENABLED";\r
+    attribute GSR of FF_14 : label is "ENABLED";\r
+    attribute GSR of FF_13 : label is "ENABLED";\r
+    attribute GSR of FF_12 : label is "ENABLED";\r
+    attribute GSR of FF_11 : label is "ENABLED";\r
+    attribute GSR of FF_10 : label is "ENABLED";\r
+    attribute GSR of FF_9 : label is "ENABLED";\r
+    attribute GSR of FF_8 : label is "ENABLED";\r
+    attribute GSR of FF_7 : label is "ENABLED";\r
+    attribute GSR of FF_6 : label is "ENABLED";\r
+    attribute GSR of FF_5 : label is "ENABLED";\r
+    attribute GSR of FF_4 : label is "ENABLED";\r
+    attribute GSR of FF_3 : label is "ENABLED";\r
+    attribute GSR of FF_2 : label is "ENABLED";\r
+    attribute GSR of FF_1 : label is "ENABLED";\r
+    attribute GSR of FF_0 : label is "ENABLED";\r
+    attribute syn_keep : boolean;\r
+\r
+begin\r
+    -- component instantiation statements\r
+    AND2_t34: AND2\r
+        port map (A=>WrEn, B=>invout_1, Z=>wren_i);\r
+\r
+    INV_1: INV\r
+        port map (A=>full_i, Z=>invout_1);\r
+\r
+    AND2_t33: AND2\r
+        port map (A=>RdEn, B=>invout_0, Z=>rden_i);\r
+\r
+    INV_0: INV\r
+        port map (A=>empty_i, Z=>invout_0);\r
+\r
+    OR2_t32: OR2\r
+        port map (A=>Reset, B=>RPReset, Z=>rRst);\r
+\r
+    XOR2_t31: XOR2\r
+        port map (A=>wcount_0, B=>wcount_1, Z=>w_gdata_0);\r
+\r
+    XOR2_t30: XOR2\r
+        port map (A=>wcount_1, B=>wcount_2, Z=>w_gdata_1);\r
+\r
+    XOR2_t29: XOR2\r
+        port map (A=>wcount_2, B=>wcount_3, Z=>w_gdata_2);\r
+\r
+    XOR2_t28: XOR2\r
+        port map (A=>wcount_3, B=>wcount_4, Z=>w_gdata_3);\r
+\r
+    XOR2_t27: XOR2\r
+        port map (A=>wcount_4, B=>wcount_5, Z=>w_gdata_4);\r
+\r
+    XOR2_t26: XOR2\r
+        port map (A=>wcount_5, B=>wcount_6, Z=>w_gdata_5);\r
+\r
+    XOR2_t25: XOR2\r
+        port map (A=>wcount_6, B=>wcount_7, Z=>w_gdata_6);\r
+\r
+    XOR2_t24: XOR2\r
+        port map (A=>wcount_7, B=>wcount_8, Z=>w_gdata_7);\r
+\r
+    XOR2_t23: XOR2\r
+        port map (A=>wcount_8, B=>wcount_9, Z=>w_gdata_8);\r
+\r
+    XOR2_t22: XOR2\r
+        port map (A=>wcount_9, B=>wcount_10, Z=>w_gdata_9);\r
+\r
+    XOR2_t21: XOR2\r
+        port map (A=>wcount_10, B=>wcount_11, Z=>w_gdata_10);\r
+\r
+    XOR2_t20: XOR2\r
+        port map (A=>wcount_11, B=>wcount_12, Z=>w_gdata_11);\r
+\r
+    XOR2_t19: XOR2\r
+        port map (A=>wcount_12, B=>wcount_13, Z=>w_gdata_12);\r
+\r
+    XOR2_t18: XOR2\r
+        port map (A=>wcount_13, B=>wcount_14, Z=>w_gdata_13);\r
+\r
+    XOR2_t17: XOR2\r
+        port map (A=>wcount_14, B=>wcount_15, Z=>w_gdata_14);\r
+\r
+    XOR2_t16: XOR2\r
+        port map (A=>wcount_15, B=>wcount_16, Z=>w_gdata_15);\r
+\r
+    XOR2_t15: XOR2\r
+        port map (A=>rcount_0, B=>rcount_1, Z=>r_gdata_0);\r
+\r
+    XOR2_t14: XOR2\r
+        port map (A=>rcount_1, B=>rcount_2, Z=>r_gdata_1);\r
+\r
+    XOR2_t13: XOR2\r
+        port map (A=>rcount_2, B=>rcount_3, Z=>r_gdata_2);\r
+\r
+    XOR2_t12: XOR2\r
+        port map (A=>rcount_3, B=>rcount_4, Z=>r_gdata_3);\r
+\r
+    XOR2_t11: XOR2\r
+        port map (A=>rcount_4, B=>rcount_5, Z=>r_gdata_4);\r
+\r
+    XOR2_t10: XOR2\r
+        port map (A=>rcount_5, B=>rcount_6, Z=>r_gdata_5);\r
+\r
+    XOR2_t9: XOR2\r
+        port map (A=>rcount_6, B=>rcount_7, Z=>r_gdata_6);\r
+\r
+    XOR2_t8: XOR2\r
+        port map (A=>rcount_7, B=>rcount_8, Z=>r_gdata_7);\r
+\r
+    XOR2_t7: XOR2\r
+        port map (A=>rcount_8, B=>rcount_9, Z=>r_gdata_8);\r
+\r
+    XOR2_t6: XOR2\r
+        port map (A=>rcount_9, B=>rcount_10, Z=>r_gdata_9);\r
+\r
+    XOR2_t5: XOR2\r
+        port map (A=>rcount_10, B=>rcount_11, Z=>r_gdata_10);\r
+\r
+    XOR2_t4: XOR2\r
+        port map (A=>rcount_11, B=>rcount_12, Z=>r_gdata_11);\r
+\r
+    XOR2_t3: XOR2\r
+        port map (A=>rcount_12, B=>rcount_13, Z=>r_gdata_12);\r
+\r
+    XOR2_t2: XOR2\r
+        port map (A=>rcount_13, B=>rcount_14, Z=>r_gdata_13);\r
+\r
+    XOR2_t1: XOR2\r
+        port map (A=>rcount_14, B=>rcount_15, Z=>r_gdata_14);\r
+\r
+    XOR2_t0: XOR2\r
+        port map (A=>rcount_15, B=>rcount_16, Z=>r_gdata_15);\r
+\r
+    LUT4_59: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r213, AD2=>w_gcount_r214, \r
+            AD1=>w_gcount_r215, AD0=>w_gcount_r216, \r
+            DO0=>w_g2b_xor_cluster_0);\r
+\r
+    LUT4_58: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r29, AD2=>w_gcount_r210, \r
+            AD1=>w_gcount_r211, AD0=>w_gcount_r212, \r
+            DO0=>w_g2b_xor_cluster_1);\r
+\r
+    LUT4_57: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r25, AD2=>w_gcount_r26, \r
+            AD1=>w_gcount_r27, AD0=>w_gcount_r28, \r
+            DO0=>w_g2b_xor_cluster_2);\r
+\r
+    LUT4_56: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r21, AD2=>w_gcount_r22, \r
+            AD1=>w_gcount_r23, AD0=>w_gcount_r24, \r
+            DO0=>w_g2b_xor_cluster_3);\r
+\r
+    LUT4_55: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r215, AD2=>w_gcount_r216, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>wcount_r15);\r
+\r
+    LUT4_54: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r214, AD2=>w_gcount_r215, \r
+            AD1=>w_gcount_r216, AD0=>scuba_vlo, DO0=>wcount_r14);\r
+\r
+    LUT4_53: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, \r
+            AD1=>w_gcount_r214, AD0=>wcount_r15, DO0=>wcount_r12);\r
+\r
+    LUT4_52: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r211, AD2=>w_gcount_r212, \r
+            AD1=>w_gcount_r213, AD0=>wcount_r14, DO0=>wcount_r11);\r
+\r
+    LUT4_51: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r210, AD2=>w_gcount_r211, \r
+            AD1=>w_gcount_r212, AD0=>w_g2b_xor_cluster_0, \r
+            DO0=>wcount_r10);\r
+\r
+    LUT4_50: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r9);\r
+\r
+    LUT4_49: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r28, AD0=>scuba_vlo, DO0=>wcount_r8);\r
+\r
+    LUT4_48: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_gcount_r27, AD0=>w_gcount_r28, DO0=>wcount_r7);\r
+\r
+    LUT4_47: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r26, AD2=>w_gcount_r27, \r
+            AD1=>w_gcount_r28, AD0=>scuba_vlo, \r
+            DO0=>w_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_46: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>wcount_r6);\r
+\r
+    LUT4_45: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>wcount_r5);\r
+\r
+    LUT4_44: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_gcount_r24, DO0=>wcount_r4);\r
+\r
+    LUT4_43: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r23, AD2=>w_gcount_r24, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>w_g2b_xor_cluster_3_1);\r
+\r
+    LUT4_42: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_1, \r
+            DO0=>wcount_r3);\r
+\r
+    LUT4_41: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r22, AD2=>w_gcount_r23, \r
+            AD1=>w_gcount_r24, AD0=>scuba_vlo, \r
+            DO0=>w_g2b_xor_cluster_3_2);\r
+\r
+    LUT4_40: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3_2, \r
+            DO0=>wcount_r2);\r
+\r
+    LUT4_39: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_g2b_xor_cluster_0, AD2=>w_g2b_xor_cluster_1, \r
+            AD1=>w_g2b_xor_cluster_2, AD0=>w_g2b_xor_cluster_3, \r
+            DO0=>wcount_r1);\r
+\r
+    LUT4_38: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r20, AD2=>w_gcount_r21, \r
+            AD1=>w_gcount_r22, AD0=>w_gcount_r23, DO0=>func_xor_inet);\r
+\r
+    LUT4_37: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r24, AD2=>w_gcount_r25, \r
+            AD1=>w_gcount_r26, AD0=>w_gcount_r27, DO0=>func_xor_inet_1);\r
+\r
+    LUT4_36: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r28, AD2=>w_gcount_r29, \r
+            AD1=>w_gcount_r210, AD0=>w_gcount_r211, DO0=>func_xor_inet_2);\r
+\r
+    LUT4_35: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r212, AD2=>w_gcount_r213, \r
+            AD1=>w_gcount_r214, AD0=>w_gcount_r215, DO0=>func_xor_inet_3);\r
+\r
+    LUT4_34: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>w_gcount_r216, AD2=>scuba_vlo, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>func_xor_inet_4);\r
+\r
+    LUT4_33: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>func_xor_inet, AD2=>func_xor_inet_1, \r
+            AD1=>func_xor_inet_2, AD0=>func_xor_inet_3, \r
+            DO0=>func_xor_inet_5);\r
+\r
+    LUT4_32: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>func_xor_inet_5, AD2=>func_xor_inet_4, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>wcount_r0);\r
+\r
+    LUT4_31: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w213, AD2=>r_gcount_w214, \r
+            AD1=>r_gcount_w215, AD0=>r_gcount_w216, \r
+            DO0=>r_g2b_xor_cluster_0);\r
+\r
+    LUT4_30: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w29, AD2=>r_gcount_w210, \r
+            AD1=>r_gcount_w211, AD0=>r_gcount_w212, \r
+            DO0=>r_g2b_xor_cluster_1);\r
+\r
+    LUT4_29: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w25, AD2=>r_gcount_w26, \r
+            AD1=>r_gcount_w27, AD0=>r_gcount_w28, \r
+            DO0=>r_g2b_xor_cluster_2);\r
+\r
+    LUT4_28: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w21, AD2=>r_gcount_w22, \r
+            AD1=>r_gcount_w23, AD0=>r_gcount_w24, \r
+            DO0=>r_g2b_xor_cluster_3);\r
+\r
+    LUT4_27: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w215, AD2=>r_gcount_w216, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>rcount_w15);\r
+\r
+    LUT4_26: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w214, AD2=>r_gcount_w215, \r
+            AD1=>r_gcount_w216, AD0=>scuba_vlo, DO0=>rcount_w14);\r
+\r
+    LUT4_25: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, \r
+            AD1=>r_gcount_w214, AD0=>rcount_w15, DO0=>rcount_w12);\r
+\r
+    LUT4_24: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w211, AD2=>r_gcount_w212, \r
+            AD1=>r_gcount_w213, AD0=>rcount_w14, DO0=>rcount_w11);\r
+\r
+    LUT4_23: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w210, AD2=>r_gcount_w211, \r
+            AD1=>r_gcount_w212, AD0=>r_g2b_xor_cluster_0, \r
+            DO0=>rcount_w10);\r
+\r
+    LUT4_22: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w9);\r
+\r
+    LUT4_21: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w28, AD0=>scuba_vlo, DO0=>rcount_w8);\r
+\r
+    LUT4_20: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_gcount_w27, AD0=>r_gcount_w28, DO0=>rcount_w7);\r
+\r
+    LUT4_19: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w26, AD2=>r_gcount_w27, \r
+            AD1=>r_gcount_w28, AD0=>scuba_vlo, \r
+            DO0=>r_g2b_xor_cluster_2_1);\r
+\r
+    LUT4_18: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2_1, AD0=>scuba_vlo, DO0=>rcount_w6);\r
+\r
+    LUT4_17: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>scuba_vlo, DO0=>rcount_w5);\r
+\r
+    LUT4_16: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_gcount_w24, DO0=>rcount_w4);\r
+\r
+    LUT4_15: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w23, AD2=>r_gcount_w24, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>r_g2b_xor_cluster_3_1);\r
+\r
+    LUT4_14: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_1, \r
+            DO0=>rcount_w3);\r
+\r
+    LUT4_13: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w22, AD2=>r_gcount_w23, \r
+            AD1=>r_gcount_w24, AD0=>scuba_vlo, \r
+            DO0=>r_g2b_xor_cluster_3_2);\r
+\r
+    LUT4_12: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3_2, \r
+            DO0=>rcount_w2);\r
+\r
+    LUT4_11: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_g2b_xor_cluster_0, AD2=>r_g2b_xor_cluster_1, \r
+            AD1=>r_g2b_xor_cluster_2, AD0=>r_g2b_xor_cluster_3, \r
+            DO0=>rcount_w1);\r
+\r
+    LUT4_10: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w20, AD2=>r_gcount_w21, \r
+            AD1=>r_gcount_w22, AD0=>r_gcount_w23, DO0=>func_xor_inet_6);\r
+\r
+    LUT4_9: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w24, AD2=>r_gcount_w25, \r
+            AD1=>r_gcount_w26, AD0=>r_gcount_w27, DO0=>func_xor_inet_7);\r
+\r
+    LUT4_8: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w28, AD2=>r_gcount_w29, \r
+            AD1=>r_gcount_w210, AD0=>r_gcount_w211, DO0=>func_xor_inet_8);\r
+\r
+    LUT4_7: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w212, AD2=>r_gcount_w213, \r
+            AD1=>r_gcount_w214, AD0=>r_gcount_w215, DO0=>func_xor_inet_9);\r
+\r
+    LUT4_6: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>r_gcount_w216, AD2=>scuba_vlo, AD1=>scuba_vlo, \r
+            AD0=>scuba_vlo, DO0=>func_xor_inet_10);\r
+\r
+    LUT4_5: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>func_xor_inet_6, AD2=>func_xor_inet_7, \r
+            AD1=>func_xor_inet_8, AD0=>func_xor_inet_9, \r
+            DO0=>func_xor_inet_11);\r
+\r
+    LUT4_4: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x6996")\r
+        -- synopsys translate_on\r
+        port map (AD3=>func_xor_inet_11, AD2=>func_xor_inet_10, \r
+            AD1=>scuba_vlo, AD0=>scuba_vlo, DO0=>rcount_w0);\r
+\r
+    LUT4_3: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0410")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_set);\r
+\r
+    LUT4_2: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x1004")\r
+        -- synopsys translate_on\r
+        port map (AD3=>rptr_16, AD2=>rcount_16, AD1=>w_gcount_r216, \r
+            AD0=>scuba_vlo, DO0=>empty_cmp_clr);\r
+\r
+    LUT4_1: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x0140")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_set);\r
+\r
+    LUT4_0: ROM16X1\r
+        -- synopsys translate_off\r
+        generic map (initval=> "0x4001")\r
+        -- synopsys translate_on\r
+        port map (AD3=>wptr_16, AD2=>wcount_16, AD1=>r_gcount_w216, \r
+            AD0=>scuba_vlo, DO0=>full_cmp_clr);\r
+\r
+    pdp_ram_0_0_31: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_0, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_1_30: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_1, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_2_29: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_2, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_3_28: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_3, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_4_27: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_4, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_5_26: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_5, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_6_25: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_6, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_0_7_24: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_0_7, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_0_23: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_0, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_1_22: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_1, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_2_21: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_2, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_3_20: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_3, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_4_19: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_4, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_5_18: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_5, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_6_17: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_6, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_1_7_16: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "001", CSDECODE_A=> "001", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_1_7, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_0_15: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_0, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_1_14: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_1, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_2_13: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_2, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_3_12: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_3, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_4_11: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_4, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_5_10: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_5, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_6_9: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_6, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_2_7_8: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "010", CSDECODE_A=> "010", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_2_7, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_0_7: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(0), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_0, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_1_6: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(1), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_1, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_2_5: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(2), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_2, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_3_4: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(3), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_3, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_4_3: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(4), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_4, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_5_2: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(5), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_5, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_6_1: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(6), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_6, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    pdp_ram_3_7_0: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (CSDECODE_B=> "011", CSDECODE_A=> "011", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "ASYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  1, \r
+        DATA_WIDTH_A=>  1)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>Data(7), \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>wptr_0, ADA1=>wptr_1, ADA2=>wptr_2, ADA3=>wptr_3, \r
+            ADA4=>wptr_4, ADA5=>wptr_5, ADA6=>wptr_6, ADA7=>wptr_7, \r
+            ADA8=>wptr_8, ADA9=>wptr_9, ADA10=>wptr_10, ADA11=>wptr_11, \r
+            ADA12=>wptr_12, ADA13=>wptr_13, CEA=>wren_i, CLKA=>WrClock, \r
+            WEA=>scuba_vhi, CSA0=>wptr_14, CSA1=>wptr_15, \r
+            CSA2=>scuba_vlo, RSTA=>Reset, DIB0=>scuba_vlo, \r
+            DIB1=>scuba_vlo, DIB2=>scuba_vlo, DIB3=>scuba_vlo, \r
+            DIB4=>scuba_vlo, DIB5=>scuba_vlo, DIB6=>scuba_vlo, \r
+            DIB7=>scuba_vlo, DIB8=>scuba_vlo, DIB9=>scuba_vlo, \r
+            DIB10=>scuba_vlo, DIB11=>scuba_vlo, DIB12=>scuba_vlo, \r
+            DIB13=>scuba_vlo, DIB14=>scuba_vlo, DIB15=>scuba_vlo, \r
+            DIB16=>scuba_vlo, DIB17=>scuba_vlo, ADB0=>rptr_0, \r
+            ADB1=>rptr_1, ADB2=>rptr_2, ADB3=>rptr_3, ADB4=>rptr_4, \r
+            ADB5=>rptr_5, ADB6=>rptr_6, ADB7=>rptr_7, ADB8=>rptr_8, \r
+            ADB9=>rptr_9, ADB10=>rptr_10, ADB11=>rptr_11, ADB12=>rptr_12, \r
+            ADB13=>rptr_13, CEB=>rden_i, CLKB=>RdClock, WEB=>scuba_vlo, \r
+            CSB0=>rptr_14, CSB1=>rptr_15, CSB2=>scuba_vlo, RSTB=>Reset, \r
+            DOA0=>open, DOA1=>open, DOA2=>open, DOA3=>open, DOA4=>open, \r
+            DOA5=>open, DOA6=>open, DOA7=>open, DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>mdout1_3_7, DOB1=>open, DOB2=>open, DOB3=>open, \r
+            DOB4=>open, DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, \r
+            DOB9=>open, DOB10=>open, DOB11=>open, DOB12=>open, \r
+            DOB13=>open, DOB14=>open, DOB15=>open, DOB16=>open, \r
+            DOB17=>open);\r
+\r
+    FF_173: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_0, SP=>wren_i, CK=>WrClock, PD=>Reset, \r
+            Q=>wcount_0);\r
+\r
+    FF_172: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_1);\r
+\r
+    FF_171: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_2);\r
+\r
+    FF_170: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_3);\r
+\r
+    FF_169: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_4);\r
+\r
+    FF_168: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_5);\r
+\r
+    FF_167: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_6);\r
+\r
+    FF_166: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_7);\r
+\r
+    FF_165: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_8);\r
+\r
+    FF_164: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_9);\r
+\r
+    FF_163: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_10);\r
+\r
+    FF_162: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_11);\r
+\r
+    FF_161: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_12);\r
+\r
+    FF_160: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_13);\r
+\r
+    FF_159: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_14);\r
+\r
+    FF_158: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_15);\r
+\r
+    FF_157: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>iwcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wcount_16);\r
+\r
+    FF_156: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_0);\r
+\r
+    FF_155: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_1);\r
+\r
+    FF_154: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_2);\r
+\r
+    FF_153: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_3);\r
+\r
+    FF_152: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_4);\r
+\r
+    FF_151: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_5);\r
+\r
+    FF_150: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_6);\r
+\r
+    FF_149: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_7);\r
+\r
+    FF_148: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_8);\r
+\r
+    FF_147: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_9);\r
+\r
+    FF_146: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_10);\r
+\r
+    FF_145: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_11);\r
+\r
+    FF_144: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_12);\r
+\r
+    FF_143: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_13, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_13);\r
+\r
+    FF_142: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_14, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_14);\r
+\r
+    FF_141: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gdata_15, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_15);\r
+\r
+    FF_140: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>w_gcount_16);\r
+\r
+    FF_139: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_0, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_0);\r
+\r
+    FF_138: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_1, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_1);\r
+\r
+    FF_137: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_2, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_2);\r
+\r
+    FF_136: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_3, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_3);\r
+\r
+    FF_135: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_4, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_4);\r
+\r
+    FF_134: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_5, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_5);\r
+\r
+    FF_133: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_6, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_6);\r
+\r
+    FF_132: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_7, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_7);\r
+\r
+    FF_131: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_8, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_8);\r
+\r
+    FF_130: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_9, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_9);\r
+\r
+    FF_129: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_10, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_10);\r
+\r
+    FF_128: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_11, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_11);\r
+\r
+    FF_127: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_12, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_12);\r
+\r
+    FF_126: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_13, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_13);\r
+\r
+    FF_125: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_14, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_14);\r
+\r
+    FF_124: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_15, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_15);\r
+\r
+    FF_123: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>wcount_16, SP=>wren_i, CK=>WrClock, CD=>Reset, \r
+            Q=>wptr_16);\r
+\r
+    FF_122: FD1P3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_0, SP=>rden_i, CK=>RdClock, PD=>rRst, \r
+            Q=>rcount_0);\r
+\r
+    FF_121: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_1);\r
+\r
+    FF_120: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_2);\r
+\r
+    FF_119: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_3);\r
+\r
+    FF_118: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_4);\r
+\r
+    FF_117: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_5);\r
+\r
+    FF_116: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_6);\r
+\r
+    FF_115: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_7);\r
+\r
+    FF_114: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_8);\r
+\r
+    FF_113: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_9);\r
+\r
+    FF_112: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_10);\r
+\r
+    FF_111: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_11);\r
+\r
+    FF_110: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_12);\r
+\r
+    FF_109: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_13);\r
+\r
+    FF_108: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_14);\r
+\r
+    FF_107: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_15);\r
+\r
+    FF_106: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>ircount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rcount_16);\r
+\r
+    FF_105: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_0);\r
+\r
+    FF_104: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_1);\r
+\r
+    FF_103: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_2);\r
+\r
+    FF_102: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_3);\r
+\r
+    FF_101: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_4);\r
+\r
+    FF_100: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_5);\r
+\r
+    FF_99: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_6);\r
+\r
+    FF_98: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_7);\r
+\r
+    FF_97: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_8);\r
+\r
+    FF_96: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_9);\r
+\r
+    FF_95: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_10);\r
+\r
+    FF_94: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_11);\r
+\r
+    FF_93: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_12);\r
+\r
+    FF_92: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_13, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_13);\r
+\r
+    FF_91: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_14, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_14);\r
+\r
+    FF_90: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gdata_15, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_15);\r
+\r
+    FF_89: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>r_gcount_16);\r
+\r
+    FF_88: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_0, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_0);\r
+\r
+    FF_87: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_1, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_1);\r
+\r
+    FF_86: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_2, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_2);\r
+\r
+    FF_85: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_3, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_3);\r
+\r
+    FF_84: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_4, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_4);\r
+\r
+    FF_83: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_5, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_5);\r
+\r
+    FF_82: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_6, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_6);\r
+\r
+    FF_81: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_7, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_7);\r
+\r
+    FF_80: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_8, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_8);\r
+\r
+    FF_79: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_9, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_9);\r
+\r
+    FF_78: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_10, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_10);\r
+\r
+    FF_77: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_11, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_11);\r
+\r
+    FF_76: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_12, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_12);\r
+\r
+    FF_75: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_13, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_13);\r
+\r
+    FF_74: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_14, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_14);\r
+\r
+    FF_73: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_15, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_15);\r
+\r
+    FF_72: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rcount_16, SP=>rden_i, CK=>RdClock, CD=>rRst, \r
+            Q=>rptr_16);\r
+\r
+    FF_71: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rptr_14, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, \r
+            Q=>rptr_14_ff);\r
+\r
+    FF_70: FD1P3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>rptr_15, SP=>rden_i, CK=>RdClock, CD=>scuba_vlo, \r
+            Q=>rptr_15_ff);\r
+\r
+    FF_69: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_0, CK=>RdClock, CD=>Reset, Q=>w_gcount_r0);\r
+\r
+    FF_68: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_1, CK=>RdClock, CD=>Reset, Q=>w_gcount_r1);\r
+\r
+    FF_67: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_2, CK=>RdClock, CD=>Reset, Q=>w_gcount_r2);\r
+\r
+    FF_66: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_3, CK=>RdClock, CD=>Reset, Q=>w_gcount_r3);\r
+\r
+    FF_65: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_4, CK=>RdClock, CD=>Reset, Q=>w_gcount_r4);\r
+\r
+    FF_64: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_5, CK=>RdClock, CD=>Reset, Q=>w_gcount_r5);\r
+\r
+    FF_63: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_6, CK=>RdClock, CD=>Reset, Q=>w_gcount_r6);\r
+\r
+    FF_62: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_7, CK=>RdClock, CD=>Reset, Q=>w_gcount_r7);\r
+\r
+    FF_61: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_8, CK=>RdClock, CD=>Reset, Q=>w_gcount_r8);\r
+\r
+    FF_60: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_9, CK=>RdClock, CD=>Reset, Q=>w_gcount_r9);\r
+\r
+    FF_59: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r10);\r
+\r
+    FF_58: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r11);\r
+\r
+    FF_57: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_12, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r12);\r
+\r
+    FF_56: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_13, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r13);\r
+\r
+    FF_55: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_14, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r14);\r
+\r
+    FF_54: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_15, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r15);\r
+\r
+    FF_53: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_16, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r16);\r
+\r
+    FF_52: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w0);\r
+\r
+    FF_51: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w1);\r
+\r
+    FF_50: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w2);\r
+\r
+    FF_49: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w3);\r
+\r
+    FF_48: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w4);\r
+\r
+    FF_47: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w5);\r
+\r
+    FF_46: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w6);\r
+\r
+    FF_45: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w7);\r
+\r
+    FF_44: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w8);\r
+\r
+    FF_43: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w9);\r
+\r
+    FF_42: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_10, CK=>WrClock, CD=>rRst, Q=>r_gcount_w10);\r
+\r
+    FF_41: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_11, CK=>WrClock, CD=>rRst, Q=>r_gcount_w11);\r
+\r
+    FF_40: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_12, CK=>WrClock, CD=>rRst, Q=>r_gcount_w12);\r
+\r
+    FF_39: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_13, CK=>WrClock, CD=>rRst, Q=>r_gcount_w13);\r
+\r
+    FF_38: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_14, CK=>WrClock, CD=>rRst, Q=>r_gcount_w14);\r
+\r
+    FF_37: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_15, CK=>WrClock, CD=>rRst, Q=>r_gcount_w15);\r
+\r
+    FF_36: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_16, CK=>WrClock, CD=>rRst, Q=>r_gcount_w16);\r
+\r
+    FF_35: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r0, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r20);\r
+\r
+    FF_34: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r1, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r21);\r
+\r
+    FF_33: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r2, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r22);\r
+\r
+    FF_32: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r3, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r23);\r
+\r
+    FF_31: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r4, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r24);\r
+\r
+    FF_30: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r5, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r25);\r
+\r
+    FF_29: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r6, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r26);\r
+\r
+    FF_28: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r7, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r27);\r
+\r
+    FF_27: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r8, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r28);\r
+\r
+    FF_26: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r9, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r29);\r
+\r
+    FF_25: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r10, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r210);\r
+\r
+    FF_24: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r11, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r211);\r
+\r
+    FF_23: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r12, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r212);\r
+\r
+    FF_22: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r13, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r213);\r
+\r
+    FF_21: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r14, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r214);\r
+\r
+    FF_20: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r15, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r215);\r
+\r
+    FF_19: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>w_gcount_r16, CK=>RdClock, CD=>Reset, \r
+            Q=>w_gcount_r216);\r
+\r
+    FF_18: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w0, CK=>WrClock, CD=>rRst, Q=>r_gcount_w20);\r
+\r
+    FF_17: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w1, CK=>WrClock, CD=>rRst, Q=>r_gcount_w21);\r
+\r
+    FF_16: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w2, CK=>WrClock, CD=>rRst, Q=>r_gcount_w22);\r
+\r
+    FF_15: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w3, CK=>WrClock, CD=>rRst, Q=>r_gcount_w23);\r
+\r
+    FF_14: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w4, CK=>WrClock, CD=>rRst, Q=>r_gcount_w24);\r
+\r
+    FF_13: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w5, CK=>WrClock, CD=>rRst, Q=>r_gcount_w25);\r
+\r
+    FF_12: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w6, CK=>WrClock, CD=>rRst, Q=>r_gcount_w26);\r
+\r
+    FF_11: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w7, CK=>WrClock, CD=>rRst, Q=>r_gcount_w27);\r
+\r
+    FF_10: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w8, CK=>WrClock, CD=>rRst, Q=>r_gcount_w28);\r
+\r
+    FF_9: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w9, CK=>WrClock, CD=>rRst, Q=>r_gcount_w29);\r
+\r
+    FF_8: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w10, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w210);\r
+\r
+    FF_7: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w11, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w211);\r
+\r
+    FF_6: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w12, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w212);\r
+\r
+    FF_5: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w13, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w213);\r
+\r
+    FF_4: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w14, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w214);\r
+\r
+    FF_3: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w15, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w215);\r
+\r
+    FF_2: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>r_gcount_w16, CK=>WrClock, CD=>rRst, \r
+            Q=>r_gcount_w216);\r
+\r
+    FF_1: FD1S3BX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>empty_d, CK=>RdClock, PD=>rRst, Q=>empty_i);\r
+\r
+    FF_0: FD1S3DX\r
+        -- synopsys translate_off\r
+        generic map (GSR=> "ENABLED")\r
+        -- synopsys translate_on\r
+        port map (D=>full_d, CK=>WrClock, CD=>Reset, Q=>full_i);\r
+\r
+    w_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>w_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    w_gctr_0: CU2\r
+        port map (CI=>w_gctr_ci, PC0=>wcount_0, PC1=>wcount_1, CO=>co0, \r
+            NC0=>iwcount_0, NC1=>iwcount_1);\r
+\r
+    w_gctr_1: CU2\r
+        port map (CI=>co0, PC0=>wcount_2, PC1=>wcount_3, CO=>co1, \r
+            NC0=>iwcount_2, NC1=>iwcount_3);\r
+\r
+    w_gctr_2: CU2\r
+        port map (CI=>co1, PC0=>wcount_4, PC1=>wcount_5, CO=>co2, \r
+            NC0=>iwcount_4, NC1=>iwcount_5);\r
+\r
+    w_gctr_3: CU2\r
+        port map (CI=>co2, PC0=>wcount_6, PC1=>wcount_7, CO=>co3, \r
+            NC0=>iwcount_6, NC1=>iwcount_7);\r
+\r
+    w_gctr_4: CU2\r
+        port map (CI=>co3, PC0=>wcount_8, PC1=>wcount_9, CO=>co4, \r
+            NC0=>iwcount_8, NC1=>iwcount_9);\r
+\r
+    w_gctr_5: CU2\r
+        port map (CI=>co4, PC0=>wcount_10, PC1=>wcount_11, CO=>co5, \r
+            NC0=>iwcount_10, NC1=>iwcount_11);\r
+\r
+    w_gctr_6: CU2\r
+        port map (CI=>co5, PC0=>wcount_12, PC1=>wcount_13, CO=>co6, \r
+            NC0=>iwcount_12, NC1=>iwcount_13);\r
+\r
+    w_gctr_7: CU2\r
+        port map (CI=>co6, PC0=>wcount_14, PC1=>wcount_15, CO=>co7, \r
+            NC0=>iwcount_14, NC1=>iwcount_15);\r
+\r
+    w_gctr_8: CU2\r
+        port map (CI=>co7, PC0=>wcount_16, PC1=>scuba_vlo, CO=>co8, \r
+            NC0=>iwcount_16, NC1=>open);\r
+\r
+    scuba_vhi_inst: VHI\r
+        port map (Z=>scuba_vhi);\r
+\r
+    r_gctr_cia: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vhi, B0=>scuba_vlo, \r
+            B1=>scuba_vhi, CI=>scuba_vlo, COUT=>r_gctr_ci, S0=>open, \r
+            S1=>open);\r
+\r
+    r_gctr_0: CU2\r
+        port map (CI=>r_gctr_ci, PC0=>rcount_0, PC1=>rcount_1, CO=>co0_1, \r
+            NC0=>ircount_0, NC1=>ircount_1);\r
+\r
+    r_gctr_1: CU2\r
+        port map (CI=>co0_1, PC0=>rcount_2, PC1=>rcount_3, CO=>co1_1, \r
+            NC0=>ircount_2, NC1=>ircount_3);\r
+\r
+    r_gctr_2: CU2\r
+        port map (CI=>co1_1, PC0=>rcount_4, PC1=>rcount_5, CO=>co2_1, \r
+            NC0=>ircount_4, NC1=>ircount_5);\r
+\r
+    r_gctr_3: CU2\r
+        port map (CI=>co2_1, PC0=>rcount_6, PC1=>rcount_7, CO=>co3_1, \r
+            NC0=>ircount_6, NC1=>ircount_7);\r
+\r
+    r_gctr_4: CU2\r
+        port map (CI=>co3_1, PC0=>rcount_8, PC1=>rcount_9, CO=>co4_1, \r
+            NC0=>ircount_8, NC1=>ircount_9);\r
+\r
+    r_gctr_5: CU2\r
+        port map (CI=>co4_1, PC0=>rcount_10, PC1=>rcount_11, CO=>co5_1, \r
+            NC0=>ircount_10, NC1=>ircount_11);\r
+\r
+    r_gctr_6: CU2\r
+        port map (CI=>co5_1, PC0=>rcount_12, PC1=>rcount_13, CO=>co6_1, \r
+            NC0=>ircount_12, NC1=>ircount_13);\r
+\r
+    r_gctr_7: CU2\r
+        port map (CI=>co6_1, PC0=>rcount_14, PC1=>rcount_15, CO=>co7_1, \r
+            NC0=>ircount_14, NC1=>ircount_15);\r
+\r
+    r_gctr_8: CU2\r
+        port map (CI=>co7_1, PC0=>rcount_16, PC1=>scuba_vlo, CO=>co8_1, \r
+            NC0=>ircount_16, NC1=>open);\r
+\r
+    mux_7: MUX41\r
+        port map (D0=>mdout1_0_0, D1=>mdout1_1_0, D2=>mdout1_2_0, \r
+            D3=>mdout1_3_0, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(0));\r
+\r
+    mux_6: MUX41\r
+        port map (D0=>mdout1_0_1, D1=>mdout1_1_1, D2=>mdout1_2_1, \r
+            D3=>mdout1_3_1, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(1));\r
+\r
+    mux_5: MUX41\r
+        port map (D0=>mdout1_0_2, D1=>mdout1_1_2, D2=>mdout1_2_2, \r
+            D3=>mdout1_3_2, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(2));\r
+\r
+    mux_4: MUX41\r
+        port map (D0=>mdout1_0_3, D1=>mdout1_1_3, D2=>mdout1_2_3, \r
+            D3=>mdout1_3_3, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(3));\r
+\r
+    mux_3: MUX41\r
+        port map (D0=>mdout1_0_4, D1=>mdout1_1_4, D2=>mdout1_2_4, \r
+            D3=>mdout1_3_4, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(4));\r
+\r
+    mux_2: MUX41\r
+        port map (D0=>mdout1_0_5, D1=>mdout1_1_5, D2=>mdout1_2_5, \r
+            D3=>mdout1_3_5, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(5));\r
+\r
+    mux_1: MUX41\r
+        port map (D0=>mdout1_0_6, D1=>mdout1_1_6, D2=>mdout1_2_6, \r
+            D3=>mdout1_3_6, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(6));\r
+\r
+    mux_0: MUX41\r
+        port map (D0=>mdout1_0_7, D1=>mdout1_1_7, D2=>mdout1_2_7, \r
+            D3=>mdout1_3_7, SD1=>rptr_14_ff, SD2=>rptr_15_ff, Z=>Q(7));\r
+\r
+    empty_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>rden_i, B0=>scuba_vlo, B1=>rden_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci, S0=>open, S1=>open);\r
+\r
+    empty_cmp_0: AGEB2\r
+        port map (A0=>rcount_0, A1=>rcount_1, B0=>wcount_r0, \r
+            B1=>wcount_r1, CI=>cmp_ci, GE=>co0_2);\r
+\r
+    empty_cmp_1: AGEB2\r
+        port map (A0=>rcount_2, A1=>rcount_3, B0=>wcount_r2, \r
+            B1=>wcount_r3, CI=>co0_2, GE=>co1_2);\r
+\r
+    empty_cmp_2: AGEB2\r
+        port map (A0=>rcount_4, A1=>rcount_5, B0=>wcount_r4, \r
+            B1=>wcount_r5, CI=>co1_2, GE=>co2_2);\r
+\r
+    empty_cmp_3: AGEB2\r
+        port map (A0=>rcount_6, A1=>rcount_7, B0=>wcount_r6, \r
+            B1=>wcount_r7, CI=>co2_2, GE=>co3_2);\r
+\r
+    empty_cmp_4: AGEB2\r
+        port map (A0=>rcount_8, A1=>rcount_9, B0=>wcount_r8, \r
+            B1=>wcount_r9, CI=>co3_2, GE=>co4_2);\r
+\r
+    empty_cmp_5: AGEB2\r
+        port map (A0=>rcount_10, A1=>rcount_11, B0=>wcount_r10, \r
+            B1=>wcount_r11, CI=>co4_2, GE=>co5_2);\r
+\r
+    empty_cmp_6: AGEB2\r
+        port map (A0=>rcount_12, A1=>rcount_13, B0=>wcount_r12, \r
+            B1=>w_g2b_xor_cluster_0, CI=>co5_2, GE=>co6_2);\r
+\r
+    empty_cmp_7: AGEB2\r
+        port map (A0=>rcount_14, A1=>rcount_15, B0=>wcount_r14, \r
+            B1=>wcount_r15, CI=>co6_2, GE=>co7_2);\r
+\r
+    empty_cmp_8: AGEB2\r
+        port map (A0=>empty_cmp_set, A1=>scuba_vlo, B0=>empty_cmp_clr, \r
+            B1=>scuba_vlo, CI=>co7_2, GE=>empty_d_c);\r
+\r
+    a0: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>empty_d_c, COUT=>open, S0=>empty_d, \r
+            S1=>open);\r
+\r
+    full_cmp_ci_a: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>wren_i, B0=>scuba_vlo, B1=>wren_i, \r
+            CI=>scuba_vlo, COUT=>cmp_ci_1, S0=>open, S1=>open);\r
+\r
+    full_cmp_0: AGEB2\r
+        port map (A0=>wcount_0, A1=>wcount_1, B0=>rcount_w0, \r
+            B1=>rcount_w1, CI=>cmp_ci_1, GE=>co0_3);\r
+\r
+    full_cmp_1: AGEB2\r
+        port map (A0=>wcount_2, A1=>wcount_3, B0=>rcount_w2, \r
+            B1=>rcount_w3, CI=>co0_3, GE=>co1_3);\r
+\r
+    full_cmp_2: AGEB2\r
+        port map (A0=>wcount_4, A1=>wcount_5, B0=>rcount_w4, \r
+            B1=>rcount_w5, CI=>co1_3, GE=>co2_3);\r
+\r
+    full_cmp_3: AGEB2\r
+        port map (A0=>wcount_6, A1=>wcount_7, B0=>rcount_w6, \r
+            B1=>rcount_w7, CI=>co2_3, GE=>co3_3);\r
+\r
+    full_cmp_4: AGEB2\r
+        port map (A0=>wcount_8, A1=>wcount_9, B0=>rcount_w8, \r
+            B1=>rcount_w9, CI=>co3_3, GE=>co4_3);\r
+\r
+    full_cmp_5: AGEB2\r
+        port map (A0=>wcount_10, A1=>wcount_11, B0=>rcount_w10, \r
+            B1=>rcount_w11, CI=>co4_3, GE=>co5_3);\r
+\r
+    full_cmp_6: AGEB2\r
+        port map (A0=>wcount_12, A1=>wcount_13, B0=>rcount_w12, \r
+            B1=>r_g2b_xor_cluster_0, CI=>co5_3, GE=>co6_3);\r
+\r
+    full_cmp_7: AGEB2\r
+        port map (A0=>wcount_14, A1=>wcount_15, B0=>rcount_w14, \r
+            B1=>rcount_w15, CI=>co6_3, GE=>co7_3);\r
+\r
+    full_cmp_8: AGEB2\r
+        port map (A0=>full_cmp_set, A1=>scuba_vlo, B0=>full_cmp_clr, \r
+            B1=>scuba_vlo, CI=>co7_3, GE=>full_d_c);\r
+\r
+    scuba_vlo_inst: VLO\r
+        port map (Z=>scuba_vlo);\r
+\r
+    a1: FADD2B\r
+        port map (A0=>scuba_vlo, A1=>scuba_vlo, B0=>scuba_vlo, \r
+            B1=>scuba_vlo, CI=>full_d_c, COUT=>open, S0=>full_d, \r
+            S1=>open);\r
+\r
+    Empty <= empty_i;\r
+    Full <= full_i;\r
+end Structure;\r
+\r
+-- synopsys translate_off\r
+library ecp2m;\r
+configuration Structure_CON of fifo_64kx8 is\r
+    for Structure\r
+        for all:AGEB2 use entity ecp2m.AGEB2(V); end for;\r
+        for all:AND2 use entity ecp2m.AND2(V); end for;\r
+        for all:CU2 use entity ecp2m.CU2(V); end for;\r
+        for all:FADD2B use entity ecp2m.FADD2B(V); end for;\r
+        for all:FD1P3BX use entity ecp2m.FD1P3BX(V); end for;\r
+        for all:FD1P3DX use entity ecp2m.FD1P3DX(V); end for;\r
+        for all:FD1S3BX use entity ecp2m.FD1S3BX(V); end for;\r
+        for all:FD1S3DX use entity ecp2m.FD1S3DX(V); end for;\r
+        for all:INV use entity ecp2m.INV(V); end for;\r
+        for all:MUX41 use entity ecp2m.MUX41(V); end for;\r
+        for all:OR2 use entity ecp2m.OR2(V); end for;\r
+        for all:ROM16X1 use entity ecp2m.ROM16X1(V); end for;\r
+        for all:VHI use entity ecp2m.VHI(V); end for;\r
+        for all:VLO use entity ecp2m.VLO(V); end for;\r
+        for all:XOR2 use entity ecp2m.XOR2(V); end for;\r
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;\r
+    end for;\r
+end Structure_CON;\r
+\r
+-- synopsys translate_on\r
diff --git a/gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd b/gbe_ecp2m/ipcores/fifo_64kx8_tmpl.vhd
new file mode 100755 (executable)
index 0000000..c0c7959
--- /dev/null
@@ -0,0 +1,18 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.2\r
+-- Sat Dec 26 00:12:05 2009\r
+\r
+-- parameterized module component declaration\r
+component fifo_64kx8\r
+    port (Data: in  std_logic_vector(7 downto 0); WrClock: in  std_logic; \r
+        RdClock: in  std_logic; WrEn: in  std_logic; RdEn: in  std_logic; \r
+        Reset: in  std_logic; RPReset: in  std_logic; \r
+        Q: out  std_logic_vector(7 downto 0); Empty: out  std_logic; \r
+        Full: out  std_logic);\r
+end component;\r
+\r
+-- parameterized module component instance\r
+__ : fifo_64kx8\r
+    port map (Data(7 downto 0)=>__, WrClock=>__, RdClock=>__, WrEn=>__, \r
+        RdEn=>__, Reset=>__, RPReset=>__, Q(7 downto 0)=>__, Empty=>__, \r
+        Full=>__);\r
diff --git a/gbe_ecp2m/ipcores/ip_mem.lpc b/gbe_ecp2m/ipcores/ip_mem.lpc
new file mode 100755 (executable)
index 0000000..8383be6
--- /dev/null
@@ -0,0 +1,57 @@
+[Device]
+Family=latticeecp2m
+PartType=LFE2M100E
+PartName=LFE2M100E-5F900C
+SpeedGrade=-5
+Package=FPBGA900
+OperatingCondition=COM
+Status=P
+
+[IP]
+VendorName=Lattice Semiconductor Corporation
+CoreType=LPM
+CoreStatus=Demo
+CoreName=RAM_DP_TRUE
+CoreRevision=7.1
+ModuleName=ip_mem
+SourceFormat=Schematic/VHDL
+ParameterFileVersion=1.0
+Date=03/29/2010
+Time=21:52:48
+
+[Parameters]
+Verilog=0
+VHDL=1
+EDIF=1
+Destination=Synplicity
+Expression=BusA(0 to 7)
+Order=Big Endian [MSB:LSB]
+IO=0
+AAddress=256
+BAddress=256
+AData=32
+BData=32
+enByte=0
+ByteSize=9
+AadPipeline=0
+BadPipeline=0
+AinPipeline=0
+BinPipeline=0
+AoutPipeline=0
+BoutPipeline=1
+AMOR=0
+BMOR=0
+AInData=Registered
+BInData=Registered
+AAdControl=Registered
+BAdControl=Registered
+MemFile=/home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem
+MemFormat=orca
+Reset=Sync
+GSR=Enabled
+WriteA=Normal
+WriteB=Normal
+Pad=0
+EnECC=0
+Optimization=Speed
+Pipeline=0
diff --git a/gbe_ecp2m/ipcores/ip_mem.mem b/gbe_ecp2m/ipcores/ip_mem.mem
new file mode 100755 (executable)
index 0000000..836ca91
--- /dev/null
@@ -0,0 +1,277 @@
+#Format=Address-Hex\r
+#Depth=256\r
+#DataWidth=32\r
+#AddrRadix=3\r
+#DataRadix=3\r
+\r
+00: 214397e9\r
+01: 0000001b\r
+02: c0a80002\r
+03: 0000c350\r
+04: 023bdc00\r
+05: 00000013\r
+06: c0a80005\r
+07: 0000c350\r
+08: 00000578\r
+09: 00000000\r
+0a: 00000000\r
+0b: 00000000\r
+0c: 00000000\r
+0d: 00000000\r
+0e: 00000000\r
+0f: 00000000\r
+\r
+10: 214397e9\r
+11: 0000001b\r
+12: c0a80002\r
+13: 0000c351\r
+14: 023bdc01\r
+15: 00000013\r
+16: c0a80006\r
+17: 0000c350\r
+18: 00000578\r
+19: 00000000\r
+1a: 00000000\r
+1b: 00000000\r
+1c: 00000000\r
+1d: 00000000\r
+1e: 00000000\r
+1f: 00000000\r
+\r
+20: 214397e9\r
+21: 0000001b\r
+22: c0a80002\r
+23: 0000c352\r
+24: 023bdc02\r
+25: 00000013\r
+26: c0a80007\r
+27: 0000c350\r
+28: 00000578\r
+29: 00000000\r
+2a: 00000000\r
+2b: 00000000\r
+2c: 00000000\r
+2d: 00000000\r
+2e: 00000000\r
+2f: 00000000\r
+\r
+30: 214397e9\r
+31: 0000001b\r
+32: c0a80002\r
+33: 0000c353\r
+34: 023bdc03\r
+35: 00000013\r
+36: c0a80008\r
+37: 0000c350\r
+38: 00000578\r
+39: 00000000\r
+3a: 00000000\r
+3b: 00000000\r
+3c: 00000000\r
+3d: 00000000\r
+3e: 00000000\r
+3f: 00000000\r
+\r
+40: 00000000\r
+41: 00000000\r
+42: 00000000\r
+43: 00000000\r
+44: 00000000\r
+45: 00000000\r
+46: 00000000\r
+47: 00000000\r
+48: 00000578\r
+49: 00000000\r
+4a: 00000000\r
+4b: 00000000\r
+4c: 00000000\r
+4d: 00000000\r
+4e: 00000000\r
+4f: 00000000\r
+\r
+50: 00000000\r
+51: 00000000\r
+52: 00000000\r
+53: 00000000\r
+54: 00000000\r
+55: 00000000\r
+56: 00000000\r
+57: 00000000\r
+58: 00000578\r
+59: 00000000\r
+5a: 00000000\r
+5b: 00000000\r
+5c: 00000000\r
+5d: 00000000\r
+5e: 00000000\r
+5f: 00000000\r
+\r
+60: 00000000\r
+61: 00000000\r
+62: 00000000\r
+63: 00000000\r
+64: 00000000\r
+65: 00000000\r
+66: 00000000\r
+67: 00000000\r
+68: 00000578\r
+69: 00000000\r
+6a: 00000000\r
+6b: 00000000\r
+6c: 00000000\r
+6d: 00000000\r
+6e: 00000000\r
+6f: 00000000\r
+\r
+70: 00000000\r
+71: 00000000\r
+72: 00000000\r
+73: 00000000\r
+74: 00000000\r
+75: 00000000\r
+76: 00000000\r
+77: 00000000\r
+78: 00000578\r
+79: 00000000\r
+7a: 00000000\r
+7b: 00000000\r
+7c: 00000000\r
+7d: 00000000\r
+7e: 00000000\r
+7f: 00000000\r
+\r
+80: 00000000\r
+81: 00000000\r
+82: 00000000\r
+83: 00000000\r
+84: 00000000\r
+85: 00000000\r
+86: 00000000\r
+87: 00000000\r
+88: 00000578\r
+89: 00000000\r
+8a: 00000000\r
+8b: 00000000\r
+8c: 00000000\r
+8d: 00000000\r
+8e: 00000000\r
+8f: 00000000\r
+\r
+90: 00000000\r
+91: 00000000\r
+92: 00000000\r
+93: 00000000\r
+94: 00000000\r
+95: 00000000\r
+96: 00000000\r
+97: 00000000\r
+98: 00000578\r
+99: 00000000\r
+9a: 00000000\r
+9b: 00000000\r
+9c: 00000000\r
+9d: 00000000\r
+9e: 00000000\r
+9f: 00000000\r
+\r
+a0: 00000000\r
+a1: 00000000\r
+a2: 00000000\r
+a3: 00000000\r
+a4: 00000000\r
+a5: 00000000\r
+a6: 00000000\r
+a7: 00000000\r
+a8: 00000578\r
+a9: 00000000\r
+aa: 00000000\r
+ab: 00000000\r
+ac: 00000000\r
+ad: 00000000\r
+ae: 00000000\r
+af: 00000000\r
+\r
+b0: 00000000\r
+b1: 00000000\r
+b2: 00000000\r
+b3: 00000000\r
+b4: 00000000\r
+b5: 00000000\r
+b6: 00000000\r
+b7: 00000000\r
+b8: 00000578\r
+b9: 00000000\r
+ba: 00000000\r
+bb: 00000000\r
+bc: 00000000\r
+bd: 00000000\r
+be: 00000000\r
+bf: 00000000\r
+\r
+c0: 00000000\r
+c1: 00000000\r
+c2: 00000000\r
+c3: 00000000\r
+c4: 00000000\r
+c5: 00000000\r
+c6: 00000000\r
+c7: 00000000\r
+c8: 00000578\r
+c9: 00000000\r
+ca: 00000000\r
+cb: 00000000\r
+cc: 00000000\r
+cd: 00000000\r
+ce: 00000000\r
+cf: 00000000\r
+\r
+d0: 00000000\r
+d1: 00000000\r
+d2: 00000000\r
+d3: 00000000\r
+d4: 00000000\r
+d5: 00000000\r
+d6: 00000000\r
+d7: 00000000\r
+d8: 00000578\r
+d9: 00000000\r
+da: 00000000\r
+db: 00000000\r
+dc: 00000000\r
+dd: 00000000\r
+de: 00000000\r
+df: 00000000\r
+\r
+e0: 00000000\r
+e1: 00000000\r
+e2: 00000000\r
+e3: 00000000\r
+e4: 00000000\r
+e5: 00000000\r
+e6: 00000000\r
+e7: 00000000\r
+e8: 00000578\r
+e9: 00000000\r
+ea: 00000000\r
+eb: 00000000\r
+ec: 00000000\r
+ed: 00000000\r
+ee: 00000000\r
+ef: 00000000\r
+\r
+f0: 00000000\r
+f1: 00000000\r
+f2: 00000000\r
+f3: 00000000\r
+f4: 00000000\r
+f5: 00000000\r
+f6: 00000000\r
+f7: 00000000\r
+f8: 00000578\r
+f9: 00000000\r
+fa: 00000000\r
+fb: 00000000\r
+fc: 00000000\r
+fd: 00000000\r
+fe: 00000000\r
+ff: 00000000\r
diff --git a/gbe_ecp2m/ipcores/ip_mem.vhd b/gbe_ecp2m/ipcores/ip_mem.vhd
new file mode 100755 (executable)
index 0000000..cfa2c6e
--- /dev/null
@@ -0,0 +1,606 @@
+-- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23)
+-- Module  Version: 7.1
+--/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type bram -wp 11 -rp 1010 -data_width 32 -rdata_width 32 -num_rows 256 -outdataB REGISTERED -writemodeA NORMAL -writemodeB NORMAL -resetmode SYNC -memfile /home/greg/projects/HubGen3/NewHub3/hub2/ipexpress/ip_mem/ip_mem.mem -memformat orca -cascade -1 -e 
+
+-- Mon Mar 29 21:52:49 2010
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+-- synopsys translate_off
+library ecp2m;
+use ecp2m.components.all;
+-- synopsys translate_on
+
+entity ip_mem is
+    port (
+        DataInA: in  std_logic_vector(31 downto 0); 
+        DataInB: in  std_logic_vector(31 downto 0); 
+        AddressA: in  std_logic_vector(7 downto 0); 
+        AddressB: in  std_logic_vector(7 downto 0); 
+        ClockA: in  std_logic; 
+        ClockB: in  std_logic; 
+        ClockEnA: in  std_logic; 
+        ClockEnB: in  std_logic; 
+        WrA: in  std_logic; 
+        WrB: in  std_logic; 
+        ResetA: in  std_logic; 
+        ResetB: in  std_logic; 
+        QA: out  std_logic_vector(31 downto 0); 
+        QB: out  std_logic_vector(31 downto 0));
+end ip_mem;
+
+architecture Structure of ip_mem is
+
+    -- internal signal declarations
+    signal scuba_vhi: std_logic;
+    signal scuba_vlo: std_logic;
+
+    -- local component declarations
+    component VHI
+        port (Z: out  std_logic);
+    end component;
+    component VLO
+        port (Z: out  std_logic);
+    end component;
+    component DP16KB
+    -- synopsys translate_off
+        generic (INITVAL_3F : in String; INITVAL_3E : in String; 
+                INITVAL_3D : in String; INITVAL_3C : in String; 
+                INITVAL_3B : in String; INITVAL_3A : in String; 
+                INITVAL_39 : in String; INITVAL_38 : in String; 
+                INITVAL_37 : in String; INITVAL_36 : in String; 
+                INITVAL_35 : in String; INITVAL_34 : in String; 
+                INITVAL_33 : in String; INITVAL_32 : in String; 
+                INITVAL_31 : in String; INITVAL_30 : in String; 
+                INITVAL_2F : in String; INITVAL_2E : in String; 
+                INITVAL_2D : in String; INITVAL_2C : in String; 
+                INITVAL_2B : in String; INITVAL_2A : in String; 
+                INITVAL_29 : in String; INITVAL_28 : in String; 
+                INITVAL_27 : in String; INITVAL_26 : in String; 
+                INITVAL_25 : in String; INITVAL_24 : in String; 
+                INITVAL_23 : in String; INITVAL_22 : in String; 
+                INITVAL_21 : in String; INITVAL_20 : in String; 
+                INITVAL_1F : in String; INITVAL_1E : in String; 
+                INITVAL_1D : in String; INITVAL_1C : in String; 
+                INITVAL_1B : in String; INITVAL_1A : in String; 
+                INITVAL_19 : in String; INITVAL_18 : in String; 
+                INITVAL_17 : in String; INITVAL_16 : in String; 
+                INITVAL_15 : in String; INITVAL_14 : in String; 
+                INITVAL_13 : in String; INITVAL_12 : in String; 
+                INITVAL_11 : in String; INITVAL_10 : in String; 
+                INITVAL_0F : in String; INITVAL_0E : in String; 
+                INITVAL_0D : in String; INITVAL_0C : in String; 
+                INITVAL_0B : in String; INITVAL_0A : in String; 
+                INITVAL_09 : in String; INITVAL_08 : in String; 
+                INITVAL_07 : in String; INITVAL_06 : in String; 
+                INITVAL_05 : in String; INITVAL_04 : in String; 
+                INITVAL_03 : in String; INITVAL_02 : in String; 
+                INITVAL_01 : in String; INITVAL_00 : in String; 
+                GSR : in String; WRITEMODE_B : in String; 
+                CSDECODE_B : in std_logic_vector(2 downto 0); 
+                CSDECODE_A : in std_logic_vector(2 downto 0); 
+                WRITEMODE_A : in String; RESETMODE : in String; 
+                REGMODE_B : in String; REGMODE_A : in String; 
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);
+    -- synopsys translate_on
+        port (DIA0: in  std_logic; DIA1: in  std_logic; 
+            DIA2: in  std_logic; DIA3: in  std_logic; 
+            DIA4: in  std_logic; DIA5: in  std_logic; 
+            DIA6: in  std_logic; DIA7: in  std_logic; 
+            DIA8: in  std_logic; DIA9: in  std_logic; 
+            DIA10: in  std_logic; DIA11: in  std_logic; 
+            DIA12: in  std_logic; DIA13: in  std_logic; 
+            DIA14: in  std_logic; DIA15: in  std_logic; 
+            DIA16: in  std_logic; DIA17: in  std_logic; 
+            ADA0: in  std_logic; ADA1: in  std_logic; 
+            ADA2: in  std_logic; ADA3: in  std_logic; 
+            ADA4: in  std_logic; ADA5: in  std_logic; 
+            ADA6: in  std_logic; ADA7: in  std_logic; 
+            ADA8: in  std_logic; ADA9: in  std_logic; 
+            ADA10: in  std_logic; ADA11: in  std_logic; 
+            ADA12: in  std_logic; ADA13: in  std_logic; 
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; 
+            CSA0: in  std_logic; CSA1: in  std_logic; 
+            CSA2: in  std_logic; RSTA: in  std_logic; 
+            DIB0: in  std_logic; DIB1: in  std_logic; 
+            DIB2: in  std_logic; DIB3: in  std_logic; 
+            DIB4: in  std_logic; DIB5: in  std_logic; 
+            DIB6: in  std_logic; DIB7: in  std_logic; 
+            DIB8: in  std_logic; DIB9: in  std_logic; 
+            DIB10: in  std_logic; DIB11: in  std_logic; 
+            DIB12: in  std_logic; DIB13: in  std_logic; 
+            DIB14: in  std_logic; DIB15: in  std_logic; 
+            DIB16: in  std_logic; DIB17: in  std_logic; 
+            ADB0: in  std_logic; ADB1: in  std_logic; 
+            ADB2: in  std_logic; ADB3: in  std_logic; 
+            ADB4: in  std_logic; ADB5: in  std_logic; 
+            ADB6: in  std_logic; ADB7: in  std_logic; 
+            ADB8: in  std_logic; ADB9: in  std_logic; 
+            ADB10: in  std_logic; ADB11: in  std_logic; 
+            ADB12: in  std_logic; ADB13: in  std_logic; 
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; 
+            CSB0: in  std_logic; CSB1: in  std_logic; 
+            CSB2: in  std_logic; RSTB: in  std_logic; 
+            DOA0: out  std_logic; DOA1: out  std_logic; 
+            DOA2: out  std_logic; DOA3: out  std_logic; 
+            DOA4: out  std_logic; DOA5: out  std_logic; 
+            DOA6: out  std_logic; DOA7: out  std_logic; 
+            DOA8: out  std_logic; DOA9: out  std_logic; 
+            DOA10: out  std_logic; DOA11: out  std_logic; 
+            DOA12: out  std_logic; DOA13: out  std_logic; 
+            DOA14: out  std_logic; DOA15: out  std_logic; 
+            DOA16: out  std_logic; DOA17: out  std_logic; 
+            DOB0: out  std_logic; DOB1: out  std_logic; 
+            DOB2: out  std_logic; DOB3: out  std_logic; 
+            DOB4: out  std_logic; DOB5: out  std_logic; 
+            DOB6: out  std_logic; DOB7: out  std_logic; 
+            DOB8: out  std_logic; DOB9: out  std_logic; 
+            DOB10: out  std_logic; DOB11: out  std_logic; 
+            DOB12: out  std_logic; DOB13: out  std_logic; 
+            DOB14: out  std_logic; DOB15: out  std_logic; 
+            DOB16: out  std_logic; DOB17: out  std_logic);
+    end component;
+    attribute MEM_LPC_FILE : string; 
+    attribute MEM_INIT_FILE : string; 
+    attribute INITVAL_3F : string; 
+    attribute INITVAL_3E : string; 
+    attribute INITVAL_3D : string; 
+    attribute INITVAL_3C : string; 
+    attribute INITVAL_3B : string; 
+    attribute INITVAL_3A : string; 
+    attribute INITVAL_39 : string; 
+    attribute INITVAL_38 : string; 
+    attribute INITVAL_37 : string; 
+    attribute INITVAL_36 : string; 
+    attribute INITVAL_35 : string; 
+    attribute INITVAL_34 : string; 
+    attribute INITVAL_33 : string; 
+    attribute INITVAL_32 : string; 
+    attribute INITVAL_31 : string; 
+    attribute INITVAL_30 : string; 
+    attribute INITVAL_2F : string; 
+    attribute INITVAL_2E : string; 
+    attribute INITVAL_2D : string; 
+    attribute INITVAL_2C : string; 
+    attribute INITVAL_2B : string; 
+    attribute INITVAL_2A : string; 
+    attribute INITVAL_29 : string; 
+    attribute INITVAL_28 : string; 
+    attribute INITVAL_27 : string; 
+    attribute INITVAL_26 : string; 
+    attribute INITVAL_25 : string; 
+    attribute INITVAL_24 : string; 
+    attribute INITVAL_23 : string; 
+    attribute INITVAL_22 : string; 
+    attribute INITVAL_21 : string; 
+    attribute INITVAL_20 : string; 
+    attribute INITVAL_1F : string; 
+    attribute INITVAL_1E : string; 
+    attribute INITVAL_1D : string; 
+    attribute INITVAL_1C : string; 
+    attribute INITVAL_1B : string; 
+    attribute INITVAL_1A : string; 
+    attribute INITVAL_19 : string; 
+    attribute INITVAL_18 : string; 
+    attribute INITVAL_17 : string; 
+    attribute INITVAL_16 : string; 
+    attribute INITVAL_15 : string; 
+    attribute INITVAL_14 : string; 
+    attribute INITVAL_13 : string; 
+    attribute INITVAL_12 : string; 
+    attribute INITVAL_11 : string; 
+    attribute INITVAL_10 : string; 
+    attribute INITVAL_0F : string; 
+    attribute INITVAL_0E : string; 
+    attribute INITVAL_0D : string; 
+    attribute INITVAL_0C : string; 
+    attribute INITVAL_0B : string; 
+    attribute INITVAL_0A : string; 
+    attribute INITVAL_09 : string; 
+    attribute INITVAL_08 : string; 
+    attribute INITVAL_07 : string; 
+    attribute INITVAL_06 : string; 
+    attribute INITVAL_05 : string; 
+    attribute INITVAL_04 : string; 
+    attribute INITVAL_03 : string; 
+    attribute INITVAL_02 : string; 
+    attribute INITVAL_01 : string; 
+    attribute INITVAL_00 : string; 
+    attribute CSDECODE_B : string; 
+    attribute CSDECODE_A : string; 
+    attribute WRITEMODE_B : string; 
+    attribute WRITEMODE_A : string; 
+    attribute GSR : string; 
+    attribute RESETMODE : string; 
+    attribute REGMODE_B : string; 
+    attribute REGMODE_A : string; 
+    attribute DATA_WIDTH_B : string; 
+    attribute DATA_WIDTH_A : string; 
+    attribute MEM_LPC_FILE of ip_mem_0_0_1 : label is "ip_mem.lpc";
+    attribute MEM_INIT_FILE of ip_mem_0_0_1 : label is "ip_mem.mem";
+    attribute INITVAL_3F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_39 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_38 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_37 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_36 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_35 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_34 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_33 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_32 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_31 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_30 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_29 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_28 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_27 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_26 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_25 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_24 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_23 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_22 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_21 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_20 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_19 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_18 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_17 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_16 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_15 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_14 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_13 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_12 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_11 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_10 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0F of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_0E of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_0D of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_0C of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_0B of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_0A of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_09 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_08 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_07 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_06 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_05 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_04 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000";
+    attribute INITVAL_03 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000008000133DC030C353000020001B397E9";
+    attribute INITVAL_02 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000007000133DC020C352000020001B397E9";
+    attribute INITVAL_01 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000006000133DC010C351000020001B397E9";
+    attribute INITVAL_00 of ip_mem_0_0_1 : label is "0x00000000000000000000000000000000000005780C35000005000133DC000C350000020001B397E9";
+    attribute CSDECODE_B of ip_mem_0_0_1 : label is "0b000";
+    attribute CSDECODE_A of ip_mem_0_0_1 : label is "0b000";
+    attribute WRITEMODE_B of ip_mem_0_0_1 : label is "NORMAL";
+    attribute WRITEMODE_A of ip_mem_0_0_1 : label is "NORMAL";
+    attribute GSR of ip_mem_0_0_1 : label is "DISABLED";
+    attribute RESETMODE of ip_mem_0_0_1 : label is "SYNC";
+    attribute REGMODE_B of ip_mem_0_0_1 : label is "OUTREG";
+    attribute REGMODE_A of ip_mem_0_0_1 : label is "NOREG";
+    attribute DATA_WIDTH_B of ip_mem_0_0_1 : label is "18";
+    attribute DATA_WIDTH_A of ip_mem_0_0_1 : label is "18";
+    attribute MEM_LPC_FILE of ip_mem_0_1_0 : label is "ip_mem.lpc";
+    attribute MEM_INIT_FILE of ip_mem_0_1_0 : label is "ip_mem.mem";
+    attribute INITVAL_3F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_3A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_39 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_38 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_37 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_36 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_35 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_34 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_33 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_32 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_31 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_30 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_2A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_29 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_28 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_27 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_26 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_25 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_24 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_23 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_22 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_21 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_20 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_1A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_19 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_18 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_17 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_16 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_15 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_14 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_13 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_12 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_11 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_10 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0F of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0E of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0D of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0C of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0B of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_0A of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_09 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_08 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_07 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_06 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_05 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_04 of ip_mem_0_1_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";
+    attribute INITVAL_03 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850";
+    attribute INITVAL_02 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850";
+    attribute INITVAL_01 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850";
+    attribute INITVAL_00 of ip_mem_0_1_0 : label is "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850";
+    attribute CSDECODE_B of ip_mem_0_1_0 : label is "0b000";
+    attribute CSDECODE_A of ip_mem_0_1_0 : label is "0b000";
+    attribute WRITEMODE_B of ip_mem_0_1_0 : label is "NORMAL";
+    attribute WRITEMODE_A of ip_mem_0_1_0 : label is "NORMAL";
+    attribute GSR of ip_mem_0_1_0 : label is "DISABLED";
+    attribute RESETMODE of ip_mem_0_1_0 : label is "SYNC";
+    attribute REGMODE_B of ip_mem_0_1_0 : label is "OUTREG";
+    attribute REGMODE_A of ip_mem_0_1_0 : label is "NOREG";
+    attribute DATA_WIDTH_B of ip_mem_0_1_0 : label is "18";
+    attribute DATA_WIDTH_A of ip_mem_0_1_0 : label is "18";
+
+begin
+    -- component instantiation statements
+    ip_mem_0_0_1: DP16KB
+        -- synopsys translate_off
+        generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0F=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_0E=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_0D=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_0C=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_0B=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_0A=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_09=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_08=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_07=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_06=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_05=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_04=> "0x00000000000000000000000000000000000005780000000000000000000000000000000000000000", 
+        INITVAL_03=> "0x00000000000000000000000000000000000005780C35000008000133DC030C353000020001B397E9", 
+        INITVAL_02=> "0x00000000000000000000000000000000000005780C35000007000133DC020C352000020001B397E9", 
+        INITVAL_01=> "0x00000000000000000000000000000000000005780C35000006000133DC010C351000020001B397E9", 
+        INITVAL_00=> "0x00000000000000000000000000000000000005780C35000005000133DC000C350000020001B397E9", 
+        CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "SYNC", 
+        REGMODE_B=> "OUTREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  18, 
+        DATA_WIDTH_A=>  18)
+        -- synopsys translate_on
+        port map (DIA0=>DataInA(0), DIA1=>DataInA(1), DIA2=>DataInA(2), 
+            DIA3=>DataInA(3), DIA4=>DataInA(4), DIA5=>DataInA(5), 
+            DIA6=>DataInA(6), DIA7=>DataInA(7), DIA8=>DataInA(8), 
+            DIA9=>DataInA(9), DIA10=>DataInA(10), DIA11=>DataInA(11), 
+            DIA12=>DataInA(12), DIA13=>DataInA(13), DIA14=>DataInA(14), 
+            DIA15=>DataInA(15), DIA16=>DataInA(16), DIA17=>DataInA(17), 
+            ADA0=>scuba_vhi, ADA1=>scuba_vhi, ADA2=>scuba_vlo, 
+            ADA3=>scuba_vlo, ADA4=>AddressA(0), ADA5=>AddressA(1), 
+            ADA6=>AddressA(2), ADA7=>AddressA(3), ADA8=>AddressA(4), 
+            ADA9=>AddressA(5), ADA10=>AddressA(6), ADA11=>AddressA(7), 
+            ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>ClockEnA, 
+            CLKA=>ClockA, WEA=>WrA, CSA0=>scuba_vlo, CSA1=>scuba_vlo, 
+            CSA2=>scuba_vlo, RSTA=>ResetA, DIB0=>DataInB(0), 
+            DIB1=>DataInB(1), DIB2=>DataInB(2), DIB3=>DataInB(3), 
+            DIB4=>DataInB(4), DIB5=>DataInB(5), DIB6=>DataInB(6), 
+            DIB7=>DataInB(7), DIB8=>DataInB(8), DIB9=>DataInB(9), 
+            DIB10=>DataInB(10), DIB11=>DataInB(11), DIB12=>DataInB(12), 
+            DIB13=>DataInB(13), DIB14=>DataInB(14), DIB15=>DataInB(15), 
+            DIB16=>DataInB(16), DIB17=>DataInB(17), ADB0=>scuba_vhi, 
+            ADB1=>scuba_vhi, ADB2=>scuba_vlo, ADB3=>scuba_vlo, 
+            ADB4=>AddressB(0), ADB5=>AddressB(1), ADB6=>AddressB(2), 
+            ADB7=>AddressB(3), ADB8=>AddressB(4), ADB9=>AddressB(5), 
+            ADB10=>AddressB(6), ADB11=>AddressB(7), ADB12=>scuba_vlo, 
+            ADB13=>scuba_vlo, CEB=>ClockEnB, CLKB=>ClockB, WEB=>WrB, 
+            CSB0=>scuba_vlo, CSB1=>scuba_vlo, CSB2=>scuba_vlo, 
+            RSTB=>ResetB, DOA0=>QA(0), DOA1=>QA(1), DOA2=>QA(2), 
+            DOA3=>QA(3), DOA4=>QA(4), DOA5=>QA(5), DOA6=>QA(6), 
+            DOA7=>QA(7), DOA8=>QA(8), DOA9=>QA(9), DOA10=>QA(10), 
+            DOA11=>QA(11), DOA12=>QA(12), DOA13=>QA(13), DOA14=>QA(14), 
+            DOA15=>QA(15), DOA16=>QA(16), DOA17=>QA(17), DOB0=>QB(0), 
+            DOB1=>QB(1), DOB2=>QB(2), DOB3=>QB(3), DOB4=>QB(4), 
+            DOB5=>QB(5), DOB6=>QB(6), DOB7=>QB(7), DOB8=>QB(8), 
+            DOB9=>QB(9), DOB10=>QB(10), DOB11=>QB(11), DOB12=>QB(12), 
+            DOB13=>QB(13), DOB14=>QB(14), DOB15=>QB(15), DOB16=>QB(16), 
+            DOB17=>QB(17));
+
+    scuba_vhi_inst: VHI
+        port map (Z=>scuba_vhi);
+
+    scuba_vlo_inst: VLO
+        port map (Z=>scuba_vlo);
+
+    ip_mem_0_1_0: DP16KB
+        -- synopsys translate_off
+        generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_03=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", 
+        INITVAL_02=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", 
+        INITVAL_01=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", 
+        INITVAL_00=> "0x0000000000000000000000000000000000000000000000302A000000008E000000302A0000000850", 
+        CSDECODE_B=> "000", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", 
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "SYNC", 
+        REGMODE_B=> "OUTREG", REGMODE_A=> "NOREG", DATA_WIDTH_B=>  18, 
+        DATA_WIDTH_A=>  18)
+        -- synopsys translate_on
+        port map (DIA0=>DataInA(18), DIA1=>DataInA(19), 
+            DIA2=>DataInA(20), DIA3=>DataInA(21), DIA4=>DataInA(22), 
+            DIA5=>DataInA(23), DIA6=>DataInA(24), DIA7=>DataInA(25), 
+            DIA8=>DataInA(26), DIA9=>DataInA(27), DIA10=>DataInA(28), 
+            DIA11=>DataInA(29), DIA12=>DataInA(30), DIA13=>DataInA(31), 
+            DIA14=>scuba_vlo, DIA15=>scuba_vlo, DIA16=>scuba_vlo, 
+            DIA17=>scuba_vlo, ADA0=>scuba_vhi, ADA1=>scuba_vhi, 
+            ADA2=>scuba_vlo, ADA3=>scuba_vlo, ADA4=>AddressA(0), 
+            ADA5=>AddressA(1), ADA6=>AddressA(2), ADA7=>AddressA(3), 
+            ADA8=>AddressA(4), ADA9=>AddressA(5), ADA10=>AddressA(6), 
+            ADA11=>AddressA(7), ADA12=>scuba_vlo, ADA13=>scuba_vlo, 
+            CEA=>ClockEnA, CLKA=>ClockA, WEA=>WrA, CSA0=>scuba_vlo, 
+            CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>ResetA, 
+            DIB0=>DataInB(18), DIB1=>DataInB(19), DIB2=>DataInB(20), 
+            DIB3=>DataInB(21), DIB4=>DataInB(22), DIB5=>DataInB(23), 
+            DIB6=>DataInB(24), DIB7=>DataInB(25), DIB8=>DataInB(26), 
+            DIB9=>DataInB(27), DIB10=>DataInB(28), DIB11=>DataInB(29), 
+            DIB12=>DataInB(30), DIB13=>DataInB(31), DIB14=>scuba_vlo, 
+            DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, 
+            ADB0=>scuba_vhi, ADB1=>scuba_vhi, ADB2=>scuba_vlo, 
+            ADB3=>scuba_vlo, ADB4=>AddressB(0), ADB5=>AddressB(1), 
+            ADB6=>AddressB(2), ADB7=>AddressB(3), ADB8=>AddressB(4), 
+            ADB9=>AddressB(5), ADB10=>AddressB(6), ADB11=>AddressB(7), 
+            ADB12=>scuba_vlo, ADB13=>scuba_vlo, CEB=>ClockEnB, 
+            CLKB=>ClockB, WEB=>WrB, CSB0=>scuba_vlo, CSB1=>scuba_vlo, 
+            CSB2=>scuba_vlo, RSTB=>ResetB, DOA0=>QA(18), DOA1=>QA(19), 
+            DOA2=>QA(20), DOA3=>QA(21), DOA4=>QA(22), DOA5=>QA(23), 
+            DOA6=>QA(24), DOA7=>QA(25), DOA8=>QA(26), DOA9=>QA(27), 
+            DOA10=>QA(28), DOA11=>QA(29), DOA12=>QA(30), DOA13=>QA(31), 
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, 
+            DOB0=>QB(18), DOB1=>QB(19), DOB2=>QB(20), DOB3=>QB(21), 
+            DOB4=>QB(22), DOB5=>QB(23), DOB6=>QB(24), DOB7=>QB(25), 
+            DOB8=>QB(26), DOB9=>QB(27), DOB10=>QB(28), DOB11=>QB(29), 
+            DOB12=>QB(30), DOB13=>QB(31), DOB14=>open, DOB15=>open, 
+            DOB16=>open, DOB17=>open);
+
+end Structure;
+
+-- synopsys translate_off
+library ecp2m;
+configuration Structure_CON of ip_mem is
+    for Structure
+        for all:VHI use entity ecp2m.VHI(V); end for;
+        for all:VLO use entity ecp2m.VLO(V); end for;
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;
+    end for;
+end Structure_CON;
+
+-- synopsys translate_on
diff --git a/gbe_ecp2m/ipcores/ip_mem_tmpl.vhd b/gbe_ecp2m/ipcores/ip_mem_tmpl.vhd
new file mode 100755 (executable)
index 0000000..7d1cea6
--- /dev/null
@@ -0,0 +1,23 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23)
+-- Module  Version: 7.1
+-- Mon Mar 29 21:52:49 2010
+
+-- parameterized module component declaration
+component ip_mem
+    port (DataInA: in  std_logic_vector(31 downto 0); 
+        DataInB: in  std_logic_vector(31 downto 0); 
+        AddressA: in  std_logic_vector(7 downto 0); 
+        AddressB: in  std_logic_vector(7 downto 0); 
+        ClockA: in  std_logic; ClockB: in  std_logic; 
+        ClockEnA: in  std_logic; ClockEnB: in  std_logic; 
+        WrA: in  std_logic; WrB: in  std_logic; ResetA: in  std_logic; 
+        ResetB: in  std_logic; QA: out  std_logic_vector(31 downto 0); 
+        QB: out  std_logic_vector(31 downto 0));
+end component;
+
+-- parameterized module component instance
+__ : ip_mem
+    port map (DataInA(31 downto 0)=>__, DataInB(31 downto 0)=>__, 
+        AddressA(7 downto 0)=>__, AddressB(7 downto 0)=>__, ClockA=>__, 
+        ClockB=>__, ClockEnA=>__, ClockEnB=>__, WrA=>__, WrB=>__, ResetA=>__, 
+        ResetB=>__, QA(31 downto 0)=>__, QB(31 downto 0)=>__);
diff --git a/gbe_ecp2m/ipcores/macInitDataInvWithMac.mem b/gbe_ecp2m/ipcores/macInitDataInvWithMac.mem
new file mode 100755 (executable)
index 0000000..c93b822
--- /dev/null
@@ -0,0 +1,59 @@
+#Format=Bin\r
+#Depth=54\r
+#Width=8\r
+#AddrRadix=3\r
+#DataRadix=3\r
+#Data\r
+00001111\r
+00001111\r
+10011001\r
+00000001\r
+11101110\r
+00000101\r
+00000000\r
+00000000\r
+00001100\r
+00000000\r
+00110100\r
+00010010\r
+01111000\r
+01010110\r
+10111100\r
+10011010\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+00000000\r
+10000000\r
diff --git a/gbe_ecp2m/ipcores/mac_init_mem.lpc b/gbe_ecp2m/ipcores/mac_init_mem.lpc
new file mode 100755 (executable)
index 0000000..02c8376
--- /dev/null
@@ -0,0 +1,45 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-6F900C\r
+SpeedGrade=-6\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=ROM\r
+CoreRevision=5.0\r
+ModuleName=mac_init_mem\r
+SourceFormat=VHDL\r
+ParameterFileVersion=1.0\r
+Date=08/20/2009\r
+Time=16:00:49\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+Address=54\r
+Data=8\r
+adPipeline=0\r
+inPipeline=0\r
+outPipeline=1\r
+MOR=0\r
+InData=Registered\r
+AdControl=Registered\r
+MemFile=/home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem\r
+MemFormat=bin\r
+Reset=Sync\r
+Pad=0\r
+GSR=Enabled\r
+EnECC=0\r
+Optimization=Speed\r
+Pipeline=0\r
diff --git a/gbe_ecp2m/ipcores/mac_init_mem.vhd b/gbe_ecp2m/ipcores/mac_init_mem.vhd
new file mode 100755 (executable)
index 0000000..c2c95e4
--- /dev/null
@@ -0,0 +1,413 @@
+-- VHDL netlist generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.0\r
+--/opt/lattice/ispLEVER7.2/isptools/ispfpga/bin/lin/scuba -w -lang vhdl -synth synplify -bus_exp 7 -bb -arch ep5m00 -type bram -wp 00 -rp 1100 -addr_width 6 -data_width 8 -num_rows 54 -outdata REGISTERED -resetmode SYNC -memfile /home/greg/NewHub2/hub2/ipexpress/mac_init_mem/macInitDataInvWithMac.mem -memformat bin -cascade -1 -e \r
+\r
+-- Thu Aug 20 16:00:49 2009\r
+\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+-- synopsys translate_off\r
+library ecp2m;\r
+use ecp2m.components.all;\r
+-- synopsys translate_on\r
+\r
+entity mac_init_mem is\r
+    port (\r
+        Address: in  std_logic_vector(5 downto 0); \r
+        OutClock: in  std_logic; \r
+        OutClockEn: in  std_logic; \r
+        Reset: in  std_logic; \r
+        Q: out  std_logic_vector(7 downto 0));\r
+end mac_init_mem;\r
+\r
+architecture Structure of mac_init_mem is\r
+\r
+    -- internal signal declarations\r
+    signal scuba_vhi: std_logic;\r
+    signal scuba_vlo: std_logic;\r
+\r
+    -- local component declarations\r
+    component VHI\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component VLO\r
+        port (Z: out  std_logic);\r
+    end component;\r
+    component DP16KB\r
+    -- synopsys translate_off\r
+        generic (INITVAL_3F : in String; INITVAL_3E : in String; \r
+                INITVAL_3D : in String; INITVAL_3C : in String; \r
+                INITVAL_3B : in String; INITVAL_3A : in String; \r
+                INITVAL_39 : in String; INITVAL_38 : in String; \r
+                INITVAL_37 : in String; INITVAL_36 : in String; \r
+                INITVAL_35 : in String; INITVAL_34 : in String; \r
+                INITVAL_33 : in String; INITVAL_32 : in String; \r
+                INITVAL_31 : in String; INITVAL_30 : in String; \r
+                INITVAL_2F : in String; INITVAL_2E : in String; \r
+                INITVAL_2D : in String; INITVAL_2C : in String; \r
+                INITVAL_2B : in String; INITVAL_2A : in String; \r
+                INITVAL_29 : in String; INITVAL_28 : in String; \r
+                INITVAL_27 : in String; INITVAL_26 : in String; \r
+                INITVAL_25 : in String; INITVAL_24 : in String; \r
+                INITVAL_23 : in String; INITVAL_22 : in String; \r
+                INITVAL_21 : in String; INITVAL_20 : in String; \r
+                INITVAL_1F : in String; INITVAL_1E : in String; \r
+                INITVAL_1D : in String; INITVAL_1C : in String; \r
+                INITVAL_1B : in String; INITVAL_1A : in String; \r
+                INITVAL_19 : in String; INITVAL_18 : in String; \r
+                INITVAL_17 : in String; INITVAL_16 : in String; \r
+                INITVAL_15 : in String; INITVAL_14 : in String; \r
+                INITVAL_13 : in String; INITVAL_12 : in String; \r
+                INITVAL_11 : in String; INITVAL_10 : in String; \r
+                INITVAL_0F : in String; INITVAL_0E : in String; \r
+                INITVAL_0D : in String; INITVAL_0C : in String; \r
+                INITVAL_0B : in String; INITVAL_0A : in String; \r
+                INITVAL_09 : in String; INITVAL_08 : in String; \r
+                INITVAL_07 : in String; INITVAL_06 : in String; \r
+                INITVAL_05 : in String; INITVAL_04 : in String; \r
+                INITVAL_03 : in String; INITVAL_02 : in String; \r
+                INITVAL_01 : in String; INITVAL_00 : in String; \r
+                GSR : in String; WRITEMODE_B : in String; \r
+                CSDECODE_B : in std_logic_vector(2 downto 0); \r
+                CSDECODE_A : in std_logic_vector(2 downto 0); \r
+                WRITEMODE_A : in String; RESETMODE : in String; \r
+                REGMODE_B : in String; REGMODE_A : in String; \r
+                DATA_WIDTH_B : in Integer; DATA_WIDTH_A : in Integer);\r
+    -- synopsys translate_on\r
+        port (DIA0: in  std_logic; DIA1: in  std_logic; \r
+            DIA2: in  std_logic; DIA3: in  std_logic; \r
+            DIA4: in  std_logic; DIA5: in  std_logic; \r
+            DIA6: in  std_logic; DIA7: in  std_logic; \r
+            DIA8: in  std_logic; DIA9: in  std_logic; \r
+            DIA10: in  std_logic; DIA11: in  std_logic; \r
+            DIA12: in  std_logic; DIA13: in  std_logic; \r
+            DIA14: in  std_logic; DIA15: in  std_logic; \r
+            DIA16: in  std_logic; DIA17: in  std_logic; \r
+            ADA0: in  std_logic; ADA1: in  std_logic; \r
+            ADA2: in  std_logic; ADA3: in  std_logic; \r
+            ADA4: in  std_logic; ADA5: in  std_logic; \r
+            ADA6: in  std_logic; ADA7: in  std_logic; \r
+            ADA8: in  std_logic; ADA9: in  std_logic; \r
+            ADA10: in  std_logic; ADA11: in  std_logic; \r
+            ADA12: in  std_logic; ADA13: in  std_logic; \r
+            CEA: in  std_logic; CLKA: in  std_logic; WEA: in  std_logic; \r
+            CSA0: in  std_logic; CSA1: in  std_logic; \r
+            CSA2: in  std_logic; RSTA: in  std_logic; \r
+            DIB0: in  std_logic; DIB1: in  std_logic; \r
+            DIB2: in  std_logic; DIB3: in  std_logic; \r
+            DIB4: in  std_logic; DIB5: in  std_logic; \r
+            DIB6: in  std_logic; DIB7: in  std_logic; \r
+            DIB8: in  std_logic; DIB9: in  std_logic; \r
+            DIB10: in  std_logic; DIB11: in  std_logic; \r
+            DIB12: in  std_logic; DIB13: in  std_logic; \r
+            DIB14: in  std_logic; DIB15: in  std_logic; \r
+            DIB16: in  std_logic; DIB17: in  std_logic; \r
+            ADB0: in  std_logic; ADB1: in  std_logic; \r
+            ADB2: in  std_logic; ADB3: in  std_logic; \r
+            ADB4: in  std_logic; ADB5: in  std_logic; \r
+            ADB6: in  std_logic; ADB7: in  std_logic; \r
+            ADB8: in  std_logic; ADB9: in  std_logic; \r
+            ADB10: in  std_logic; ADB11: in  std_logic; \r
+            ADB12: in  std_logic; ADB13: in  std_logic; \r
+            CEB: in  std_logic; CLKB: in  std_logic; WEB: in  std_logic; \r
+            CSB0: in  std_logic; CSB1: in  std_logic; \r
+            CSB2: in  std_logic; RSTB: in  std_logic; \r
+            DOA0: out  std_logic; DOA1: out  std_logic; \r
+            DOA2: out  std_logic; DOA3: out  std_logic; \r
+            DOA4: out  std_logic; DOA5: out  std_logic; \r
+            DOA6: out  std_logic; DOA7: out  std_logic; \r
+            DOA8: out  std_logic; DOA9: out  std_logic; \r
+            DOA10: out  std_logic; DOA11: out  std_logic; \r
+            DOA12: out  std_logic; DOA13: out  std_logic; \r
+            DOA14: out  std_logic; DOA15: out  std_logic; \r
+            DOA16: out  std_logic; DOA17: out  std_logic; \r
+            DOB0: out  std_logic; DOB1: out  std_logic; \r
+            DOB2: out  std_logic; DOB3: out  std_logic; \r
+            DOB4: out  std_logic; DOB5: out  std_logic; \r
+            DOB6: out  std_logic; DOB7: out  std_logic; \r
+            DOB8: out  std_logic; DOB9: out  std_logic; \r
+            DOB10: out  std_logic; DOB11: out  std_logic; \r
+            DOB12: out  std_logic; DOB13: out  std_logic; \r
+            DOB14: out  std_logic; DOB15: out  std_logic; \r
+            DOB16: out  std_logic; DOB17: out  std_logic);\r
+    end component;\r
+    attribute MEM_LPC_FILE : string; \r
+    attribute MEM_INIT_FILE : string; \r
+    attribute INITVAL_3F : string; \r
+    attribute INITVAL_3E : string; \r
+    attribute INITVAL_3D : string; \r
+    attribute INITVAL_3C : string; \r
+    attribute INITVAL_3B : string; \r
+    attribute INITVAL_3A : string; \r
+    attribute INITVAL_39 : string; \r
+    attribute INITVAL_38 : string; \r
+    attribute INITVAL_37 : string; \r
+    attribute INITVAL_36 : string; \r
+    attribute INITVAL_35 : string; \r
+    attribute INITVAL_34 : string; \r
+    attribute INITVAL_33 : string; \r
+    attribute INITVAL_32 : string; \r
+    attribute INITVAL_31 : string; \r
+    attribute INITVAL_30 : string; \r
+    attribute INITVAL_2F : string; \r
+    attribute INITVAL_2E : string; \r
+    attribute INITVAL_2D : string; \r
+    attribute INITVAL_2C : string; \r
+    attribute INITVAL_2B : string; \r
+    attribute INITVAL_2A : string; \r
+    attribute INITVAL_29 : string; \r
+    attribute INITVAL_28 : string; \r
+    attribute INITVAL_27 : string; \r
+    attribute INITVAL_26 : string; \r
+    attribute INITVAL_25 : string; \r
+    attribute INITVAL_24 : string; \r
+    attribute INITVAL_23 : string; \r
+    attribute INITVAL_22 : string; \r
+    attribute INITVAL_21 : string; \r
+    attribute INITVAL_20 : string; \r
+    attribute INITVAL_1F : string; \r
+    attribute INITVAL_1E : string; \r
+    attribute INITVAL_1D : string; \r
+    attribute INITVAL_1C : string; \r
+    attribute INITVAL_1B : string; \r
+    attribute INITVAL_1A : string; \r
+    attribute INITVAL_19 : string; \r
+    attribute INITVAL_18 : string; \r
+    attribute INITVAL_17 : string; \r
+    attribute INITVAL_16 : string; \r
+    attribute INITVAL_15 : string; \r
+    attribute INITVAL_14 : string; \r
+    attribute INITVAL_13 : string; \r
+    attribute INITVAL_12 : string; \r
+    attribute INITVAL_11 : string; \r
+    attribute INITVAL_10 : string; \r
+    attribute INITVAL_0F : string; \r
+    attribute INITVAL_0E : string; \r
+    attribute INITVAL_0D : string; \r
+    attribute INITVAL_0C : string; \r
+    attribute INITVAL_0B : string; \r
+    attribute INITVAL_0A : string; \r
+    attribute INITVAL_09 : string; \r
+    attribute INITVAL_08 : string; \r
+    attribute INITVAL_07 : string; \r
+    attribute INITVAL_06 : string; \r
+    attribute INITVAL_05 : string; \r
+    attribute INITVAL_04 : string; \r
+    attribute INITVAL_03 : string; \r
+    attribute INITVAL_02 : string; \r
+    attribute INITVAL_01 : string; \r
+    attribute INITVAL_00 : string; \r
+    attribute CSDECODE_B : string; \r
+    attribute CSDECODE_A : string; \r
+    attribute WRITEMODE_B : string; \r
+    attribute WRITEMODE_A : string; \r
+    attribute GSR : string; \r
+    attribute RESETMODE : string; \r
+    attribute REGMODE_B : string; \r
+    attribute REGMODE_A : string; \r
+    attribute DATA_WIDTH_B : string; \r
+    attribute DATA_WIDTH_A : string; \r
+    attribute MEM_LPC_FILE of mac_init_mem_0_0_0 : label is "mac_init_mem.lpc";\r
+    attribute MEM_INIT_FILE of mac_init_mem_0_0_0 : label is "macInitDataInvWithMac.mem";\r
+    attribute INITVAL_3F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_3E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_3D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_3C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_3B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_3A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_39 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_38 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_37 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_36 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_35 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_34 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_33 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_32 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_31 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_30 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_2F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_2E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_2D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_2C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_2B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_2A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_29 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_28 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_27 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_26 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_25 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_24 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_23 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_22 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_21 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_20 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_1F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_1E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_1D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_1C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_1B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_1A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_19 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_18 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_17 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_16 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_15 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_14 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_13 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_12 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_11 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_10 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_0F of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_0E of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_0D of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_0C of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_0B of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_0A of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_09 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_08 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_07 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_06 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_05 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_04 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_03 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_02 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_01 of mac_init_mem_0_0_0 : label is "0x00000000000000000000000000008000000000000000000000000000000000000000000000000000";\r
+    attribute INITVAL_00 of mac_init_mem_0_0_0 : label is "0x0000000000000000000000000000000000000000134BC0AC78024340000C0000000AEE0029901E0F";\r
+    attribute CSDECODE_B of mac_init_mem_0_0_0 : label is "0b111";\r
+    attribute CSDECODE_A of mac_init_mem_0_0_0 : label is "0b000";\r
+    attribute WRITEMODE_B of mac_init_mem_0_0_0 : label is "NORMAL";\r
+    attribute WRITEMODE_A of mac_init_mem_0_0_0 : label is "NORMAL";\r
+    attribute GSR of mac_init_mem_0_0_0 : label is "DISABLED";\r
+    attribute RESETMODE of mac_init_mem_0_0_0 : label is "SYNC";\r
+    attribute REGMODE_B of mac_init_mem_0_0_0 : label is "NOREG";\r
+    attribute REGMODE_A of mac_init_mem_0_0_0 : label is "OUTREG";\r
+    attribute DATA_WIDTH_B of mac_init_mem_0_0_0 : label is "9";\r
+    attribute DATA_WIDTH_A of mac_init_mem_0_0_0 : label is "9";\r
+\r
+begin\r
+    -- component instantiation statements\r
+    scuba_vhi_inst: VHI\r
+        port map (Z=>scuba_vhi);\r
+\r
+    scuba_vlo_inst: VLO\r
+        port map (Z=>scuba_vlo);\r
+\r
+    mac_init_mem_0_0_0: DP16KB\r
+        -- synopsys translate_off\r
+        generic map (INITVAL_3F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_3D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_3C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_38=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_30=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_2C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_2B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_2A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_29=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_28=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_27=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_26=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_25=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_24=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_23=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_22=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_1F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_17=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_12=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_10=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_0F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_0E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_0B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_0A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_07=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_05=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_04=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_03=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_02=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", \r
+        INITVAL_01=> "0x00000000000000000000000000008000000000000000000000000000000000000000000000000000", \r
+        INITVAL_00=> "0x0000000000000000000000000000000000000000134BC0AC78024340000C0000000AEE0029901E0F", \r
+        CSDECODE_B=> "111", CSDECODE_A=> "000", WRITEMODE_B=> "NORMAL", \r
+        WRITEMODE_A=> "NORMAL", GSR=> "DISABLED", RESETMODE=> "SYNC", \r
+        REGMODE_B=> "NOREG", REGMODE_A=> "OUTREG", DATA_WIDTH_B=>  9, \r
+        DATA_WIDTH_A=>  9)\r
+        -- synopsys translate_on\r
+        port map (DIA0=>scuba_vlo, DIA1=>scuba_vlo, DIA2=>scuba_vlo, \r
+            DIA3=>scuba_vlo, DIA4=>scuba_vlo, DIA5=>scuba_vlo, \r
+            DIA6=>scuba_vlo, DIA7=>scuba_vlo, DIA8=>scuba_vlo, \r
+            DIA9=>scuba_vlo, DIA10=>scuba_vlo, DIA11=>scuba_vlo, \r
+            DIA12=>scuba_vlo, DIA13=>scuba_vlo, DIA14=>scuba_vlo, \r
+            DIA15=>scuba_vlo, DIA16=>scuba_vlo, DIA17=>scuba_vlo, \r
+            ADA0=>scuba_vlo, ADA1=>scuba_vlo, ADA2=>scuba_vlo, \r
+            ADA3=>Address(0), ADA4=>Address(1), ADA5=>Address(2), \r
+            ADA6=>Address(3), ADA7=>Address(4), ADA8=>Address(5), \r
+            ADA9=>scuba_vlo, ADA10=>scuba_vlo, ADA11=>scuba_vlo, \r
+            ADA12=>scuba_vlo, ADA13=>scuba_vlo, CEA=>OutClockEn, \r
+            CLKA=>OutClock, WEA=>scuba_vlo, CSA0=>scuba_vlo, \r
+            CSA1=>scuba_vlo, CSA2=>scuba_vlo, RSTA=>Reset, \r
+            DIB0=>scuba_vlo, DIB1=>scuba_vlo, DIB2=>scuba_vlo, \r
+            DIB3=>scuba_vlo, DIB4=>scuba_vlo, DIB5=>scuba_vlo, \r
+            DIB6=>scuba_vlo, DIB7=>scuba_vlo, DIB8=>scuba_vlo, \r
+            DIB9=>scuba_vlo, DIB10=>scuba_vlo, DIB11=>scuba_vlo, \r
+            DIB12=>scuba_vlo, DIB13=>scuba_vlo, DIB14=>scuba_vlo, \r
+            DIB15=>scuba_vlo, DIB16=>scuba_vlo, DIB17=>scuba_vlo, \r
+            ADB0=>scuba_vlo, ADB1=>scuba_vlo, ADB2=>scuba_vlo, \r
+            ADB3=>scuba_vlo, ADB4=>scuba_vlo, ADB5=>scuba_vlo, \r
+            ADB6=>scuba_vlo, ADB7=>scuba_vlo, ADB8=>scuba_vlo, \r
+            ADB9=>scuba_vlo, ADB10=>scuba_vlo, ADB11=>scuba_vlo, \r
+            ADB12=>scuba_vlo, ADB13=>scuba_vlo, CEB=>scuba_vhi, \r
+            CLKB=>scuba_vlo, WEB=>scuba_vlo, CSB0=>scuba_vlo, \r
+            CSB1=>scuba_vlo, CSB2=>scuba_vlo, RSTB=>scuba_vlo, \r
+            DOA0=>Q(0), DOA1=>Q(1), DOA2=>Q(2), DOA3=>Q(3), DOA4=>Q(4), \r
+            DOA5=>Q(5), DOA6=>Q(6), DOA7=>Q(7), DOA8=>open, DOA9=>open, \r
+            DOA10=>open, DOA11=>open, DOA12=>open, DOA13=>open, \r
+            DOA14=>open, DOA15=>open, DOA16=>open, DOA17=>open, \r
+            DOB0=>open, DOB1=>open, DOB2=>open, DOB3=>open, DOB4=>open, \r
+            DOB5=>open, DOB6=>open, DOB7=>open, DOB8=>open, DOB9=>open, \r
+            DOB10=>open, DOB11=>open, DOB12=>open, DOB13=>open, \r
+            DOB14=>open, DOB15=>open, DOB16=>open, DOB17=>open);\r
+\r
+end Structure;\r
+\r
+-- synopsys translate_off\r
+library ecp2m;\r
+configuration Structure_CON of mac_init_mem is\r
+    for Structure\r
+        for all:VHI use entity ecp2m.VHI(V); end for;\r
+        for all:VLO use entity ecp2m.VLO(V); end for;\r
+        for all:DP16KB use entity ecp2m.DP16KB(V); end for;\r
+    end for;\r
+end Structure_CON;\r
+\r
+-- synopsys translate_on\r
diff --git a/gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd b/gbe_ecp2m/ipcores/mac_init_mem_tmpl.vhd
new file mode 100755 (executable)
index 0000000..1aee5c2
--- /dev/null
@@ -0,0 +1,15 @@
+-- VHDL module instantiation generated by SCUBA ispLever_v72_SP2_Build (23)\r
+-- Module  Version: 5.0\r
+-- Thu Aug 20 16:00:49 2009\r
+\r
+-- parameterized module component declaration\r
+component mac_init_mem\r
+    port (Address: in  std_logic_vector(5 downto 0); \r
+        OutClock: in  std_logic; OutClockEn: in  std_logic; \r
+        Reset: in  std_logic; Q: out  std_logic_vector(7 downto 0));\r
+end component;\r
+\r
+-- parameterized module component instance\r
+__ : mac_init_mem\r
+    port map (Address(5 downto 0)=>__, OutClock=>__, OutClockEn=>__, \r
+        Reset=>__, Q(7 downto 0)=>__);\r
diff --git a/gbe_ecp2m/ipcores/serdes/.cvsignore b/gbe_ecp2m/ipcores/serdes/.cvsignore
new file mode 100644 (file)
index 0000000..85eef7b
--- /dev/null
@@ -0,0 +1,9 @@
+*.jhd
+*.naf
+*.srp
+*.sym
+*.log
+*.pp
+*.tft
+*.readme
+*tmpl.vhd
diff --git a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc b/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.lpc
new file mode 100755 (executable)
index 0000000..4efe9cf
--- /dev/null
@@ -0,0 +1,140 @@
+[Device]\r
+Family=latticeecp2m\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-6F900C\r
+SpeedGrade=-6\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=LPM\r
+CoreStatus=Demo\r
+CoreName=PCS\r
+CoreRevision=7.0\r
+ModuleName=serdes_gbe_0_extclock_8b\r
+SourceFormat=Schematic/VHDL\r
+ParameterFileVersion=1.0\r
+Date=08/20/2009\r
+Time=11:50:53\r
+\r
+[Parameters]\r
+Verilog=0\r
+VHDL=1\r
+EDIF=1\r
+Destination=Synplicity\r
+Expression=BusA(0 to 7)\r
+Order=Big Endian [MSB:LSB]\r
+IO=0\r
+Protocol=Quad\r
+mode=Gigabit Ethernet\r
+Channel0=SINGLE\r
+Channel1=DISABLE\r
+Channel2=DISABLE\r
+Channel3=DISABLE\r
+Rate0=None\r
+Rate1=None\r
+Rate2=None\r
+Rate3=None\r
+TxRefClk=REFCLK\r
+RxRefClk=REFCLK\r
+ClkRate=1.25\r
+ClkMult=10X\r
+CalClkRate=125.0\r
+DataWidth=8\r
+FPGAClkRate=125.0\r
+TxRefClkCM=REFCLK\r
+RxRefClk0CM=REFCLK\r
+RxRefClk1CM=REFCLK\r
+RxRefClk2CM=REFCLK\r
+RxRefClk3CM=REFCLK\r
+ClkRateH=0.625\r
+ClkMultH=10XH\r
+CalClkRateH=125.0\r
+DataWidthH=8\r
+FPGAClkRateH=62.5\r
+VCh0=0\r
+VCh1=0\r
+VCh2=0\r
+VCh3=0\r
+PreCh0=DISABLE\r
+PreCh1=DISABLE\r
+PreCh2=DISABLE\r
+PreCh3=DISABLE\r
+TxCh0=50\r
+TxCh1=50\r
+TxCh2=50\r
+TxCh3=50\r
+EqCh0=DISABLE\r
+EqCh1=DISABLE\r
+EqCh2=DISABLE\r
+EqCh3=DISABLE\r
+RxTermCh0=50\r
+RxTermCh1=50\r
+RxTermCh2=50\r
+RxTermCh3=50\r
+RxCoupCh0=AC\r
+RxCoupCh1=AC\r
+RxCoupCh2=AC\r
+RxCoupCh3=AC\r
+Loss=0\r
+CDRLoss=0\r
+TxTerm=50\r
+TxCoup=AC\r
+TxPllLoss=0\r
+TxInvCh0=NORMAL\r
+TxInvCh1=NORMAL\r
+TxInvCh2=NORMAL\r
+TxInvCh3=NORMAL\r
+RxInvCh0=NORMAL\r
+RxInvCh1=NORMAL\r
+RxInvCh2=NORMAL\r
+RxInvCh3=NORMAL\r
+RxModeCh0=NORMAL\r
+RxModeCh1=NORMAL\r
+RxModeCh2=NORMAL\r
+RxModeCh3=NORMAL\r
+Plus=1100000101\r
+Minus=0011111010\r
+Mask=1111111111\r
+Align=AUTO\r
+CTCCh0=NORMAL\r
+CTCCh1=NORMAL\r
+CTCCh2=NORMAL\r
+CTCCh3=NORMAL\r
+CC_MATCH1=0000000000\r
+CC_MATCH2=0000000000\r
+CC_MATCH3=0110111100\r
+CC_MATCH4=0001010000\r
+MinIPG=3\r
+High=9\r
+Low=7\r
+CC_MATCH_MODE=MATCH_3_4\r
+RxDataCh0=FALSE\r
+RxDataCh1=FALSE\r
+RxDataCh2=FALSE\r
+RxDataCh3=FALSE\r
+AlignerCh0=FALSE\r
+AlignerCh1=FALSE\r
+AlignerCh2=FALSE\r
+AlignerCh3=FALSE\r
+DetectCh0=FALSE\r
+DetectCh1=FALSE\r
+DetectCh2=FALSE\r
+DetectCh3=FALSE\r
+ELSMCh0=FALSE\r
+ELSMCh1=FALSE\r
+ELSMCh2=FALSE\r
+ELSMCh3=FALSE\r
+_teidleCh0=FALSE\r
+_teidleCh1=FALSE\r
+_teidleCh2=FALSE\r
+_teidleCh3=FALSE\r
+Ports0=FALSE\r
+rdoPorts0=Serial Loopback\r
+Ports1=FALSE\r
+Ports2=TRUE\r
+Ports3=FALSE\r
+Ports3_1=FALSE\r
+Ports4=FALSE\r
diff --git a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt b/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.txt
new file mode 100755 (executable)
index 0000000..6aad9a9
--- /dev/null
@@ -0,0 +1,49 @@
+\r
+# This file is used by the simulation model as well as the ispLEVER bitstream\r
+# generation process to automatically initialize the PCSC quad to the mode\r
+# selected in the IPexpress. This file is expected to be modified by the\r
+# end user to adjust the PCSC quad to the final design requirements.\r
+\r
+DEVICE_NAME "LFE2M100E"\r
+PROTOCOL    "GIGE" \r
+CH0_MODE    "SINGLE" \r
+CH1_MODE    "DISABLE" \r
+CH2_MODE    "DISABLE" \r
+CH3_MODE    "DISABLE" \r
+PLL_SRC     "REFCLK" \r
+DATARANGE     "MED" \r
+CH0_CDR_SRC     "REFCLK" \r
+CH0_DATA_WIDTH     "8" \r
+CH0_REFCK_MULT     "10X" \r
+#REFCLK_RATE     125.0\r
+#FPGAINTCLK_RATE     125.0\r
+CH0_TDRV_AMP     "0" \r
+CH0_TX_PRE     "DISABLE" \r
+CH0_RTERM_TX     "50" \r
+CH0_RX_EQ     "DISABLE" \r
+CH0_RTERM_RX     "50" \r
+CH0_RX_DCC     "AC" \r
+LOS_THRESHOLD     "0" \r
+PLL_TERM     "50" \r
+PLL_DCC     "AC" \r
+PLL_LOL_SET     "0" \r
+CH0_TX_SB     "NORMAL" \r
+CH0_RX_SB     "NORMAL" \r
+CH0_8B10B     "NORMAL" \r
+COMMA_A     "1100000101" \r
+COMMA_B     "0011111010" \r
+COMMA_M     "1111111111" \r
+CH0_COMMA_ALIGN     "AUTO" \r
+CH0_CTC_BYP     "NORMAL" \r
+CC_MATCH1     "0000000000" \r
+CC_MATCH2     "0000000000" \r
+CC_MATCH3     "0110111100" \r
+CC_MATCH4     "0001010000" \r
+CC_MATCH_MODE     "MATCH_3_4" \r
+CC_MIN_IPG     "3" \r
+CCHMARK     "9" \r
+CCLMARK     "7" \r
+OS_REFCK2CORE     "1"\r
+OS_PLLQCLKPORTS     "0"\r
+OS_INT_ALL     "0"\r
+\r
diff --git a/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd b/gbe_ecp2m/ipcores/serdes/serdes_gbe_0_extclock_8b.vhd
new file mode 100755 (executable)
index 0000000..c3d0eda
--- /dev/null
@@ -0,0 +1,2182 @@
+\r
+\r
+--synopsys translate_off\r
+\r
+library pcsc_work;\r
+use pcsc_work.all;\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+\r
+entity PCSC is\r
+GENERIC(\r
+  CONFIG_FILE : String  := "serdes_gbe_0_extclock_8b.txt"\r
+  );\r
+port (\r
+  HDINN0             : in std_logic;\r
+  HDINN1             : in std_logic;\r
+  HDINN2             : in std_logic;\r
+  HDINN3             : in std_logic;\r
+  HDINP0             : in std_logic;\r
+  HDINP1             : in std_logic;\r
+  HDINP2             : in std_logic;\r
+  HDINP3             : in std_logic;\r
+  REFCLKN             : in std_logic;\r
+  REFCLKP             : in std_logic;\r
+  CIN0             : in std_logic;\r
+  CIN1             : in std_logic;\r
+  CIN2             : in std_logic;\r
+  CIN3             : in std_logic;\r
+  CIN4             : in std_logic;\r
+  CIN5             : in std_logic;\r
+  CIN6             : in std_logic;\r
+  CIN7             : in std_logic;\r
+  CIN8             : in std_logic;\r
+  CIN9             : in std_logic;\r
+  CIN10             : in std_logic;\r
+  CIN11             : in std_logic;\r
+  CYAWSTN             : in std_logic;\r
+  FF_EBRD_CLK_0             : in std_logic;\r
+  FF_EBRD_CLK_1             : in std_logic;\r
+  FF_EBRD_CLK_2             : in std_logic;\r
+  FF_EBRD_CLK_3             : in std_logic;\r
+  FF_RXI_CLK_0             : in std_logic;\r
+  FF_RXI_CLK_1             : in std_logic;\r
+  FF_RXI_CLK_2             : in std_logic;\r
+  FF_RXI_CLK_3             : in std_logic;\r
+  FF_TX_D_0_0             : in std_logic;\r
+  FF_TX_D_0_1             : in std_logic;\r
+  FF_TX_D_0_2             : in std_logic;\r
+  FF_TX_D_0_3             : in std_logic;\r
+  FF_TX_D_0_4             : in std_logic;\r
+  FF_TX_D_0_5             : in std_logic;\r
+  FF_TX_D_0_6             : in std_logic;\r
+  FF_TX_D_0_7             : in std_logic;\r
+  FF_TX_D_0_8             : in std_logic;\r
+  FF_TX_D_0_9             : in std_logic;\r
+  FF_TX_D_0_10             : in std_logic;\r
+  FF_TX_D_0_11             : in std_logic;\r
+  FF_TX_D_0_12             : in std_logic;\r
+  FF_TX_D_0_13             : in std_logic;\r
+  FF_TX_D_0_14             : in std_logic;\r
+  FF_TX_D_0_15             : in std_logic;\r
+  FF_TX_D_0_16             : in std_logic;\r
+  FF_TX_D_0_17             : in std_logic;\r
+  FF_TX_D_0_18             : in std_logic;\r
+  FF_TX_D_0_19             : in std_logic;\r
+  FF_TX_D_0_20             : in std_logic;\r
+  FF_TX_D_0_21             : in std_logic;\r
+  FF_TX_D_0_22             : in std_logic;\r
+  FF_TX_D_0_23             : in std_logic;\r
+  FF_TX_D_1_0             : in std_logic;\r
+  FF_TX_D_1_1             : in std_logic;\r
+  FF_TX_D_1_2             : in std_logic;\r
+  FF_TX_D_1_3             : in std_logic;\r
+  FF_TX_D_1_4             : in std_logic;\r
+  FF_TX_D_1_5             : in std_logic;\r
+  FF_TX_D_1_6             : in std_logic;\r
+  FF_TX_D_1_7             : in std_logic;\r
+  FF_TX_D_1_8             : in std_logic;\r
+  FF_TX_D_1_9             : in std_logic;\r
+  FF_TX_D_1_10             : in std_logic;\r
+  FF_TX_D_1_11             : in std_logic;\r
+  FF_TX_D_1_12             : in std_logic;\r
+  FF_TX_D_1_13             : in std_logic;\r
+  FF_TX_D_1_14             : in std_logic;\r
+  FF_TX_D_1_15             : in std_logic;\r
+  FF_TX_D_1_16             : in std_logic;\r
+  FF_TX_D_1_17             : in std_logic;\r
+  FF_TX_D_1_18             : in std_logic;\r
+  FF_TX_D_1_19             : in std_logic;\r
+  FF_TX_D_1_20             : in std_logic;\r
+  FF_TX_D_1_21             : in std_logic;\r
+  FF_TX_D_1_22             : in std_logic;\r
+  FF_TX_D_1_23             : in std_logic;\r
+  FF_TX_D_2_0             : in std_logic;\r
+  FF_TX_D_2_1             : in std_logic;\r
+  FF_TX_D_2_2             : in std_logic;\r
+  FF_TX_D_2_3             : in std_logic;\r
+  FF_TX_D_2_4             : in std_logic;\r
+  FF_TX_D_2_5             : in std_logic;\r
+  FF_TX_D_2_6             : in std_logic;\r
+  FF_TX_D_2_7             : in std_logic;\r
+  FF_TX_D_2_8             : in std_logic;\r
+  FF_TX_D_2_9             : in std_logic;\r
+  FF_TX_D_2_10             : in std_logic;\r
+  FF_TX_D_2_11             : in std_logic;\r
+  FF_TX_D_2_12             : in std_logic;\r
+  FF_TX_D_2_13             : in std_logic;\r
+  FF_TX_D_2_14             : in std_logic;\r
+  FF_TX_D_2_15             : in std_logic;\r
+  FF_TX_D_2_16             : in std_logic;\r
+  FF_TX_D_2_17             : in std_logic;\r
+  FF_TX_D_2_18             : in std_logic;\r
+  FF_TX_D_2_19             : in std_logic;\r
+  FF_TX_D_2_20             : in std_logic;\r
+  FF_TX_D_2_21             : in std_logic;\r
+  FF_TX_D_2_22             : in std_logic;\r
+  FF_TX_D_2_23             : in std_logic;\r
+  FF_TX_D_3_0             : in std_logic;\r
+  FF_TX_D_3_1             : in std_logic;\r
+  FF_TX_D_3_2             : in std_logic;\r
+  FF_TX_D_3_3             : in std_logic;\r
+  FF_TX_D_3_4             : in std_logic;\r
+  FF_TX_D_3_5             : in std_logic;\r
+  FF_TX_D_3_6             : in std_logic;\r
+  FF_TX_D_3_7             : in std_logic;\r
+  FF_TX_D_3_8             : in std_logic;\r
+  FF_TX_D_3_9             : in std_logic;\r
+  FF_TX_D_3_10             : in std_logic;\r
+  FF_TX_D_3_11             : in std_logic;\r
+  FF_TX_D_3_12             : in std_logic;\r
+  FF_TX_D_3_13             : in std_logic;\r
+  FF_TX_D_3_14             : in std_logic;\r
+  FF_TX_D_3_15             : in std_logic;\r
+  FF_TX_D_3_16             : in std_logic;\r
+  FF_TX_D_3_17             : in std_logic;\r
+  FF_TX_D_3_18             : in std_logic;\r
+  FF_TX_D_3_19             : in std_logic;\r
+  FF_TX_D_3_20             : in std_logic;\r
+  FF_TX_D_3_21             : in std_logic;\r
+  FF_TX_D_3_22             : in std_logic;\r
+  FF_TX_D_3_23             : in std_logic;\r
+  FF_TXI_CLK_0             : in std_logic;\r
+  FF_TXI_CLK_1             : in std_logic;\r
+  FF_TXI_CLK_2             : in std_logic;\r
+  FF_TXI_CLK_3             : in std_logic;\r
+  FFC_CK_CORE_RX             : in std_logic;\r
+  FFC_CK_CORE_TX             : in std_logic;\r
+  FFC_EI_EN_0             : in std_logic;\r
+  FFC_EI_EN_1             : in std_logic;\r
+  FFC_EI_EN_2             : in std_logic;\r
+  FFC_EI_EN_3             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_0             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_1             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_2             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_3             : in std_logic;\r
+  FFC_FB_LOOPBACK_0             : in std_logic;\r
+  FFC_FB_LOOPBACK_1             : in std_logic;\r
+  FFC_FB_LOOPBACK_2             : in std_logic;\r
+  FFC_FB_LOOPBACK_3             : in std_logic;\r
+  FFC_LANE_RX_RST_0             : in std_logic;\r
+  FFC_LANE_RX_RST_1             : in std_logic;\r
+  FFC_LANE_RX_RST_2             : in std_logic;\r
+  FFC_LANE_RX_RST_3             : in std_logic;\r
+  FFC_LANE_TX_RST_0             : in std_logic;\r
+  FFC_LANE_TX_RST_1             : in std_logic;\r
+  FFC_LANE_TX_RST_2             : in std_logic;\r
+  FFC_LANE_TX_RST_3             : in std_logic;\r
+  FFC_MACRO_RST             : in std_logic;\r
+  FFC_PCI_DET_EN_0             : in std_logic;\r
+  FFC_PCI_DET_EN_1             : in std_logic;\r
+  FFC_PCI_DET_EN_2             : in std_logic;\r
+  FFC_PCI_DET_EN_3             : in std_logic;\r
+  FFC_PCIE_CT_0             : in std_logic;\r
+  FFC_PCIE_CT_1             : in std_logic;\r
+  FFC_PCIE_CT_2             : in std_logic;\r
+  FFC_PCIE_CT_3             : in std_logic;\r
+  FFC_PFIFO_CLR_0             : in std_logic;\r
+  FFC_PFIFO_CLR_1             : in std_logic;\r
+  FFC_PFIFO_CLR_2             : in std_logic;\r
+  FFC_PFIFO_CLR_3             : in std_logic;\r
+  FFC_QUAD_RST             : in std_logic;\r
+  FFC_RRST_0             : in std_logic;\r
+  FFC_RRST_1             : in std_logic;\r
+  FFC_RRST_2             : in std_logic;\r
+  FFC_RRST_3             : in std_logic;\r
+  FFC_RXPWDNB_0             : in std_logic;\r
+  FFC_RXPWDNB_1             : in std_logic;\r
+  FFC_RXPWDNB_2             : in std_logic;\r
+  FFC_RXPWDNB_3             : in std_logic;\r
+  FFC_SB_INV_RX_0             : in std_logic;\r
+  FFC_SB_INV_RX_1             : in std_logic;\r
+  FFC_SB_INV_RX_2             : in std_logic;\r
+  FFC_SB_INV_RX_3             : in std_logic;\r
+  FFC_SB_PFIFO_LP_0             : in std_logic;\r
+  FFC_SB_PFIFO_LP_1             : in std_logic;\r
+  FFC_SB_PFIFO_LP_2             : in std_logic;\r
+  FFC_SB_PFIFO_LP_3             : in std_logic;\r
+  FFC_SIGNAL_DETECT_0             : in std_logic;\r
+  FFC_SIGNAL_DETECT_1             : in std_logic;\r
+  FFC_SIGNAL_DETECT_2             : in std_logic;\r
+  FFC_SIGNAL_DETECT_3             : in std_logic;\r
+  FFC_TRST             : in std_logic;\r
+  FFC_TXPWDNB_0             : in std_logic;\r
+  FFC_TXPWDNB_1             : in std_logic;\r
+  FFC_TXPWDNB_2             : in std_logic;\r
+  FFC_TXPWDNB_3             : in std_logic;\r
+  SCIADDR0             : in std_logic;\r
+  SCIADDR1             : in std_logic;\r
+  SCIADDR2             : in std_logic;\r
+  SCIADDR3             : in std_logic;\r
+  SCIADDR4             : in std_logic;\r
+  SCIADDR5             : in std_logic;\r
+  SCIENAUX             : in std_logic;\r
+  SCIENCH0             : in std_logic;\r
+  SCIENCH1             : in std_logic;\r
+  SCIENCH2             : in std_logic;\r
+  SCIENCH3             : in std_logic;\r
+  SCIRD             : in std_logic;\r
+  SCISELAUX             : in std_logic;\r
+  SCISELCH0             : in std_logic;\r
+  SCISELCH1             : in std_logic;\r
+  SCISELCH2             : in std_logic;\r
+  SCISELCH3             : in std_logic;\r
+  SCIWDATA0             : in std_logic;\r
+  SCIWDATA1             : in std_logic;\r
+  SCIWDATA2             : in std_logic;\r
+  SCIWDATA3             : in std_logic;\r
+  SCIWDATA4             : in std_logic;\r
+  SCIWDATA5             : in std_logic;\r
+  SCIWDATA6             : in std_logic;\r
+  SCIWDATA7             : in std_logic;\r
+  SCIWSTN             : in std_logic;\r
+  HDOUTN0             : out std_logic;\r
+  HDOUTN1             : out std_logic;\r
+  HDOUTN2             : out std_logic;\r
+  HDOUTN3             : out std_logic;\r
+  HDOUTP0             : out std_logic;\r
+  HDOUTP1             : out std_logic;\r
+  HDOUTP2             : out std_logic;\r
+  HDOUTP3             : out std_logic;\r
+  COUT0             : out std_logic;\r
+  COUT1             : out std_logic;\r
+  COUT2             : out std_logic;\r
+  COUT3             : out std_logic;\r
+  COUT4             : out std_logic;\r
+  COUT5             : out std_logic;\r
+  COUT6             : out std_logic;\r
+  COUT7             : out std_logic;\r
+  COUT8             : out std_logic;\r
+  COUT9             : out std_logic;\r
+  COUT10             : out std_logic;\r
+  COUT11             : out std_logic;\r
+  COUT12             : out std_logic;\r
+  COUT13             : out std_logic;\r
+  COUT14             : out std_logic;\r
+  COUT15             : out std_logic;\r
+  COUT16             : out std_logic;\r
+  COUT17             : out std_logic;\r
+  COUT18             : out std_logic;\r
+  COUT19             : out std_logic;\r
+  FF_RX_D_0_0             : out std_logic;\r
+  FF_RX_D_0_1             : out std_logic;\r
+  FF_RX_D_0_2             : out std_logic;\r
+  FF_RX_D_0_3             : out std_logic;\r
+  FF_RX_D_0_4             : out std_logic;\r
+  FF_RX_D_0_5             : out std_logic;\r
+  FF_RX_D_0_6             : out std_logic;\r
+  FF_RX_D_0_7             : out std_logic;\r
+  FF_RX_D_0_8             : out std_logic;\r
+  FF_RX_D_0_9             : out std_logic;\r
+  FF_RX_D_0_10             : out std_logic;\r
+  FF_RX_D_0_11             : out std_logic;\r
+  FF_RX_D_0_12             : out std_logic;\r
+  FF_RX_D_0_13             : out std_logic;\r
+  FF_RX_D_0_14             : out std_logic;\r
+  FF_RX_D_0_15             : out std_logic;\r
+  FF_RX_D_0_16             : out std_logic;\r
+  FF_RX_D_0_17             : out std_logic;\r
+  FF_RX_D_0_18             : out std_logic;\r
+  FF_RX_D_0_19             : out std_logic;\r
+  FF_RX_D_0_20             : out std_logic;\r
+  FF_RX_D_0_21             : out std_logic;\r
+  FF_RX_D_0_22             : out std_logic;\r
+  FF_RX_D_0_23             : out std_logic;\r
+  FF_RX_D_1_0             : out std_logic;\r
+  FF_RX_D_1_1             : out std_logic;\r
+  FF_RX_D_1_2             : out std_logic;\r
+  FF_RX_D_1_3             : out std_logic;\r
+  FF_RX_D_1_4             : out std_logic;\r
+  FF_RX_D_1_5             : out std_logic;\r
+  FF_RX_D_1_6             : out std_logic;\r
+  FF_RX_D_1_7             : out std_logic;\r
+  FF_RX_D_1_8             : out std_logic;\r
+  FF_RX_D_1_9             : out std_logic;\r
+  FF_RX_D_1_10             : out std_logic;\r
+  FF_RX_D_1_11             : out std_logic;\r
+  FF_RX_D_1_12             : out std_logic;\r
+  FF_RX_D_1_13             : out std_logic;\r
+  FF_RX_D_1_14             : out std_logic;\r
+  FF_RX_D_1_15             : out std_logic;\r
+  FF_RX_D_1_16             : out std_logic;\r
+  FF_RX_D_1_17             : out std_logic;\r
+  FF_RX_D_1_18             : out std_logic;\r
+  FF_RX_D_1_19             : out std_logic;\r
+  FF_RX_D_1_20             : out std_logic;\r
+  FF_RX_D_1_21             : out std_logic;\r
+  FF_RX_D_1_22             : out std_logic;\r
+  FF_RX_D_1_23             : out std_logic;\r
+  FF_RX_D_2_0             : out std_logic;\r
+  FF_RX_D_2_1             : out std_logic;\r
+  FF_RX_D_2_2             : out std_logic;\r
+  FF_RX_D_2_3             : out std_logic;\r
+  FF_RX_D_2_4             : out std_logic;\r
+  FF_RX_D_2_5             : out std_logic;\r
+  FF_RX_D_2_6             : out std_logic;\r
+  FF_RX_D_2_7             : out std_logic;\r
+  FF_RX_D_2_8             : out std_logic;\r
+  FF_RX_D_2_9             : out std_logic;\r
+  FF_RX_D_2_10             : out std_logic;\r
+  FF_RX_D_2_11             : out std_logic;\r
+  FF_RX_D_2_12             : out std_logic;\r
+  FF_RX_D_2_13             : out std_logic;\r
+  FF_RX_D_2_14             : out std_logic;\r
+  FF_RX_D_2_15             : out std_logic;\r
+  FF_RX_D_2_16             : out std_logic;\r
+  FF_RX_D_2_17             : out std_logic;\r
+  FF_RX_D_2_18             : out std_logic;\r
+  FF_RX_D_2_19             : out std_logic;\r
+  FF_RX_D_2_20             : out std_logic;\r
+  FF_RX_D_2_21             : out std_logic;\r
+  FF_RX_D_2_22             : out std_logic;\r
+  FF_RX_D_2_23             : out std_logic;\r
+  FF_RX_D_3_0             : out std_logic;\r
+  FF_RX_D_3_1             : out std_logic;\r
+  FF_RX_D_3_2             : out std_logic;\r
+  FF_RX_D_3_3             : out std_logic;\r
+  FF_RX_D_3_4             : out std_logic;\r
+  FF_RX_D_3_5             : out std_logic;\r
+  FF_RX_D_3_6             : out std_logic;\r
+  FF_RX_D_3_7             : out std_logic;\r
+  FF_RX_D_3_8             : out std_logic;\r
+  FF_RX_D_3_9             : out std_logic;\r
+  FF_RX_D_3_10             : out std_logic;\r
+  FF_RX_D_3_11             : out std_logic;\r
+  FF_RX_D_3_12             : out std_logic;\r
+  FF_RX_D_3_13             : out std_logic;\r
+  FF_RX_D_3_14             : out std_logic;\r
+  FF_RX_D_3_15             : out std_logic;\r
+  FF_RX_D_3_16             : out std_logic;\r
+  FF_RX_D_3_17             : out std_logic;\r
+  FF_RX_D_3_18             : out std_logic;\r
+  FF_RX_D_3_19             : out std_logic;\r
+  FF_RX_D_3_20             : out std_logic;\r
+  FF_RX_D_3_21             : out std_logic;\r
+  FF_RX_D_3_22             : out std_logic;\r
+  FF_RX_D_3_23             : out std_logic;\r
+  FF_RX_F_CLK_0             : out std_logic;\r
+  FF_RX_F_CLK_1             : out std_logic;\r
+  FF_RX_F_CLK_2             : out std_logic;\r
+  FF_RX_F_CLK_3             : out std_logic;\r
+  FF_RX_H_CLK_0             : out std_logic;\r
+  FF_RX_H_CLK_1             : out std_logic;\r
+  FF_RX_H_CLK_2             : out std_logic;\r
+  FF_RX_H_CLK_3             : out std_logic;\r
+  FF_RX_Q_CLK_0             : out std_logic;\r
+  FF_RX_Q_CLK_1             : out std_logic;\r
+  FF_RX_Q_CLK_2             : out std_logic;\r
+  FF_RX_Q_CLK_3             : out std_logic;\r
+  FF_TX_F_CLK             : out std_logic;\r
+  FF_TX_H_CLK             : out std_logic;\r
+  FF_TX_Q_CLK             : out std_logic;\r
+  FFS_CC_OVERRUN_0             : out std_logic;\r
+  FFS_CC_OVERRUN_1             : out std_logic;\r
+  FFS_CC_OVERRUN_2             : out std_logic;\r
+  FFS_CC_OVERRUN_3             : out std_logic;\r
+  FFS_CC_UNDERRUN_0             : out std_logic;\r
+  FFS_CC_UNDERRUN_1             : out std_logic;\r
+  FFS_CC_UNDERRUN_2             : out std_logic;\r
+  FFS_CC_UNDERRUN_3             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_0             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_1             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_2             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_3             : out std_logic;\r
+  FFS_PCIE_CON_0             : out std_logic;\r
+  FFS_PCIE_CON_1             : out std_logic;\r
+  FFS_PCIE_CON_2             : out std_logic;\r
+  FFS_PCIE_CON_3             : out std_logic;\r
+  FFS_PCIE_DONE_0             : out std_logic;\r
+  FFS_PCIE_DONE_1             : out std_logic;\r
+  FFS_PCIE_DONE_2             : out std_logic;\r
+  FFS_PCIE_DONE_3             : out std_logic;\r
+  FFS_RLOS_LO_0             : out std_logic;\r
+  FFS_RLOS_LO_1             : out std_logic;\r
+  FFS_RLOS_LO_2             : out std_logic;\r
+  FFS_RLOS_LO_3             : out std_logic;\r
+  OOB_OUT_0             : out std_logic;\r
+  OOB_OUT_1             : out std_logic;\r
+  OOB_OUT_2             : out std_logic;\r
+  OOB_OUT_3             : out std_logic;\r
+  REFCK2CORE             : out std_logic;\r
+  SCIINT             : out std_logic;\r
+  SCIRDATA0             : out std_logic;\r
+  SCIRDATA1             : out std_logic;\r
+  SCIRDATA2             : out std_logic;\r
+  SCIRDATA3             : out std_logic;\r
+  SCIRDATA4             : out std_logic;\r
+  SCIRDATA5             : out std_logic;\r
+  SCIRDATA6             : out std_logic;\r
+  SCIRDATA7             : out std_logic;\r
+  FFS_PLOL             : out std_logic;\r
+  FFS_RLOL_0             : out std_logic;\r
+  FFS_RLOL_1             : out std_logic;\r
+  FFS_RLOL_2             : out std_logic;\r
+  FFS_RLOL_3             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_0             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_1             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_2             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_3             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_0             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_1             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_2             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_3             : out std_logic\r
+);\r
+\r
+end PCSC;\r
+\r
+architecture PCSC_arch of PCSC is\r
+\r
+component PCSC_sim\r
+GENERIC(\r
+  CONFIG_FILE : String\r
+  );\r
+port (\r
+  HDINN0             : in std_logic;\r
+  HDINN1             : in std_logic;\r
+  HDINN2             : in std_logic;\r
+  HDINN3             : in std_logic;\r
+  HDINP0             : in std_logic;\r
+  HDINP1             : in std_logic;\r
+  HDINP2             : in std_logic;\r
+  HDINP3             : in std_logic;\r
+  REFCLKN             : in std_logic;\r
+  REFCLKP             : in std_logic;\r
+  CIN0             : in std_logic;\r
+  CIN1             : in std_logic;\r
+  CIN2             : in std_logic;\r
+  CIN3             : in std_logic;\r
+  CIN4             : in std_logic;\r
+  CIN5             : in std_logic;\r
+  CIN6             : in std_logic;\r
+  CIN7             : in std_logic;\r
+  CIN8             : in std_logic;\r
+  CIN9             : in std_logic;\r
+  CIN10             : in std_logic;\r
+  CIN11             : in std_logic;\r
+  CYAWSTN             : in std_logic;\r
+  FF_EBRD_CLK_0             : in std_logic;\r
+  FF_EBRD_CLK_1             : in std_logic;\r
+  FF_EBRD_CLK_2             : in std_logic;\r
+  FF_EBRD_CLK_3             : in std_logic;\r
+  FF_RXI_CLK_0             : in std_logic;\r
+  FF_RXI_CLK_1             : in std_logic;\r
+  FF_RXI_CLK_2             : in std_logic;\r
+  FF_RXI_CLK_3             : in std_logic;\r
+  FF_TX_D_0_0             : in std_logic;\r
+  FF_TX_D_0_1             : in std_logic;\r
+  FF_TX_D_0_2             : in std_logic;\r
+  FF_TX_D_0_3             : in std_logic;\r
+  FF_TX_D_0_4             : in std_logic;\r
+  FF_TX_D_0_5             : in std_logic;\r
+  FF_TX_D_0_6             : in std_logic;\r
+  FF_TX_D_0_7             : in std_logic;\r
+  FF_TX_D_0_8             : in std_logic;\r
+  FF_TX_D_0_9             : in std_logic;\r
+  FF_TX_D_0_10             : in std_logic;\r
+  FF_TX_D_0_11             : in std_logic;\r
+  FF_TX_D_0_12             : in std_logic;\r
+  FF_TX_D_0_13             : in std_logic;\r
+  FF_TX_D_0_14             : in std_logic;\r
+  FF_TX_D_0_15             : in std_logic;\r
+  FF_TX_D_0_16             : in std_logic;\r
+  FF_TX_D_0_17             : in std_logic;\r
+  FF_TX_D_0_18             : in std_logic;\r
+  FF_TX_D_0_19             : in std_logic;\r
+  FF_TX_D_0_20             : in std_logic;\r
+  FF_TX_D_0_21             : in std_logic;\r
+  FF_TX_D_0_22             : in std_logic;\r
+  FF_TX_D_0_23             : in std_logic;\r
+  FF_TX_D_1_0             : in std_logic;\r
+  FF_TX_D_1_1             : in std_logic;\r
+  FF_TX_D_1_2             : in std_logic;\r
+  FF_TX_D_1_3             : in std_logic;\r
+  FF_TX_D_1_4             : in std_logic;\r
+  FF_TX_D_1_5             : in std_logic;\r
+  FF_TX_D_1_6             : in std_logic;\r
+  FF_TX_D_1_7             : in std_logic;\r
+  FF_TX_D_1_8             : in std_logic;\r
+  FF_TX_D_1_9             : in std_logic;\r
+  FF_TX_D_1_10             : in std_logic;\r
+  FF_TX_D_1_11             : in std_logic;\r
+  FF_TX_D_1_12             : in std_logic;\r
+  FF_TX_D_1_13             : in std_logic;\r
+  FF_TX_D_1_14             : in std_logic;\r
+  FF_TX_D_1_15             : in std_logic;\r
+  FF_TX_D_1_16             : in std_logic;\r
+  FF_TX_D_1_17             : in std_logic;\r
+  FF_TX_D_1_18             : in std_logic;\r
+  FF_TX_D_1_19             : in std_logic;\r
+  FF_TX_D_1_20             : in std_logic;\r
+  FF_TX_D_1_21             : in std_logic;\r
+  FF_TX_D_1_22             : in std_logic;\r
+  FF_TX_D_1_23             : in std_logic;\r
+  FF_TX_D_2_0             : in std_logic;\r
+  FF_TX_D_2_1             : in std_logic;\r
+  FF_TX_D_2_2             : in std_logic;\r
+  FF_TX_D_2_3             : in std_logic;\r
+  FF_TX_D_2_4             : in std_logic;\r
+  FF_TX_D_2_5             : in std_logic;\r
+  FF_TX_D_2_6             : in std_logic;\r
+  FF_TX_D_2_7             : in std_logic;\r
+  FF_TX_D_2_8             : in std_logic;\r
+  FF_TX_D_2_9             : in std_logic;\r
+  FF_TX_D_2_10             : in std_logic;\r
+  FF_TX_D_2_11             : in std_logic;\r
+  FF_TX_D_2_12             : in std_logic;\r
+  FF_TX_D_2_13             : in std_logic;\r
+  FF_TX_D_2_14             : in std_logic;\r
+  FF_TX_D_2_15             : in std_logic;\r
+  FF_TX_D_2_16             : in std_logic;\r
+  FF_TX_D_2_17             : in std_logic;\r
+  FF_TX_D_2_18             : in std_logic;\r
+  FF_TX_D_2_19             : in std_logic;\r
+  FF_TX_D_2_20             : in std_logic;\r
+  FF_TX_D_2_21             : in std_logic;\r
+  FF_TX_D_2_22             : in std_logic;\r
+  FF_TX_D_2_23             : in std_logic;\r
+  FF_TX_D_3_0             : in std_logic;\r
+  FF_TX_D_3_1             : in std_logic;\r
+  FF_TX_D_3_2             : in std_logic;\r
+  FF_TX_D_3_3             : in std_logic;\r
+  FF_TX_D_3_4             : in std_logic;\r
+  FF_TX_D_3_5             : in std_logic;\r
+  FF_TX_D_3_6             : in std_logic;\r
+  FF_TX_D_3_7             : in std_logic;\r
+  FF_TX_D_3_8             : in std_logic;\r
+  FF_TX_D_3_9             : in std_logic;\r
+  FF_TX_D_3_10             : in std_logic;\r
+  FF_TX_D_3_11             : in std_logic;\r
+  FF_TX_D_3_12             : in std_logic;\r
+  FF_TX_D_3_13             : in std_logic;\r
+  FF_TX_D_3_14             : in std_logic;\r
+  FF_TX_D_3_15             : in std_logic;\r
+  FF_TX_D_3_16             : in std_logic;\r
+  FF_TX_D_3_17             : in std_logic;\r
+  FF_TX_D_3_18             : in std_logic;\r
+  FF_TX_D_3_19             : in std_logic;\r
+  FF_TX_D_3_20             : in std_logic;\r
+  FF_TX_D_3_21             : in std_logic;\r
+  FF_TX_D_3_22             : in std_logic;\r
+  FF_TX_D_3_23             : in std_logic;\r
+  FF_TXI_CLK_0             : in std_logic;\r
+  FF_TXI_CLK_1             : in std_logic;\r
+  FF_TXI_CLK_2             : in std_logic;\r
+  FF_TXI_CLK_3             : in std_logic;\r
+  FFC_CK_CORE_RX             : in std_logic;\r
+  FFC_CK_CORE_TX             : in std_logic;\r
+  FFC_EI_EN_0             : in std_logic;\r
+  FFC_EI_EN_1             : in std_logic;\r
+  FFC_EI_EN_2             : in std_logic;\r
+  FFC_EI_EN_3             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_0             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_1             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_2             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_3             : in std_logic;\r
+  FFC_FB_LOOPBACK_0             : in std_logic;\r
+  FFC_FB_LOOPBACK_1             : in std_logic;\r
+  FFC_FB_LOOPBACK_2             : in std_logic;\r
+  FFC_FB_LOOPBACK_3             : in std_logic;\r
+  FFC_LANE_RX_RST_0             : in std_logic;\r
+  FFC_LANE_RX_RST_1             : in std_logic;\r
+  FFC_LANE_RX_RST_2             : in std_logic;\r
+  FFC_LANE_RX_RST_3             : in std_logic;\r
+  FFC_LANE_TX_RST_0             : in std_logic;\r
+  FFC_LANE_TX_RST_1             : in std_logic;\r
+  FFC_LANE_TX_RST_2             : in std_logic;\r
+  FFC_LANE_TX_RST_3             : in std_logic;\r
+  FFC_MACRO_RST             : in std_logic;\r
+  FFC_PCI_DET_EN_0             : in std_logic;\r
+  FFC_PCI_DET_EN_1             : in std_logic;\r
+  FFC_PCI_DET_EN_2             : in std_logic;\r
+  FFC_PCI_DET_EN_3             : in std_logic;\r
+  FFC_PCIE_CT_0             : in std_logic;\r
+  FFC_PCIE_CT_1             : in std_logic;\r
+  FFC_PCIE_CT_2             : in std_logic;\r
+  FFC_PCIE_CT_3             : in std_logic;\r
+  FFC_PFIFO_CLR_0             : in std_logic;\r
+  FFC_PFIFO_CLR_1             : in std_logic;\r
+  FFC_PFIFO_CLR_2             : in std_logic;\r
+  FFC_PFIFO_CLR_3             : in std_logic;\r
+  FFC_QUAD_RST             : in std_logic;\r
+  FFC_RRST_0             : in std_logic;\r
+  FFC_RRST_1             : in std_logic;\r
+  FFC_RRST_2             : in std_logic;\r
+  FFC_RRST_3             : in std_logic;\r
+  FFC_RXPWDNB_0             : in std_logic;\r
+  FFC_RXPWDNB_1             : in std_logic;\r
+  FFC_RXPWDNB_2             : in std_logic;\r
+  FFC_RXPWDNB_3             : in std_logic;\r
+  FFC_SB_INV_RX_0             : in std_logic;\r
+  FFC_SB_INV_RX_1             : in std_logic;\r
+  FFC_SB_INV_RX_2             : in std_logic;\r
+  FFC_SB_INV_RX_3             : in std_logic;\r
+  FFC_SB_PFIFO_LP_0             : in std_logic;\r
+  FFC_SB_PFIFO_LP_1             : in std_logic;\r
+  FFC_SB_PFIFO_LP_2             : in std_logic;\r
+  FFC_SB_PFIFO_LP_3             : in std_logic;\r
+  FFC_SIGNAL_DETECT_0             : in std_logic;\r
+  FFC_SIGNAL_DETECT_1             : in std_logic;\r
+  FFC_SIGNAL_DETECT_2             : in std_logic;\r
+  FFC_SIGNAL_DETECT_3             : in std_logic;\r
+  FFC_TRST             : in std_logic;\r
+  FFC_TXPWDNB_0             : in std_logic;\r
+  FFC_TXPWDNB_1             : in std_logic;\r
+  FFC_TXPWDNB_2             : in std_logic;\r
+  FFC_TXPWDNB_3             : in std_logic;\r
+  SCIADDR0             : in std_logic;\r
+  SCIADDR1             : in std_logic;\r
+  SCIADDR2             : in std_logic;\r
+  SCIADDR3             : in std_logic;\r
+  SCIADDR4             : in std_logic;\r
+  SCIADDR5             : in std_logic;\r
+  SCIENAUX             : in std_logic;\r
+  SCIENCH0             : in std_logic;\r
+  SCIENCH1             : in std_logic;\r
+  SCIENCH2             : in std_logic;\r
+  SCIENCH3             : in std_logic;\r
+  SCIRD             : in std_logic;\r
+  SCISELAUX             : in std_logic;\r
+  SCISELCH0             : in std_logic;\r
+  SCISELCH1             : in std_logic;\r
+  SCISELCH2             : in std_logic;\r
+  SCISELCH3             : in std_logic;\r
+  SCIWDATA0             : in std_logic;\r
+  SCIWDATA1             : in std_logic;\r
+  SCIWDATA2             : in std_logic;\r
+  SCIWDATA3             : in std_logic;\r
+  SCIWDATA4             : in std_logic;\r
+  SCIWDATA5             : in std_logic;\r
+  SCIWDATA6             : in std_logic;\r
+  SCIWDATA7             : in std_logic;\r
+  SCIWSTN             : in std_logic;\r
+  HDOUTN0             : out std_logic;\r
+  HDOUTN1             : out std_logic;\r
+  HDOUTN2             : out std_logic;\r
+  HDOUTN3             : out std_logic;\r
+  HDOUTP0             : out std_logic;\r
+  HDOUTP1             : out std_logic;\r
+  HDOUTP2             : out std_logic;\r
+  HDOUTP3             : out std_logic;\r
+  COUT0             : out std_logic;\r
+  COUT1             : out std_logic;\r
+  COUT2             : out std_logic;\r
+  COUT3             : out std_logic;\r
+  COUT4             : out std_logic;\r
+  COUT5             : out std_logic;\r
+  COUT6             : out std_logic;\r
+  COUT7             : out std_logic;\r
+  COUT8             : out std_logic;\r
+  COUT9             : out std_logic;\r
+  COUT10             : out std_logic;\r
+  COUT11             : out std_logic;\r
+  COUT12             : out std_logic;\r
+  COUT13             : out std_logic;\r
+  COUT14             : out std_logic;\r
+  COUT15             : out std_logic;\r
+  COUT16             : out std_logic;\r
+  COUT17             : out std_logic;\r
+  COUT18             : out std_logic;\r
+  COUT19             : out std_logic;\r
+  FF_RX_D_0_0             : out std_logic;\r
+  FF_RX_D_0_1             : out std_logic;\r
+  FF_RX_D_0_2             : out std_logic;\r
+  FF_RX_D_0_3             : out std_logic;\r
+  FF_RX_D_0_4             : out std_logic;\r
+  FF_RX_D_0_5             : out std_logic;\r
+  FF_RX_D_0_6             : out std_logic;\r
+  FF_RX_D_0_7             : out std_logic;\r
+  FF_RX_D_0_8             : out std_logic;\r
+  FF_RX_D_0_9             : out std_logic;\r
+  FF_RX_D_0_10             : out std_logic;\r
+  FF_RX_D_0_11             : out std_logic;\r
+  FF_RX_D_0_12             : out std_logic;\r
+  FF_RX_D_0_13             : out std_logic;\r
+  FF_RX_D_0_14             : out std_logic;\r
+  FF_RX_D_0_15             : out std_logic;\r
+  FF_RX_D_0_16             : out std_logic;\r
+  FF_RX_D_0_17             : out std_logic;\r
+  FF_RX_D_0_18             : out std_logic;\r
+  FF_RX_D_0_19             : out std_logic;\r
+  FF_RX_D_0_20             : out std_logic;\r
+  FF_RX_D_0_21             : out std_logic;\r
+  FF_RX_D_0_22             : out std_logic;\r
+  FF_RX_D_0_23             : out std_logic;\r
+  FF_RX_D_1_0             : out std_logic;\r
+  FF_RX_D_1_1             : out std_logic;\r
+  FF_RX_D_1_2             : out std_logic;\r
+  FF_RX_D_1_3             : out std_logic;\r
+  FF_RX_D_1_4             : out std_logic;\r
+  FF_RX_D_1_5             : out std_logic;\r
+  FF_RX_D_1_6             : out std_logic;\r
+  FF_RX_D_1_7             : out std_logic;\r
+  FF_RX_D_1_8             : out std_logic;\r
+  FF_RX_D_1_9             : out std_logic;\r
+  FF_RX_D_1_10             : out std_logic;\r
+  FF_RX_D_1_11             : out std_logic;\r
+  FF_RX_D_1_12             : out std_logic;\r
+  FF_RX_D_1_13             : out std_logic;\r
+  FF_RX_D_1_14             : out std_logic;\r
+  FF_RX_D_1_15             : out std_logic;\r
+  FF_RX_D_1_16             : out std_logic;\r
+  FF_RX_D_1_17             : out std_logic;\r
+  FF_RX_D_1_18             : out std_logic;\r
+  FF_RX_D_1_19             : out std_logic;\r
+  FF_RX_D_1_20             : out std_logic;\r
+  FF_RX_D_1_21             : out std_logic;\r
+  FF_RX_D_1_22             : out std_logic;\r
+  FF_RX_D_1_23             : out std_logic;\r
+  FF_RX_D_2_0             : out std_logic;\r
+  FF_RX_D_2_1             : out std_logic;\r
+  FF_RX_D_2_2             : out std_logic;\r
+  FF_RX_D_2_3             : out std_logic;\r
+  FF_RX_D_2_4             : out std_logic;\r
+  FF_RX_D_2_5             : out std_logic;\r
+  FF_RX_D_2_6             : out std_logic;\r
+  FF_RX_D_2_7             : out std_logic;\r
+  FF_RX_D_2_8             : out std_logic;\r
+  FF_RX_D_2_9             : out std_logic;\r
+  FF_RX_D_2_10             : out std_logic;\r
+  FF_RX_D_2_11             : out std_logic;\r
+  FF_RX_D_2_12             : out std_logic;\r
+  FF_RX_D_2_13             : out std_logic;\r
+  FF_RX_D_2_14             : out std_logic;\r
+  FF_RX_D_2_15             : out std_logic;\r
+  FF_RX_D_2_16             : out std_logic;\r
+  FF_RX_D_2_17             : out std_logic;\r
+  FF_RX_D_2_18             : out std_logic;\r
+  FF_RX_D_2_19             : out std_logic;\r
+  FF_RX_D_2_20             : out std_logic;\r
+  FF_RX_D_2_21             : out std_logic;\r
+  FF_RX_D_2_22             : out std_logic;\r
+  FF_RX_D_2_23             : out std_logic;\r
+  FF_RX_D_3_0             : out std_logic;\r
+  FF_RX_D_3_1             : out std_logic;\r
+  FF_RX_D_3_2             : out std_logic;\r
+  FF_RX_D_3_3             : out std_logic;\r
+  FF_RX_D_3_4             : out std_logic;\r
+  FF_RX_D_3_5             : out std_logic;\r
+  FF_RX_D_3_6             : out std_logic;\r
+  FF_RX_D_3_7             : out std_logic;\r
+  FF_RX_D_3_8             : out std_logic;\r
+  FF_RX_D_3_9             : out std_logic;\r
+  FF_RX_D_3_10             : out std_logic;\r
+  FF_RX_D_3_11             : out std_logic;\r
+  FF_RX_D_3_12             : out std_logic;\r
+  FF_RX_D_3_13             : out std_logic;\r
+  FF_RX_D_3_14             : out std_logic;\r
+  FF_RX_D_3_15             : out std_logic;\r
+  FF_RX_D_3_16             : out std_logic;\r
+  FF_RX_D_3_17             : out std_logic;\r
+  FF_RX_D_3_18             : out std_logic;\r
+  FF_RX_D_3_19             : out std_logic;\r
+  FF_RX_D_3_20             : out std_logic;\r
+  FF_RX_D_3_21             : out std_logic;\r
+  FF_RX_D_3_22             : out std_logic;\r
+  FF_RX_D_3_23             : out std_logic;\r
+  FF_RX_F_CLK_0             : out std_logic;\r
+  FF_RX_F_CLK_1             : out std_logic;\r
+  FF_RX_F_CLK_2             : out std_logic;\r
+  FF_RX_F_CLK_3             : out std_logic;\r
+  FF_RX_H_CLK_0             : out std_logic;\r
+  FF_RX_H_CLK_1             : out std_logic;\r
+  FF_RX_H_CLK_2             : out std_logic;\r
+  FF_RX_H_CLK_3             : out std_logic;\r
+  FF_RX_Q_CLK_0             : out std_logic;\r
+  FF_RX_Q_CLK_1             : out std_logic;\r
+  FF_RX_Q_CLK_2             : out std_logic;\r
+  FF_RX_Q_CLK_3             : out std_logic;\r
+  FF_TX_F_CLK             : out std_logic;\r
+  FF_TX_H_CLK             : out std_logic;\r
+  FF_TX_Q_CLK             : out std_logic;\r
+  FFS_CC_OVERRUN_0             : out std_logic;\r
+  FFS_CC_OVERRUN_1             : out std_logic;\r
+  FFS_CC_OVERRUN_2             : out std_logic;\r
+  FFS_CC_OVERRUN_3             : out std_logic;\r
+  FFS_CC_UNDERRUN_0             : out std_logic;\r
+  FFS_CC_UNDERRUN_1             : out std_logic;\r
+  FFS_CC_UNDERRUN_2             : out std_logic;\r
+  FFS_CC_UNDERRUN_3             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_0             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_1             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_2             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_3             : out std_logic;\r
+  FFS_PCIE_CON_0             : out std_logic;\r
+  FFS_PCIE_CON_1             : out std_logic;\r
+  FFS_PCIE_CON_2             : out std_logic;\r
+  FFS_PCIE_CON_3             : out std_logic;\r
+  FFS_PCIE_DONE_0             : out std_logic;\r
+  FFS_PCIE_DONE_1             : out std_logic;\r
+  FFS_PCIE_DONE_2             : out std_logic;\r
+  FFS_PCIE_DONE_3             : out std_logic;\r
+  FFS_RLOS_LO_0             : out std_logic;\r
+  FFS_RLOS_LO_1             : out std_logic;\r
+  FFS_RLOS_LO_2             : out std_logic;\r
+  FFS_RLOS_LO_3             : out std_logic;\r
+  OOB_OUT_0             : out std_logic;\r
+  OOB_OUT_1             : out std_logic;\r
+  OOB_OUT_2             : out std_logic;\r
+  OOB_OUT_3             : out std_logic;\r
+  REFCK2CORE             : out std_logic;\r
+  SCIINT             : out std_logic;\r
+  SCIRDATA0             : out std_logic;\r
+  SCIRDATA1             : out std_logic;\r
+  SCIRDATA2             : out std_logic;\r
+  SCIRDATA3             : out std_logic;\r
+  SCIRDATA4             : out std_logic;\r
+  SCIRDATA5             : out std_logic;\r
+  SCIRDATA6             : out std_logic;\r
+  SCIRDATA7             : out std_logic;\r
+  FFS_PLOL             : out std_logic;\r
+  FFS_RLOL_0             : out std_logic;\r
+  FFS_RLOL_1             : out std_logic;\r
+  FFS_RLOL_2             : out std_logic;\r
+  FFS_RLOL_3             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_0             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_1             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_2             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_3             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_0             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_1             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_2             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_3             : out std_logic\r
+);\r
+end component;\r
+\r
+begin\r
+\r
+PCSC_sim_inst : PCSC_sim\r
+generic map (\r
+  CONFIG_FILE => CONFIG_FILE)\r
+port map (\r
+  HDINN0 => HDINN0,\r
+  HDINN1 => HDINN1,\r
+  HDINN2 => HDINN2,\r
+  HDINN3 => HDINN3,\r
+  HDINP0 => HDINP0,\r
+  HDINP1 => HDINP1,\r
+  HDINP2 => HDINP2,\r
+  HDINP3 => HDINP3,\r
+  REFCLKN => REFCLKN,\r
+  REFCLKP => REFCLKP,\r
+  CIN11 => CIN11,\r
+  CIN10 => CIN10,\r
+  CIN9 => CIN9,\r
+  CIN8 => CIN8,\r
+  CIN7 => CIN7,\r
+  CIN6 => CIN6,\r
+  CIN5 => CIN5,\r
+  CIN4 => CIN4,\r
+  CIN3 => CIN3,\r
+  CIN2 => CIN2,\r
+  CIN1 => CIN1,\r
+  CIN0 => CIN0,\r
+  CYAWSTN => CYAWSTN,\r
+  FF_EBRD_CLK_3 => FF_EBRD_CLK_3,\r
+  FF_EBRD_CLK_2 => FF_EBRD_CLK_2,\r
+  FF_EBRD_CLK_1 => FF_EBRD_CLK_1,\r
+  FF_EBRD_CLK_0 => FF_EBRD_CLK_0,\r
+  FF_RXI_CLK_3 => FF_RXI_CLK_3,\r
+  FF_RXI_CLK_2 => FF_RXI_CLK_2,\r
+  FF_RXI_CLK_1 => FF_RXI_CLK_1,\r
+  FF_RXI_CLK_0 => FF_RXI_CLK_0,\r
+\r
+  FF_TX_D_0_0 => FF_TX_D_0_0,\r
+  FF_TX_D_0_1 => FF_TX_D_0_1,\r
+  FF_TX_D_0_2 => FF_TX_D_0_2,\r
+  FF_TX_D_0_3 => FF_TX_D_0_3,\r
+  FF_TX_D_0_4 => FF_TX_D_0_4,\r
+  FF_TX_D_0_5 => FF_TX_D_0_5,\r
+  FF_TX_D_0_6 => FF_TX_D_0_6,\r
+  FF_TX_D_0_7 => FF_TX_D_0_7,\r
+  FF_TX_D_0_8 => FF_TX_D_0_8,\r
+  FF_TX_D_0_9 => FF_TX_D_0_9,\r
+  FF_TX_D_0_10 => FF_TX_D_0_10,\r
+  FF_TX_D_0_11 => FF_TX_D_0_11,\r
+  FF_TX_D_0_12 => FF_TX_D_0_12,\r
+  FF_TX_D_0_13 => FF_TX_D_0_13,\r
+  FF_TX_D_0_14 => FF_TX_D_0_14,\r
+  FF_TX_D_0_15 => FF_TX_D_0_15,\r
+  FF_TX_D_0_16 => FF_TX_D_0_16,\r
+  FF_TX_D_0_17 => FF_TX_D_0_17,\r
+  FF_TX_D_0_18 => FF_TX_D_0_18,\r
+  FF_TX_D_0_19 => FF_TX_D_0_19,\r
+  FF_TX_D_0_20 => FF_TX_D_0_20,\r
+  FF_TX_D_0_21 => FF_TX_D_0_21,\r
+  FF_TX_D_0_22 => FF_TX_D_0_22,\r
+  FF_TX_D_0_23 => FF_TX_D_0_23,\r
+  FF_TX_D_1_0 => FF_TX_D_1_0,\r
+  FF_TX_D_1_1 => FF_TX_D_1_1,\r
+  FF_TX_D_1_2 => FF_TX_D_1_2,\r
+  FF_TX_D_1_3 => FF_TX_D_1_3,\r
+  FF_TX_D_1_4 => FF_TX_D_1_4,\r
+  FF_TX_D_1_5 => FF_TX_D_1_5,\r
+  FF_TX_D_1_6 => FF_TX_D_1_6,\r
+  FF_TX_D_1_7 => FF_TX_D_1_7,\r
+  FF_TX_D_1_8 => FF_TX_D_1_8,\r
+  FF_TX_D_1_9 => FF_TX_D_1_9,\r
+  FF_TX_D_1_10 => FF_TX_D_1_10,\r
+  FF_TX_D_1_11 => FF_TX_D_1_11,\r
+  FF_TX_D_1_12 => FF_TX_D_1_12,\r
+  FF_TX_D_1_13 => FF_TX_D_1_13,\r
+  FF_TX_D_1_14 => FF_TX_D_1_14,\r
+  FF_TX_D_1_15 => FF_TX_D_1_15,\r
+  FF_TX_D_1_16 => FF_TX_D_1_16,\r
+  FF_TX_D_1_17 => FF_TX_D_1_17,\r
+  FF_TX_D_1_18 => FF_TX_D_1_18,\r
+  FF_TX_D_1_19 => FF_TX_D_1_19,\r
+  FF_TX_D_1_20 => FF_TX_D_1_20,\r
+  FF_TX_D_1_21 => FF_TX_D_1_21,\r
+  FF_TX_D_1_22 => FF_TX_D_1_22,\r
+  FF_TX_D_1_23 => FF_TX_D_1_23,\r
+  FF_TX_D_2_0 => FF_TX_D_2_0,\r
+  FF_TX_D_2_1 => FF_TX_D_2_1,\r
+  FF_TX_D_2_2 => FF_TX_D_2_2,\r
+  FF_TX_D_2_3 => FF_TX_D_2_3,\r
+  FF_TX_D_2_4 => FF_TX_D_2_4,\r
+  FF_TX_D_2_5 => FF_TX_D_2_5,\r
+  FF_TX_D_2_6 => FF_TX_D_2_6,\r
+  FF_TX_D_2_7 => FF_TX_D_2_7,\r
+  FF_TX_D_2_8 => FF_TX_D_2_8,\r
+  FF_TX_D_2_9 => FF_TX_D_2_9,\r
+  FF_TX_D_2_10 => FF_TX_D_2_10,\r
+  FF_TX_D_2_11 => FF_TX_D_2_11,\r
+  FF_TX_D_2_12 => FF_TX_D_2_12,\r
+  FF_TX_D_2_13 => FF_TX_D_2_13,\r
+  FF_TX_D_2_14 => FF_TX_D_2_14,\r
+  FF_TX_D_2_15 => FF_TX_D_2_15,\r
+  FF_TX_D_2_16 => FF_TX_D_2_16,\r
+  FF_TX_D_2_17 => FF_TX_D_2_17,\r
+  FF_TX_D_2_18 => FF_TX_D_2_18,\r
+  FF_TX_D_2_19 => FF_TX_D_2_19,\r
+  FF_TX_D_2_20 => FF_TX_D_2_20,\r
+  FF_TX_D_2_21 => FF_TX_D_2_21,\r
+  FF_TX_D_2_22 => FF_TX_D_2_22,\r
+  FF_TX_D_2_23 => FF_TX_D_2_23,\r
+  FF_TX_D_3_0 => FF_TX_D_3_0,\r
+  FF_TX_D_3_1 => FF_TX_D_3_1,\r
+  FF_TX_D_3_2 => FF_TX_D_3_2,\r
+  FF_TX_D_3_3 => FF_TX_D_3_3,\r
+  FF_TX_D_3_4 => FF_TX_D_3_4,\r
+  FF_TX_D_3_5 => FF_TX_D_3_5,\r
+  FF_TX_D_3_6 => FF_TX_D_3_6,\r
+  FF_TX_D_3_7 => FF_TX_D_3_7,\r
+  FF_TX_D_3_8 => FF_TX_D_3_8,\r
+  FF_TX_D_3_9 => FF_TX_D_3_9,\r
+  FF_TX_D_3_10 => FF_TX_D_3_10,\r
+  FF_TX_D_3_11 => FF_TX_D_3_11,\r
+  FF_TX_D_3_12 => FF_TX_D_3_12,\r
+  FF_TX_D_3_13 => FF_TX_D_3_13,\r
+  FF_TX_D_3_14 => FF_TX_D_3_14,\r
+  FF_TX_D_3_15 => FF_TX_D_3_15,\r
+  FF_TX_D_3_16 => FF_TX_D_3_16,\r
+  FF_TX_D_3_17 => FF_TX_D_3_17,\r
+  FF_TX_D_3_18 => FF_TX_D_3_18,\r
+  FF_TX_D_3_19 => FF_TX_D_3_19,\r
+  FF_TX_D_3_20 => FF_TX_D_3_20,\r
+  FF_TX_D_3_21 => FF_TX_D_3_21,\r
+  FF_TX_D_3_22 => FF_TX_D_3_22,\r
+  FF_TX_D_3_23 => FF_TX_D_3_23,\r
+  FF_TXI_CLK_0 => FF_TXI_CLK_0,\r
+  FF_TXI_CLK_1 => FF_TXI_CLK_1,\r
+  FF_TXI_CLK_2 => FF_TXI_CLK_2,\r
+  FF_TXI_CLK_3 => FF_TXI_CLK_3,\r
+  FFC_CK_CORE_RX => FFC_CK_CORE_RX,\r
+  FFC_CK_CORE_TX => FFC_CK_CORE_TX,\r
+  FFC_EI_EN_0 => FFC_EI_EN_0,\r
+  FFC_EI_EN_1 => FFC_EI_EN_1,\r
+  FFC_EI_EN_2 => FFC_EI_EN_2,\r
+  FFC_EI_EN_3 => FFC_EI_EN_3,\r
+  FFC_ENABLE_CGALIGN_0 => FFC_ENABLE_CGALIGN_0,\r
+  FFC_ENABLE_CGALIGN_1 => FFC_ENABLE_CGALIGN_1,\r
+  FFC_ENABLE_CGALIGN_2 => FFC_ENABLE_CGALIGN_2,\r
+  FFC_ENABLE_CGALIGN_3 => FFC_ENABLE_CGALIGN_3,\r
+  FFC_FB_LOOPBACK_0 => FFC_FB_LOOPBACK_0,\r
+  FFC_FB_LOOPBACK_1 => FFC_FB_LOOPBACK_1,\r
+  FFC_FB_LOOPBACK_2 => FFC_FB_LOOPBACK_2,\r
+  FFC_FB_LOOPBACK_3 => FFC_FB_LOOPBACK_3,\r
+  FFC_LANE_RX_RST_0 => FFC_LANE_RX_RST_0,\r
+  FFC_LANE_RX_RST_1 => FFC_LANE_RX_RST_1,\r
+  FFC_LANE_RX_RST_2 => FFC_LANE_RX_RST_2,\r
+  FFC_LANE_RX_RST_3 => FFC_LANE_RX_RST_3,\r
+  FFC_LANE_TX_RST_0 => FFC_LANE_TX_RST_0,\r
+  FFC_LANE_TX_RST_1 => FFC_LANE_TX_RST_1,\r
+  FFC_LANE_TX_RST_2 => FFC_LANE_TX_RST_2,\r
+  FFC_LANE_TX_RST_3 => FFC_LANE_TX_RST_3,\r
+  FFC_MACRO_RST => FFC_MACRO_RST,\r
+  FFC_PCI_DET_EN_0 => FFC_PCI_DET_EN_0,\r
+  FFC_PCI_DET_EN_1 => FFC_PCI_DET_EN_1,\r
+  FFC_PCI_DET_EN_2 => FFC_PCI_DET_EN_2,\r
+  FFC_PCI_DET_EN_3 => FFC_PCI_DET_EN_3,\r
+  FFC_PCIE_CT_0 => FFC_PCIE_CT_0,\r
+  FFC_PCIE_CT_1 => FFC_PCIE_CT_1,\r
+  FFC_PCIE_CT_2 => FFC_PCIE_CT_2,\r
+  FFC_PCIE_CT_3 => FFC_PCIE_CT_3,\r
+  FFC_PFIFO_CLR_0 => FFC_PFIFO_CLR_0,\r
+  FFC_PFIFO_CLR_1 => FFC_PFIFO_CLR_1,\r
+  FFC_PFIFO_CLR_2 => FFC_PFIFO_CLR_2,\r
+  FFC_PFIFO_CLR_3 => FFC_PFIFO_CLR_3,\r
+  FFC_QUAD_RST => FFC_QUAD_RST,\r
+  FFC_RRST_0 => FFC_RRST_0,\r
+  FFC_RRST_1 => FFC_RRST_1,\r
+  FFC_RRST_2 => FFC_RRST_2,\r
+  FFC_RRST_3 => FFC_RRST_3,\r
+  FFC_RXPWDNB_0 => FFC_RXPWDNB_0,\r
+  FFC_RXPWDNB_1 => FFC_RXPWDNB_1,\r
+  FFC_RXPWDNB_2 => FFC_RXPWDNB_2,\r
+  FFC_RXPWDNB_3 => FFC_RXPWDNB_3,\r
+  FFC_SB_INV_RX_0 => FFC_SB_INV_RX_0,\r
+  FFC_SB_INV_RX_1 => FFC_SB_INV_RX_1,\r
+  FFC_SB_INV_RX_2 => FFC_SB_INV_RX_2,\r
+  FFC_SB_INV_RX_3 => FFC_SB_INV_RX_3,\r
+  FFC_SB_PFIFO_LP_0 => FFC_SB_PFIFO_LP_0,\r
+  FFC_SB_PFIFO_LP_1 => FFC_SB_PFIFO_LP_1,\r
+  FFC_SB_PFIFO_LP_2 => FFC_SB_PFIFO_LP_2,\r
+  FFC_SB_PFIFO_LP_3 => FFC_SB_PFIFO_LP_3,\r
+  FFC_SIGNAL_DETECT_0 => FFC_SIGNAL_DETECT_0,\r
+  FFC_SIGNAL_DETECT_1 => FFC_SIGNAL_DETECT_1,\r
+  FFC_SIGNAL_DETECT_2 => FFC_SIGNAL_DETECT_2,\r
+  FFC_SIGNAL_DETECT_3 => FFC_SIGNAL_DETECT_3,\r
+  FFC_TRST => FFC_TRST,\r
+  FFC_TXPWDNB_0 => FFC_TXPWDNB_0,\r
+  FFC_TXPWDNB_1 => FFC_TXPWDNB_1,\r
+  FFC_TXPWDNB_2 => FFC_TXPWDNB_2,\r
+  FFC_TXPWDNB_3 => FFC_TXPWDNB_3,\r
+  SCIADDR0 => SCIADDR0,\r
+  SCIADDR1 => SCIADDR1,\r
+  SCIADDR2 => SCIADDR2,\r
+  SCIADDR3 => SCIADDR3,\r
+  SCIADDR4 => SCIADDR4,\r
+  SCIADDR5 => SCIADDR5,\r
+  SCIENAUX => SCIENAUX,\r
+  SCIENCH0 => SCIENCH0,\r
+  SCIENCH1 => SCIENCH1,\r
+  SCIENCH2 => SCIENCH2,\r
+  SCIENCH3 => SCIENCH3,\r
+  SCIRD => SCIRD,\r
+  SCISELAUX => SCISELAUX,\r
+  SCISELCH0 => SCISELCH0,\r
+  SCISELCH1 => SCISELCH1,\r
+  SCISELCH2 => SCISELCH2,\r
+  SCISELCH3 => SCISELCH3,\r
+  SCIWDATA0 => SCIWDATA0,\r
+  SCIWDATA1 => SCIWDATA1,\r
+  SCIWDATA2 => SCIWDATA2,\r
+  SCIWDATA3 => SCIWDATA3,\r
+  SCIWDATA4 => SCIWDATA4,\r
+  SCIWDATA5 => SCIWDATA5,\r
+  SCIWDATA6 => SCIWDATA6,\r
+  SCIWDATA7 => SCIWDATA7,\r
+  SCIWSTN => SCIWSTN,\r
+  HDOUTN0 => HDOUTN0,\r
+  HDOUTN1 => HDOUTN1,\r
+  HDOUTN2 => HDOUTN2,\r
+  HDOUTN3 => HDOUTN3,\r
+  HDOUTP0 => HDOUTP0,\r
+  HDOUTP1 => HDOUTP1,\r
+  HDOUTP2 => HDOUTP2,\r
+  HDOUTP3 => HDOUTP3,\r
+  COUT19 => COUT19,\r
+  COUT18 => COUT18,\r
+  COUT17 => COUT17,\r
+  COUT16 => COUT16,\r
+  COUT15 => COUT15,\r
+  COUT14 => COUT14,\r
+  COUT13 => COUT13,\r
+  COUT12 => COUT12,\r
+  COUT11 => COUT11,\r
+  COUT10 => COUT10,\r
+  COUT9 => COUT9,\r
+  COUT8 => COUT8,\r
+  COUT7 => COUT7,\r
+  COUT6 => COUT6,\r
+  COUT5 => COUT5,\r
+  COUT4 => COUT4,\r
+  COUT3 => COUT3,\r
+  COUT2 => COUT2,\r
+  COUT1 => COUT1,\r
+  COUT0 => COUT0,\r
+  FF_RX_D_0_0 => FF_RX_D_0_0,\r
+  FF_RX_D_0_1 => FF_RX_D_0_1,\r
+  FF_RX_D_0_2 => FF_RX_D_0_2,\r
+  FF_RX_D_0_3 => FF_RX_D_0_3,\r
+  FF_RX_D_0_4 => FF_RX_D_0_4,\r
+  FF_RX_D_0_5 => FF_RX_D_0_5,\r
+  FF_RX_D_0_6 => FF_RX_D_0_6,\r
+  FF_RX_D_0_7 => FF_RX_D_0_7,\r
+  FF_RX_D_0_8 => FF_RX_D_0_8,\r
+  FF_RX_D_0_9 => FF_RX_D_0_9,\r
+  FF_RX_D_0_10 => FF_RX_D_0_10,\r
+  FF_RX_D_0_11 => FF_RX_D_0_11,\r
+  FF_RX_D_0_12 => FF_RX_D_0_12,\r
+  FF_RX_D_0_13 => FF_RX_D_0_13,\r
+  FF_RX_D_0_14 => FF_RX_D_0_14,\r
+  FF_RX_D_0_15 => FF_RX_D_0_15,\r
+  FF_RX_D_0_16 => FF_RX_D_0_16,\r
+  FF_RX_D_0_17 => FF_RX_D_0_17,\r
+  FF_RX_D_0_18 => FF_RX_D_0_18,\r
+  FF_RX_D_0_19 => FF_RX_D_0_19,\r
+  FF_RX_D_0_20 => FF_RX_D_0_20,\r
+  FF_RX_D_0_21 => FF_RX_D_0_21,\r
+  FF_RX_D_0_22 => FF_RX_D_0_22,\r
+  FF_RX_D_0_23 => FF_RX_D_0_23,\r
+  FF_RX_D_1_0 => FF_RX_D_1_0,\r
+  FF_RX_D_1_1 => FF_RX_D_1_1,\r
+  FF_RX_D_1_2 => FF_RX_D_1_2,\r
+  FF_RX_D_1_3 => FF_RX_D_1_3,\r
+  FF_RX_D_1_4 => FF_RX_D_1_4,\r
+  FF_RX_D_1_5 => FF_RX_D_1_5,\r
+  FF_RX_D_1_6 => FF_RX_D_1_6,\r
+  FF_RX_D_1_7 => FF_RX_D_1_7,\r
+  FF_RX_D_1_8 => FF_RX_D_1_8,\r
+  FF_RX_D_1_9 => FF_RX_D_1_9,\r
+  FF_RX_D_1_10 => FF_RX_D_1_10,\r
+  FF_RX_D_1_11 => FF_RX_D_1_11,\r
+  FF_RX_D_1_12 => FF_RX_D_1_12,\r
+  FF_RX_D_1_13 => FF_RX_D_1_13,\r
+  FF_RX_D_1_14 => FF_RX_D_1_14,\r
+  FF_RX_D_1_15 => FF_RX_D_1_15,\r
+  FF_RX_D_1_16 => FF_RX_D_1_16,\r
+  FF_RX_D_1_17 => FF_RX_D_1_17,\r
+  FF_RX_D_1_18 => FF_RX_D_1_18,\r
+  FF_RX_D_1_19 => FF_RX_D_1_19,\r
+  FF_RX_D_1_20 => FF_RX_D_1_20,\r
+  FF_RX_D_1_21 => FF_RX_D_1_21,\r
+  FF_RX_D_1_22 => FF_RX_D_1_22,\r
+  FF_RX_D_1_23 => FF_RX_D_1_23,\r
+  FF_RX_D_2_0 => FF_RX_D_2_0,\r
+  FF_RX_D_2_1 => FF_RX_D_2_1,\r
+  FF_RX_D_2_2 => FF_RX_D_2_2,\r
+  FF_RX_D_2_3 => FF_RX_D_2_3,\r
+  FF_RX_D_2_4 => FF_RX_D_2_4,\r
+  FF_RX_D_2_5 => FF_RX_D_2_5,\r
+  FF_RX_D_2_6 => FF_RX_D_2_6,\r
+  FF_RX_D_2_7 => FF_RX_D_2_7,\r
+  FF_RX_D_2_8 => FF_RX_D_2_8,\r
+  FF_RX_D_2_9 => FF_RX_D_2_9,\r
+  FF_RX_D_2_10 => FF_RX_D_2_10,\r
+  FF_RX_D_2_11 => FF_RX_D_2_11,\r
+  FF_RX_D_2_12 => FF_RX_D_2_12,\r
+  FF_RX_D_2_13 => FF_RX_D_2_13,\r
+  FF_RX_D_2_14 => FF_RX_D_2_14,\r
+  FF_RX_D_2_15 => FF_RX_D_2_15,\r
+  FF_RX_D_2_16 => FF_RX_D_2_16,\r
+  FF_RX_D_2_17 => FF_RX_D_2_17,\r
+  FF_RX_D_2_18 => FF_RX_D_2_18,\r
+  FF_RX_D_2_19 => FF_RX_D_2_19,\r
+  FF_RX_D_2_20 => FF_RX_D_2_20,\r
+  FF_RX_D_2_21 => FF_RX_D_2_21,\r
+  FF_RX_D_2_22 => FF_RX_D_2_22,\r
+  FF_RX_D_2_23 => FF_RX_D_2_23,\r
+  FF_RX_D_3_0 => FF_RX_D_3_0,\r
+  FF_RX_D_3_1 => FF_RX_D_3_1,\r
+  FF_RX_D_3_2 => FF_RX_D_3_2,\r
+  FF_RX_D_3_3 => FF_RX_D_3_3,\r
+  FF_RX_D_3_4 => FF_RX_D_3_4,\r
+  FF_RX_D_3_5 => FF_RX_D_3_5,\r
+  FF_RX_D_3_6 => FF_RX_D_3_6,\r
+  FF_RX_D_3_7 => FF_RX_D_3_7,\r
+  FF_RX_D_3_8 => FF_RX_D_3_8,\r
+  FF_RX_D_3_9 => FF_RX_D_3_9,\r
+  FF_RX_D_3_10 => FF_RX_D_3_10,\r
+  FF_RX_D_3_11 => FF_RX_D_3_11,\r
+  FF_RX_D_3_12 => FF_RX_D_3_12,\r
+  FF_RX_D_3_13 => FF_RX_D_3_13,\r
+  FF_RX_D_3_14 => FF_RX_D_3_14,\r
+  FF_RX_D_3_15 => FF_RX_D_3_15,\r
+  FF_RX_D_3_16 => FF_RX_D_3_16,\r
+  FF_RX_D_3_17 => FF_RX_D_3_17,\r
+  FF_RX_D_3_18 => FF_RX_D_3_18,\r
+  FF_RX_D_3_19 => FF_RX_D_3_19,\r
+  FF_RX_D_3_20 => FF_RX_D_3_20,\r
+  FF_RX_D_3_21 => FF_RX_D_3_21,\r
+  FF_RX_D_3_22 => FF_RX_D_3_22,\r
+  FF_RX_D_3_23 => FF_RX_D_3_23,\r
+  FF_RX_F_CLK_0 => FF_RX_F_CLK_0,\r
+  FF_RX_F_CLK_1 => FF_RX_F_CLK_1,\r
+  FF_RX_F_CLK_2 => FF_RX_F_CLK_2,\r
+  FF_RX_F_CLK_3 => FF_RX_F_CLK_3,\r
+  FF_RX_H_CLK_0 => FF_RX_H_CLK_0,\r
+  FF_RX_H_CLK_1 => FF_RX_H_CLK_1,\r
+  FF_RX_H_CLK_2 => FF_RX_H_CLK_2,\r
+  FF_RX_H_CLK_3 => FF_RX_H_CLK_3,\r
+  FF_RX_Q_CLK_0 => FF_RX_Q_CLK_0,\r
+  FF_RX_Q_CLK_1 => FF_RX_Q_CLK_1,\r
+  FF_RX_Q_CLK_2 => FF_RX_Q_CLK_2,\r
+  FF_RX_Q_CLK_3 => FF_RX_Q_CLK_3,\r
+  FF_TX_F_CLK => FF_TX_F_CLK,\r
+  FF_TX_H_CLK => FF_TX_H_CLK,\r
+  FF_TX_Q_CLK => FF_TX_Q_CLK,\r
+  FFS_CC_OVERRUN_0 => FFS_CC_OVERRUN_0,\r
+  FFS_CC_OVERRUN_1 => FFS_CC_OVERRUN_1,\r
+  FFS_CC_OVERRUN_2 => FFS_CC_OVERRUN_2,\r
+  FFS_CC_OVERRUN_3 => FFS_CC_OVERRUN_3,\r
+  FFS_CC_UNDERRUN_0 => FFS_CC_UNDERRUN_0,\r
+  FFS_CC_UNDERRUN_1 => FFS_CC_UNDERRUN_1,\r
+  FFS_CC_UNDERRUN_2 => FFS_CC_UNDERRUN_2,\r
+  FFS_CC_UNDERRUN_3 => FFS_CC_UNDERRUN_3,\r
+  FFS_LS_SYNC_STATUS_0 => FFS_LS_SYNC_STATUS_0,\r
+  FFS_LS_SYNC_STATUS_1 => FFS_LS_SYNC_STATUS_1,\r
+  FFS_LS_SYNC_STATUS_2 => FFS_LS_SYNC_STATUS_2,\r
+  FFS_LS_SYNC_STATUS_3 => FFS_LS_SYNC_STATUS_3,\r
+  FFS_PCIE_CON_0 => FFS_PCIE_CON_0,\r
+  FFS_PCIE_CON_1 => FFS_PCIE_CON_1,\r
+  FFS_PCIE_CON_2 => FFS_PCIE_CON_2,\r
+  FFS_PCIE_CON_3 => FFS_PCIE_CON_3,\r
+  FFS_PCIE_DONE_0 => FFS_PCIE_DONE_0,\r
+  FFS_PCIE_DONE_1 => FFS_PCIE_DONE_1,\r
+  FFS_PCIE_DONE_2 => FFS_PCIE_DONE_2,\r
+  FFS_PCIE_DONE_3 => FFS_PCIE_DONE_3,\r
+  FFS_RLOS_LO_0 => FFS_RLOS_LO_0,\r
+  FFS_RLOS_LO_1 => FFS_RLOS_LO_1,\r
+  FFS_RLOS_LO_2 => FFS_RLOS_LO_2,\r
+  FFS_RLOS_LO_3 => FFS_RLOS_LO_3,\r
+  FFS_PLOL => FFS_PLOL,\r
+  FFS_RLOL_0 => FFS_RLOL_0,\r
+  FFS_RLOL_1 => FFS_RLOL_1,\r
+  FFS_RLOL_2 => FFS_RLOL_2,\r
+  FFS_RLOL_3 => FFS_RLOL_3,\r
+  FFS_RXFBFIFO_ERROR_0 => FFS_RXFBFIFO_ERROR_0,\r
+  FFS_RXFBFIFO_ERROR_1 => FFS_RXFBFIFO_ERROR_1,\r
+  FFS_RXFBFIFO_ERROR_2 => FFS_RXFBFIFO_ERROR_2,\r
+  FFS_RXFBFIFO_ERROR_3 => FFS_RXFBFIFO_ERROR_3,\r
+  FFS_TXFBFIFO_ERROR_0 => FFS_TXFBFIFO_ERROR_0,\r
+  FFS_TXFBFIFO_ERROR_1 => FFS_TXFBFIFO_ERROR_1,\r
+  FFS_TXFBFIFO_ERROR_2 => FFS_TXFBFIFO_ERROR_2,\r
+  FFS_TXFBFIFO_ERROR_3 => FFS_TXFBFIFO_ERROR_3,\r
+  OOB_OUT_0 => OOB_OUT_0,\r
+  OOB_OUT_1 => OOB_OUT_1,\r
+  OOB_OUT_2 => OOB_OUT_2,\r
+  OOB_OUT_3 => OOB_OUT_3,\r
+  REFCK2CORE => REFCK2CORE,\r
+  SCIINT => SCIINT,\r
+  SCIRDATA0 => SCIRDATA0,\r
+  SCIRDATA1 => SCIRDATA1,\r
+  SCIRDATA2 => SCIRDATA2,\r
+  SCIRDATA3 => SCIRDATA3,\r
+  SCIRDATA4 => SCIRDATA4,\r
+  SCIRDATA5 => SCIRDATA5,\r
+  SCIRDATA6 => SCIRDATA6,\r
+  SCIRDATA7 => SCIRDATA7\r
+   );\r
+\r
+end PCSC_arch;\r
+\r
+--synopsys translate_on\r
+\r
+--synopsys translate_off\r
+library ECP2;\r
+use ECP2.components.all;\r
+--synopsys translate_on\r
+\r
+library IEEE, STD;\r
+use IEEE.std_logic_1164.all;\r
+use STD.TEXTIO.all;\r
+\r
+entity serdes_gbe_0_extclock_8b is\r
+   GENERIC (USER_CONFIG_FILE    :  String := "serdes_gbe_0_extclock_8b.txt");\r
+ port (\r
+   refclkp, refclkn : in std_logic;\r
+   hdinp0, hdinn0 : in std_logic;\r
+   hdoutp0, hdoutn0 : out std_logic;\r
+   ff_rxiclk_ch0, ff_txiclk_ch0, ff_ebrd_clk_0 : in std_logic;\r
+   ff_txdata_ch0 : in std_logic_vector (7 downto 0);\r
+   ff_rxdata_ch0 : out std_logic_vector (7 downto 0);\r
+   ff_tx_k_cntrl_ch0 : in std_logic;\r
+   ff_rx_k_cntrl_ch0 : out std_logic;\r
+   ff_rxfullclk_ch0 : out std_logic;\r
+   ff_xmit_ch0 : in std_logic;\r
+   ff_correct_disp_ch0 : in std_logic;\r
+   ff_disp_err_ch0, ff_cv_ch0 : out std_logic;\r
+   ff_rx_even_ch0 : out std_logic;\r
+   ffc_rrst_ch0 : in std_logic;\r
+   ffc_lane_tx_rst_ch0 : in std_logic;\r
+   ffc_lane_rx_rst_ch0 : in std_logic;\r
+   ffc_txpwdnb_ch0 : in std_logic;\r
+   ffc_rxpwdnb_ch0 : in std_logic;\r
+   ffs_rlos_lo_ch0 : out std_logic;\r
+   ffs_ls_sync_status_ch0 : out std_logic;\r
+   ffs_rlol_ch0 : out std_logic;\r
+   oob_out_ch0 : out std_logic;\r
+   ffc_macro_rst : in std_logic;\r
+   ffc_quad_rst : in std_logic;\r
+   ffc_trst : in std_logic;\r
+   ff_txfullclk : out std_logic;\r
+   ff_txhalfclk : out std_logic;\r
+   refck2core : out std_logic;\r
+   ffs_plol : out std_logic);\r
+\r
+end serdes_gbe_0_extclock_8b;\r
+\r
+architecture serdes_gbe_0_extclock_8b_arch of serdes_gbe_0_extclock_8b is\r
+\r
+component VLO\r
+port (\r
+   Z : out std_logic);\r
+end component;\r
+\r
+component VHI\r
+port (\r
+   Z : out std_logic);\r
+end component;\r
+component PCSC\r
+--synopsys translate_off\r
+GENERIC(\r
+  CONFIG_FILE : String\r
+  );\r
+--synopsys translate_on\r
+port (\r
+  HDINN0             : in std_logic;\r
+  HDINN1             : in std_logic;\r
+  HDINN2             : in std_logic;\r
+  HDINN3             : in std_logic;\r
+  HDINP0             : in std_logic;\r
+  HDINP1             : in std_logic;\r
+  HDINP2             : in std_logic;\r
+  HDINP3             : in std_logic;\r
+  REFCLKN             : in std_logic;\r
+  REFCLKP             : in std_logic;\r
+  CIN0             : in std_logic;\r
+  CIN1             : in std_logic;\r
+  CIN2             : in std_logic;\r
+  CIN3             : in std_logic;\r
+  CIN4             : in std_logic;\r
+  CIN5             : in std_logic;\r
+  CIN6             : in std_logic;\r
+  CIN7             : in std_logic;\r
+  CIN8             : in std_logic;\r
+  CIN9             : in std_logic;\r
+  CIN10             : in std_logic;\r
+  CIN11             : in std_logic;\r
+  CYAWSTN             : in std_logic;\r
+  FF_EBRD_CLK_0             : in std_logic;\r
+  FF_EBRD_CLK_1             : in std_logic;\r
+  FF_EBRD_CLK_2             : in std_logic;\r
+  FF_EBRD_CLK_3             : in std_logic;\r
+  FF_RXI_CLK_0             : in std_logic;\r
+  FF_RXI_CLK_1             : in std_logic;\r
+  FF_RXI_CLK_2             : in std_logic;\r
+  FF_RXI_CLK_3             : in std_logic;\r
+  FF_TX_D_0_0             : in std_logic;\r
+  FF_TX_D_0_1             : in std_logic;\r
+  FF_TX_D_0_2             : in std_logic;\r
+  FF_TX_D_0_3             : in std_logic;\r
+  FF_TX_D_0_4             : in std_logic;\r
+  FF_TX_D_0_5             : in std_logic;\r
+  FF_TX_D_0_6             : in std_logic;\r
+  FF_TX_D_0_7             : in std_logic;\r
+  FF_TX_D_0_8             : in std_logic;\r
+  FF_TX_D_0_9             : in std_logic;\r
+  FF_TX_D_0_10             : in std_logic;\r
+  FF_TX_D_0_11             : in std_logic;\r
+  FF_TX_D_0_12             : in std_logic;\r
+  FF_TX_D_0_13             : in std_logic;\r
+  FF_TX_D_0_14             : in std_logic;\r
+  FF_TX_D_0_15             : in std_logic;\r
+  FF_TX_D_0_16             : in std_logic;\r
+  FF_TX_D_0_17             : in std_logic;\r
+  FF_TX_D_0_18             : in std_logic;\r
+  FF_TX_D_0_19             : in std_logic;\r
+  FF_TX_D_0_20             : in std_logic;\r
+  FF_TX_D_0_21             : in std_logic;\r
+  FF_TX_D_0_22             : in std_logic;\r
+  FF_TX_D_0_23             : in std_logic;\r
+  FF_TX_D_1_0             : in std_logic;\r
+  FF_TX_D_1_1             : in std_logic;\r
+  FF_TX_D_1_2             : in std_logic;\r
+  FF_TX_D_1_3             : in std_logic;\r
+  FF_TX_D_1_4             : in std_logic;\r
+  FF_TX_D_1_5             : in std_logic;\r
+  FF_TX_D_1_6             : in std_logic;\r
+  FF_TX_D_1_7             : in std_logic;\r
+  FF_TX_D_1_8             : in std_logic;\r
+  FF_TX_D_1_9             : in std_logic;\r
+  FF_TX_D_1_10             : in std_logic;\r
+  FF_TX_D_1_11             : in std_logic;\r
+  FF_TX_D_1_12             : in std_logic;\r
+  FF_TX_D_1_13             : in std_logic;\r
+  FF_TX_D_1_14             : in std_logic;\r
+  FF_TX_D_1_15             : in std_logic;\r
+  FF_TX_D_1_16             : in std_logic;\r
+  FF_TX_D_1_17             : in std_logic;\r
+  FF_TX_D_1_18             : in std_logic;\r
+  FF_TX_D_1_19             : in std_logic;\r
+  FF_TX_D_1_20             : in std_logic;\r
+  FF_TX_D_1_21             : in std_logic;\r
+  FF_TX_D_1_22             : in std_logic;\r
+  FF_TX_D_1_23             : in std_logic;\r
+  FF_TX_D_2_0             : in std_logic;\r
+  FF_TX_D_2_1             : in std_logic;\r
+  FF_TX_D_2_2             : in std_logic;\r
+  FF_TX_D_2_3             : in std_logic;\r
+  FF_TX_D_2_4             : in std_logic;\r
+  FF_TX_D_2_5             : in std_logic;\r
+  FF_TX_D_2_6             : in std_logic;\r
+  FF_TX_D_2_7             : in std_logic;\r
+  FF_TX_D_2_8             : in std_logic;\r
+  FF_TX_D_2_9             : in std_logic;\r
+  FF_TX_D_2_10             : in std_logic;\r
+  FF_TX_D_2_11             : in std_logic;\r
+  FF_TX_D_2_12             : in std_logic;\r
+  FF_TX_D_2_13             : in std_logic;\r
+  FF_TX_D_2_14             : in std_logic;\r
+  FF_TX_D_2_15             : in std_logic;\r
+  FF_TX_D_2_16             : in std_logic;\r
+  FF_TX_D_2_17             : in std_logic;\r
+  FF_TX_D_2_18             : in std_logic;\r
+  FF_TX_D_2_19             : in std_logic;\r
+  FF_TX_D_2_20             : in std_logic;\r
+  FF_TX_D_2_21             : in std_logic;\r
+  FF_TX_D_2_22             : in std_logic;\r
+  FF_TX_D_2_23             : in std_logic;\r
+  FF_TX_D_3_0             : in std_logic;\r
+  FF_TX_D_3_1             : in std_logic;\r
+  FF_TX_D_3_2             : in std_logic;\r
+  FF_TX_D_3_3             : in std_logic;\r
+  FF_TX_D_3_4             : in std_logic;\r
+  FF_TX_D_3_5             : in std_logic;\r
+  FF_TX_D_3_6             : in std_logic;\r
+  FF_TX_D_3_7             : in std_logic;\r
+  FF_TX_D_3_8             : in std_logic;\r
+  FF_TX_D_3_9             : in std_logic;\r
+  FF_TX_D_3_10             : in std_logic;\r
+  FF_TX_D_3_11             : in std_logic;\r
+  FF_TX_D_3_12             : in std_logic;\r
+  FF_TX_D_3_13             : in std_logic;\r
+  FF_TX_D_3_14             : in std_logic;\r
+  FF_TX_D_3_15             : in std_logic;\r
+  FF_TX_D_3_16             : in std_logic;\r
+  FF_TX_D_3_17             : in std_logic;\r
+  FF_TX_D_3_18             : in std_logic;\r
+  FF_TX_D_3_19             : in std_logic;\r
+  FF_TX_D_3_20             : in std_logic;\r
+  FF_TX_D_3_21             : in std_logic;\r
+  FF_TX_D_3_22             : in std_logic;\r
+  FF_TX_D_3_23             : in std_logic;\r
+  FF_TXI_CLK_0             : in std_logic;\r
+  FF_TXI_CLK_1             : in std_logic;\r
+  FF_TXI_CLK_2             : in std_logic;\r
+  FF_TXI_CLK_3             : in std_logic;\r
+  FFC_CK_CORE_RX             : in std_logic;\r
+  FFC_CK_CORE_TX             : in std_logic;\r
+  FFC_EI_EN_0             : in std_logic;\r
+  FFC_EI_EN_1             : in std_logic;\r
+  FFC_EI_EN_2             : in std_logic;\r
+  FFC_EI_EN_3             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_0             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_1             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_2             : in std_logic;\r
+  FFC_ENABLE_CGALIGN_3             : in std_logic;\r
+  FFC_FB_LOOPBACK_0             : in std_logic;\r
+  FFC_FB_LOOPBACK_1             : in std_logic;\r
+  FFC_FB_LOOPBACK_2             : in std_logic;\r
+  FFC_FB_LOOPBACK_3             : in std_logic;\r
+  FFC_LANE_RX_RST_0             : in std_logic;\r
+  FFC_LANE_RX_RST_1             : in std_logic;\r
+  FFC_LANE_RX_RST_2             : in std_logic;\r
+  FFC_LANE_RX_RST_3             : in std_logic;\r
+  FFC_LANE_TX_RST_0             : in std_logic;\r
+  FFC_LANE_TX_RST_1             : in std_logic;\r
+  FFC_LANE_TX_RST_2             : in std_logic;\r
+  FFC_LANE_TX_RST_3             : in std_logic;\r
+  FFC_MACRO_RST             : in std_logic;\r
+  FFC_PCI_DET_EN_0             : in std_logic;\r
+  FFC_PCI_DET_EN_1             : in std_logic;\r
+  FFC_PCI_DET_EN_2             : in std_logic;\r
+  FFC_PCI_DET_EN_3             : in std_logic;\r
+  FFC_PCIE_CT_0             : in std_logic;\r
+  FFC_PCIE_CT_1             : in std_logic;\r
+  FFC_PCIE_CT_2             : in std_logic;\r
+  FFC_PCIE_CT_3             : in std_logic;\r
+  FFC_PFIFO_CLR_0             : in std_logic;\r
+  FFC_PFIFO_CLR_1             : in std_logic;\r
+  FFC_PFIFO_CLR_2             : in std_logic;\r
+  FFC_PFIFO_CLR_3             : in std_logic;\r
+  FFC_QUAD_RST             : in std_logic;\r
+  FFC_RRST_0             : in std_logic;\r
+  FFC_RRST_1             : in std_logic;\r
+  FFC_RRST_2             : in std_logic;\r
+  FFC_RRST_3             : in std_logic;\r
+  FFC_RXPWDNB_0             : in std_logic;\r
+  FFC_RXPWDNB_1             : in std_logic;\r
+  FFC_RXPWDNB_2             : in std_logic;\r
+  FFC_RXPWDNB_3             : in std_logic;\r
+  FFC_SB_INV_RX_0             : in std_logic;\r
+  FFC_SB_INV_RX_1             : in std_logic;\r
+  FFC_SB_INV_RX_2             : in std_logic;\r
+  FFC_SB_INV_RX_3             : in std_logic;\r
+  FFC_SB_PFIFO_LP_0             : in std_logic;\r
+  FFC_SB_PFIFO_LP_1             : in std_logic;\r
+  FFC_SB_PFIFO_LP_2             : in std_logic;\r
+  FFC_SB_PFIFO_LP_3             : in std_logic;\r
+  FFC_SIGNAL_DETECT_0             : in std_logic;\r
+  FFC_SIGNAL_DETECT_1             : in std_logic;\r
+  FFC_SIGNAL_DETECT_2             : in std_logic;\r
+  FFC_SIGNAL_DETECT_3             : in std_logic;\r
+  FFC_TRST             : in std_logic;\r
+  FFC_TXPWDNB_0             : in std_logic;\r
+  FFC_TXPWDNB_1             : in std_logic;\r
+  FFC_TXPWDNB_2             : in std_logic;\r
+  FFC_TXPWDNB_3             : in std_logic;\r
+  SCIADDR0             : in std_logic;\r
+  SCIADDR1             : in std_logic;\r
+  SCIADDR2             : in std_logic;\r
+  SCIADDR3             : in std_logic;\r
+  SCIADDR4             : in std_logic;\r
+  SCIADDR5             : in std_logic;\r
+  SCIENAUX             : in std_logic;\r
+  SCIENCH0             : in std_logic;\r
+  SCIENCH1             : in std_logic;\r
+  SCIENCH2             : in std_logic;\r
+  SCIENCH3             : in std_logic;\r
+  SCIRD             : in std_logic;\r
+  SCISELAUX             : in std_logic;\r
+  SCISELCH0             : in std_logic;\r
+  SCISELCH1             : in std_logic;\r
+  SCISELCH2             : in std_logic;\r
+  SCISELCH3             : in std_logic;\r
+  SCIWDATA0             : in std_logic;\r
+  SCIWDATA1             : in std_logic;\r
+  SCIWDATA2             : in std_logic;\r
+  SCIWDATA3             : in std_logic;\r
+  SCIWDATA4             : in std_logic;\r
+  SCIWDATA5             : in std_logic;\r
+  SCIWDATA6             : in std_logic;\r
+  SCIWDATA7             : in std_logic;\r
+  SCIWSTN             : in std_logic;\r
+  HDOUTN0             : out std_logic;\r
+  HDOUTN1             : out std_logic;\r
+  HDOUTN2             : out std_logic;\r
+  HDOUTN3             : out std_logic;\r
+  HDOUTP0             : out std_logic;\r
+  HDOUTP1             : out std_logic;\r
+  HDOUTP2             : out std_logic;\r
+  HDOUTP3             : out std_logic;\r
+  COUT0             : out std_logic;\r
+  COUT1             : out std_logic;\r
+  COUT2             : out std_logic;\r
+  COUT3             : out std_logic;\r
+  COUT4             : out std_logic;\r
+  COUT5             : out std_logic;\r
+  COUT6             : out std_logic;\r
+  COUT7             : out std_logic;\r
+  COUT8             : out std_logic;\r
+  COUT9             : out std_logic;\r
+  COUT10             : out std_logic;\r
+  COUT11             : out std_logic;\r
+  COUT12             : out std_logic;\r
+  COUT13             : out std_logic;\r
+  COUT14             : out std_logic;\r
+  COUT15             : out std_logic;\r
+  COUT16             : out std_logic;\r
+  COUT17             : out std_logic;\r
+  COUT18             : out std_logic;\r
+  COUT19             : out std_logic;\r
+  FF_RX_D_0_0             : out std_logic;\r
+  FF_RX_D_0_1             : out std_logic;\r
+  FF_RX_D_0_2             : out std_logic;\r
+  FF_RX_D_0_3             : out std_logic;\r
+  FF_RX_D_0_4             : out std_logic;\r
+  FF_RX_D_0_5             : out std_logic;\r
+  FF_RX_D_0_6             : out std_logic;\r
+  FF_RX_D_0_7             : out std_logic;\r
+  FF_RX_D_0_8             : out std_logic;\r
+  FF_RX_D_0_9             : out std_logic;\r
+  FF_RX_D_0_10             : out std_logic;\r
+  FF_RX_D_0_11             : out std_logic;\r
+  FF_RX_D_0_12             : out std_logic;\r
+  FF_RX_D_0_13             : out std_logic;\r
+  FF_RX_D_0_14             : out std_logic;\r
+  FF_RX_D_0_15             : out std_logic;\r
+  FF_RX_D_0_16             : out std_logic;\r
+  FF_RX_D_0_17             : out std_logic;\r
+  FF_RX_D_0_18             : out std_logic;\r
+  FF_RX_D_0_19             : out std_logic;\r
+  FF_RX_D_0_20             : out std_logic;\r
+  FF_RX_D_0_21             : out std_logic;\r
+  FF_RX_D_0_22             : out std_logic;\r
+  FF_RX_D_0_23             : out std_logic;\r
+  FF_RX_D_1_0             : out std_logic;\r
+  FF_RX_D_1_1             : out std_logic;\r
+  FF_RX_D_1_2             : out std_logic;\r
+  FF_RX_D_1_3             : out std_logic;\r
+  FF_RX_D_1_4             : out std_logic;\r
+  FF_RX_D_1_5             : out std_logic;\r
+  FF_RX_D_1_6             : out std_logic;\r
+  FF_RX_D_1_7             : out std_logic;\r
+  FF_RX_D_1_8             : out std_logic;\r
+  FF_RX_D_1_9             : out std_logic;\r
+  FF_RX_D_1_10             : out std_logic;\r
+  FF_RX_D_1_11             : out std_logic;\r
+  FF_RX_D_1_12             : out std_logic;\r
+  FF_RX_D_1_13             : out std_logic;\r
+  FF_RX_D_1_14             : out std_logic;\r
+  FF_RX_D_1_15             : out std_logic;\r
+  FF_RX_D_1_16             : out std_logic;\r
+  FF_RX_D_1_17             : out std_logic;\r
+  FF_RX_D_1_18             : out std_logic;\r
+  FF_RX_D_1_19             : out std_logic;\r
+  FF_RX_D_1_20             : out std_logic;\r
+  FF_RX_D_1_21             : out std_logic;\r
+  FF_RX_D_1_22             : out std_logic;\r
+  FF_RX_D_1_23             : out std_logic;\r
+  FF_RX_D_2_0             : out std_logic;\r
+  FF_RX_D_2_1             : out std_logic;\r
+  FF_RX_D_2_2             : out std_logic;\r
+  FF_RX_D_2_3             : out std_logic;\r
+  FF_RX_D_2_4             : out std_logic;\r
+  FF_RX_D_2_5             : out std_logic;\r
+  FF_RX_D_2_6             : out std_logic;\r
+  FF_RX_D_2_7             : out std_logic;\r
+  FF_RX_D_2_8             : out std_logic;\r
+  FF_RX_D_2_9             : out std_logic;\r
+  FF_RX_D_2_10             : out std_logic;\r
+  FF_RX_D_2_11             : out std_logic;\r
+  FF_RX_D_2_12             : out std_logic;\r
+  FF_RX_D_2_13             : out std_logic;\r
+  FF_RX_D_2_14             : out std_logic;\r
+  FF_RX_D_2_15             : out std_logic;\r
+  FF_RX_D_2_16             : out std_logic;\r
+  FF_RX_D_2_17             : out std_logic;\r
+  FF_RX_D_2_18             : out std_logic;\r
+  FF_RX_D_2_19             : out std_logic;\r
+  FF_RX_D_2_20             : out std_logic;\r
+  FF_RX_D_2_21             : out std_logic;\r
+  FF_RX_D_2_22             : out std_logic;\r
+  FF_RX_D_2_23             : out std_logic;\r
+  FF_RX_D_3_0             : out std_logic;\r
+  FF_RX_D_3_1             : out std_logic;\r
+  FF_RX_D_3_2             : out std_logic;\r
+  FF_RX_D_3_3             : out std_logic;\r
+  FF_RX_D_3_4             : out std_logic;\r
+  FF_RX_D_3_5             : out std_logic;\r
+  FF_RX_D_3_6             : out std_logic;\r
+  FF_RX_D_3_7             : out std_logic;\r
+  FF_RX_D_3_8             : out std_logic;\r
+  FF_RX_D_3_9             : out std_logic;\r
+  FF_RX_D_3_10             : out std_logic;\r
+  FF_RX_D_3_11             : out std_logic;\r
+  FF_RX_D_3_12             : out std_logic;\r
+  FF_RX_D_3_13             : out std_logic;\r
+  FF_RX_D_3_14             : out std_logic;\r
+  FF_RX_D_3_15             : out std_logic;\r
+  FF_RX_D_3_16             : out std_logic;\r
+  FF_RX_D_3_17             : out std_logic;\r
+  FF_RX_D_3_18             : out std_logic;\r
+  FF_RX_D_3_19             : out std_logic;\r
+  FF_RX_D_3_20             : out std_logic;\r
+  FF_RX_D_3_21             : out std_logic;\r
+  FF_RX_D_3_22             : out std_logic;\r
+  FF_RX_D_3_23             : out std_logic;\r
+  FF_RX_F_CLK_0             : out std_logic;\r
+  FF_RX_F_CLK_1             : out std_logic;\r
+  FF_RX_F_CLK_2             : out std_logic;\r
+  FF_RX_F_CLK_3             : out std_logic;\r
+  FF_RX_H_CLK_0             : out std_logic;\r
+  FF_RX_H_CLK_1             : out std_logic;\r
+  FF_RX_H_CLK_2             : out std_logic;\r
+  FF_RX_H_CLK_3             : out std_logic;\r
+  FF_RX_Q_CLK_0             : out std_logic;\r
+  FF_RX_Q_CLK_1             : out std_logic;\r
+  FF_RX_Q_CLK_2             : out std_logic;\r
+  FF_RX_Q_CLK_3             : out std_logic;\r
+  FF_TX_F_CLK             : out std_logic;\r
+  FF_TX_H_CLK             : out std_logic;\r
+  FF_TX_Q_CLK             : out std_logic;\r
+  FFS_CC_OVERRUN_0             : out std_logic;\r
+  FFS_CC_OVERRUN_1             : out std_logic;\r
+  FFS_CC_OVERRUN_2             : out std_logic;\r
+  FFS_CC_OVERRUN_3             : out std_logic;\r
+  FFS_CC_UNDERRUN_0             : out std_logic;\r
+  FFS_CC_UNDERRUN_1             : out std_logic;\r
+  FFS_CC_UNDERRUN_2             : out std_logic;\r
+  FFS_CC_UNDERRUN_3             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_0             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_1             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_2             : out std_logic;\r
+  FFS_LS_SYNC_STATUS_3             : out std_logic;\r
+  FFS_PCIE_CON_0             : out std_logic;\r
+  FFS_PCIE_CON_1             : out std_logic;\r
+  FFS_PCIE_CON_2             : out std_logic;\r
+  FFS_PCIE_CON_3             : out std_logic;\r
+  FFS_PCIE_DONE_0             : out std_logic;\r
+  FFS_PCIE_DONE_1             : out std_logic;\r
+  FFS_PCIE_DONE_2             : out std_logic;\r
+  FFS_PCIE_DONE_3             : out std_logic;\r
+  FFS_RLOS_LO_0             : out std_logic;\r
+  FFS_RLOS_LO_1             : out std_logic;\r
+  FFS_RLOS_LO_2             : out std_logic;\r
+  FFS_RLOS_LO_3             : out std_logic;\r
+  OOB_OUT_0             : out std_logic;\r
+  OOB_OUT_1             : out std_logic;\r
+  OOB_OUT_2             : out std_logic;\r
+  OOB_OUT_3             : out std_logic;\r
+  REFCK2CORE             : out std_logic;\r
+  SCIINT             : out std_logic;\r
+  SCIRDATA0             : out std_logic;\r
+  SCIRDATA1             : out std_logic;\r
+  SCIRDATA2             : out std_logic;\r
+  SCIRDATA3             : out std_logic;\r
+  SCIRDATA4             : out std_logic;\r
+  SCIRDATA5             : out std_logic;\r
+  SCIRDATA6             : out std_logic;\r
+  SCIRDATA7             : out std_logic;\r
+  FFS_PLOL             : out std_logic;\r
+  FFS_RLOL_0             : out std_logic;\r
+  FFS_RLOL_1             : out std_logic;\r
+  FFS_RLOL_2             : out std_logic;\r
+  FFS_RLOL_3             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_0             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_1             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_2             : out std_logic;\r
+  FFS_RXFBFIFO_ERROR_3             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_0             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_1             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_2             : out std_logic;\r
+  FFS_TXFBFIFO_ERROR_3             : out std_logic\r
+);\r
+end component;\r
+   attribute IS_ASB: string;\r
+   attribute IS_ASB of PCSC_INST : label is "ep5m00/data/ep5m00.acd";\r
+   attribute CONFIG_FILE: string;\r
+   attribute CONFIG_FILE of PCSC_INST : label is USER_CONFIG_FILE;\r
+   attribute black_box_pad_pin: string;\r
+   attribute black_box_pad_pin of PCSC : component is "HDINP0, HDINN0, HDINP1, HDINN1, HDINP2, HDINN2, HDINP3, HDINN3, HDOUTP0, HDOUTN0, HDOUTP1, HDOUTN1, HDOUTP2, HDOUTN2, HDOUTP3, HDOUTN3, REFCLKP, REFCLKN";\r
+\r
+signal fpsc_vlo : std_logic := '0';\r
+signal cin : std_logic_vector (11 downto 0) := "000000000000";\r
+signal cout : std_logic_vector (19 downto 0);\r
+\r
+begin\r
+\r
+vlo_inst : VLO port map(Z => fpsc_vlo);\r
+\r
+-- pcs_quad instance\r
+PCSC_INST : PCSC\r
+--synopsys translate_off\r
+  generic map (CONFIG_FILE => USER_CONFIG_FILE)\r
+--synopsys translate_on\r
+port map  (\r
+  FFC_CK_CORE_TX => fpsc_vlo,\r
+  FFC_CK_CORE_RX => fpsc_vlo,\r
+  REFCLKP => refclkp,\r
+  REFCLKN => refclkn,\r
+  HDINP0 => hdinp0,\r
+  HDINN0 => hdinn0,\r
+  HDOUTP0 => hdoutp0,\r
+  HDOUTN0 => hdoutn0,\r
+  SCISELCH0 => fpsc_vlo,\r
+  SCIENCH0 => fpsc_vlo,\r
+  FF_RXI_CLK_0 => ff_rxiclk_ch0,\r
+  FF_TXI_CLK_0 => ff_txiclk_ch0,\r
+  FF_EBRD_CLK_0 => ff_ebrd_clk_0,\r
+  FF_RX_F_CLK_0 => ff_rxfullclk_ch0,\r
+  FF_RX_H_CLK_0 => open,\r
+  FF_RX_Q_CLK_0 => open,\r
+  FF_TX_D_0_0 => ff_txdata_ch0(0),\r
+  FF_TX_D_0_1 => ff_txdata_ch0(1),\r
+  FF_TX_D_0_2 => ff_txdata_ch0(2),\r
+  FF_TX_D_0_3 => ff_txdata_ch0(3),\r
+  FF_TX_D_0_4 => ff_txdata_ch0(4),\r
+  FF_TX_D_0_5 => ff_txdata_ch0(5),\r
+  FF_TX_D_0_6 => ff_txdata_ch0(6),\r
+  FF_TX_D_0_7 => ff_txdata_ch0(7),\r
+  FF_TX_D_0_8 => ff_tx_k_cntrl_ch0,\r
+  FF_TX_D_0_9 => fpsc_vlo,\r
+  FF_TX_D_0_10 => ff_xmit_ch0,\r
+  FF_TX_D_0_11 => ff_correct_disp_ch0,\r
+  FF_TX_D_0_12 => fpsc_vlo,\r
+  FF_TX_D_0_13 => fpsc_vlo,\r
+  FF_TX_D_0_14 => fpsc_vlo,\r
+  FF_TX_D_0_15 => fpsc_vlo,\r
+  FF_TX_D_0_16 => fpsc_vlo,\r
+  FF_TX_D_0_17 => fpsc_vlo,\r
+  FF_TX_D_0_18 => fpsc_vlo,\r
+  FF_TX_D_0_19 => fpsc_vlo,\r
+  FF_TX_D_0_20 => fpsc_vlo,\r
+  FF_TX_D_0_21 => fpsc_vlo,\r
+  FF_TX_D_0_22 => fpsc_vlo,\r
+  FF_TX_D_0_23 => fpsc_vlo,\r
+  FF_RX_D_0_0 => ff_rxdata_ch0(0),\r
+  FF_RX_D_0_1 => ff_rxdata_ch0(1),\r
+  FF_RX_D_0_2 => ff_rxdata_ch0(2),\r
+  FF_RX_D_0_3 => ff_rxdata_ch0(3),\r
+  FF_RX_D_0_4 => ff_rxdata_ch0(4),\r
+  FF_RX_D_0_5 => ff_rxdata_ch0(5),\r
+  FF_RX_D_0_6 => ff_rxdata_ch0(6),\r
+  FF_RX_D_0_7 => ff_rxdata_ch0(7),\r
+  FF_RX_D_0_8 => ff_rx_k_cntrl_ch0,\r
+  FF_RX_D_0_9 => ff_disp_err_ch0,\r
+  FF_RX_D_0_10 => ff_cv_ch0,\r
+  FF_RX_D_0_11 => ff_rx_even_ch0,\r
+  FF_RX_D_0_12 => open,\r
+  FF_RX_D_0_13 => open,\r
+  FF_RX_D_0_14 => open,\r
+  FF_RX_D_0_15 => open,\r
+  FF_RX_D_0_16 => open,\r
+  FF_RX_D_0_17 => open,\r
+  FF_RX_D_0_18 => open,\r
+  FF_RX_D_0_19 => open,\r
+  FF_RX_D_0_20 => open,\r
+  FF_RX_D_0_21 => open,\r
+  FF_RX_D_0_22 => open,\r
+  FF_RX_D_0_23 => open,\r
+  FFC_RRST_0 => ffc_rrst_ch0,\r
+  FFC_SIGNAL_DETECT_0 => fpsc_vlo,\r
+  FFC_ENABLE_CGALIGN_0 => fpsc_vlo,\r
+  FFC_SB_PFIFO_LP_0 => fpsc_vlo,\r
+  FFC_PFIFO_CLR_0 => fpsc_vlo,\r
+  FFC_FB_LOOPBACK_0 => fpsc_vlo,\r
+  FFC_SB_INV_RX_0 => fpsc_vlo,\r
+  FFC_PCIE_CT_0 => fpsc_vlo,\r
+  FFC_PCI_DET_EN_0 => fpsc_vlo,\r
+  FFS_PCIE_DONE_0 => open,\r
+  FFS_PCIE_CON_0 => open,\r
+  FFC_EI_EN_0 => fpsc_vlo,\r
+  FFC_LANE_TX_RST_0 => ffc_lane_tx_rst_ch0,\r
+  FFC_LANE_RX_RST_0 => ffc_lane_rx_rst_ch0,\r
+  FFC_TXPWDNB_0 => ffc_txpwdnb_ch0,\r
+  FFC_RXPWDNB_0 => ffc_rxpwdnb_ch0,\r
+  FFS_RLOS_LO_0 => ffs_rlos_lo_ch0,\r
+  FFS_LS_SYNC_STATUS_0 => ffs_ls_sync_status_ch0,\r
+  FFS_CC_UNDERRUN_0 => open,\r
+  FFS_CC_OVERRUN_0 => open,\r
+  FFS_RXFBFIFO_ERROR_0 => open,\r
+  FFS_TXFBFIFO_ERROR_0 => open,\r
+  FFS_RLOL_0 => ffs_rlol_ch0,\r
+  OOB_OUT_0 => oob_out_ch0,\r
+  HDINP1 => fpsc_vlo,\r
+  HDINN1 => fpsc_vlo,\r
+  HDOUTP1 => open,\r
+  HDOUTN1 => open,\r
+  SCISELCH1 => fpsc_vlo,\r
+  SCIENCH1 => fpsc_vlo,\r
+  FF_RXI_CLK_1 => fpsc_vlo,\r
+  FF_TXI_CLK_1 => fpsc_vlo,\r
+  FF_EBRD_CLK_1 => fpsc_vlo,\r
+  FF_RX_F_CLK_1 => open,\r
+  FF_RX_H_CLK_1 => open,\r
+  FF_RX_Q_CLK_1 => open,\r
+  FF_TX_D_1_0 => fpsc_vlo,\r
+  FF_TX_D_1_1 => fpsc_vlo,\r
+  FF_TX_D_1_2 => fpsc_vlo,\r
+  FF_TX_D_1_3 => fpsc_vlo,\r
+  FF_TX_D_1_4 => fpsc_vlo,\r
+  FF_TX_D_1_5 => fpsc_vlo,\r
+  FF_TX_D_1_6 => fpsc_vlo,\r
+  FF_TX_D_1_7 => fpsc_vlo,\r
+  FF_TX_D_1_8 => fpsc_vlo,\r
+  FF_TX_D_1_9 => fpsc_vlo,\r
+  FF_TX_D_1_10 => fpsc_vlo,\r
+  FF_TX_D_1_11 => fpsc_vlo,\r
+  FF_TX_D_1_12 => fpsc_vlo,\r
+  FF_TX_D_1_13 => fpsc_vlo,\r
+  FF_TX_D_1_14 => fpsc_vlo,\r
+  FF_TX_D_1_15 => fpsc_vlo,\r
+  FF_TX_D_1_16 => fpsc_vlo,\r
+  FF_TX_D_1_17 => fpsc_vlo,\r
+  FF_TX_D_1_18 => fpsc_vlo,\r
+  FF_TX_D_1_19 => fpsc_vlo,\r
+  FF_TX_D_1_20 => fpsc_vlo,\r
+  FF_TX_D_1_21 => fpsc_vlo,\r
+  FF_TX_D_1_22 => fpsc_vlo,\r
+  FF_TX_D_1_23 => fpsc_vlo,\r
+  FF_RX_D_1_0 => open,\r
+  FF_RX_D_1_1 => open,\r
+  FF_RX_D_1_2 => open,\r
+  FF_RX_D_1_3 => open,\r
+  FF_RX_D_1_4 => open,\r
+  FF_RX_D_1_5 => open,\r
+  FF_RX_D_1_6 => open,\r
+  FF_RX_D_1_7 => open,\r
+  FF_RX_D_1_8 => open,\r
+  FF_RX_D_1_9 => open,\r
+  FF_RX_D_1_10 => open,\r
+  FF_RX_D_1_11 => open,\r
+  FF_RX_D_1_12 => open,\r
+  FF_RX_D_1_13 => open,\r
+  FF_RX_D_1_14 => open,\r
+  FF_RX_D_1_15 => open,\r
+  FF_RX_D_1_16 => open,\r
+  FF_RX_D_1_17 => open,\r
+  FF_RX_D_1_18 => open,\r
+  FF_RX_D_1_19 => open,\r
+  FF_RX_D_1_20 => open,\r
+  FF_RX_D_1_21 => open,\r
+  FF_RX_D_1_22 => open,\r
+  FF_RX_D_1_23 => open,\r
+  FFC_RRST_1 => fpsc_vlo,\r
+  FFC_SIGNAL_DETECT_1 => fpsc_vlo,\r
+  FFC_SB_PFIFO_LP_1 => fpsc_vlo,\r
+  FFC_SB_INV_RX_1 => fpsc_vlo,\r
+  FFC_PFIFO_CLR_1 => fpsc_vlo,\r
+  FFC_PCIE_CT_1 => fpsc_vlo,\r
+  FFC_PCI_DET_EN_1 => fpsc_vlo,\r
+  FFC_FB_LOOPBACK_1 => fpsc_vlo,\r
+  FFC_ENABLE_CGALIGN_1 => fpsc_vlo,\r
+  FFC_EI_EN_1 => fpsc_vlo,\r
+  FFC_LANE_TX_RST_1 => fpsc_vlo,\r
+  FFC_LANE_RX_RST_1 => fpsc_vlo,\r
+  FFC_TXPWDNB_1 => fpsc_vlo,\r
+  FFC_RXPWDNB_1 => fpsc_vlo,\r
+  FFS_RLOS_LO_1 => open,\r
+  FFS_PCIE_DONE_1 => open,\r
+  FFS_PCIE_CON_1 => open,\r
+  FFS_LS_SYNC_STATUS_1 => open,\r
+  FFS_CC_UNDERRUN_1 => open,\r
+  FFS_CC_OVERRUN_1 => open,\r
+  FFS_RLOL_1 => open,\r
+  FFS_RXFBFIFO_ERROR_1 => open,\r
+  FFS_TXFBFIFO_ERROR_1 => open,\r
+  OOB_OUT_1 => open,\r
+  HDINP2 => fpsc_vlo,\r
+  HDINN2 => fpsc_vlo,\r
+  HDOUTP2 => open,\r
+  HDOUTN2 => open,\r
+  SCISELCH2 => fpsc_vlo,\r
+  SCIENCH2 => fpsc_vlo,\r
+  FF_RXI_CLK_2 => fpsc_vlo,\r
+  FF_TXI_CLK_2 => fpsc_vlo,\r
+  FF_EBRD_CLK_2 => fpsc_vlo,\r
+  FF_RX_F_CLK_2 => open,\r
+  FF_RX_H_CLK_2 => open,\r
+  FF_RX_Q_CLK_2 => open,\r
+  FF_TX_D_2_0 => fpsc_vlo,\r
+  FF_TX_D_2_1 => fpsc_vlo,\r
+  FF_TX_D_2_2 => fpsc_vlo,\r
+  FF_TX_D_2_3 => fpsc_vlo,\r
+  FF_TX_D_2_4 => fpsc_vlo,\r
+  FF_TX_D_2_5 => fpsc_vlo,\r
+  FF_TX_D_2_6 => fpsc_vlo,\r
+  FF_TX_D_2_7 => fpsc_vlo,\r
+  FF_TX_D_2_8 => fpsc_vlo,\r
+  FF_TX_D_2_9 => fpsc_vlo,\r
+  FF_TX_D_2_10 => fpsc_vlo,\r
+  FF_TX_D_2_11 => fpsc_vlo,\r
+  FF_TX_D_2_12 => fpsc_vlo,\r
+  FF_TX_D_2_13 => fpsc_vlo,\r
+  FF_TX_D_2_14 => fpsc_vlo,\r
+  FF_TX_D_2_15 => fpsc_vlo,\r
+  FF_TX_D_2_16 => fpsc_vlo,\r
+  FF_TX_D_2_17 => fpsc_vlo,\r
+  FF_TX_D_2_18 => fpsc_vlo,\r
+  FF_TX_D_2_19 => fpsc_vlo,\r
+  FF_TX_D_2_20 => fpsc_vlo,\r
+  FF_TX_D_2_21 => fpsc_vlo,\r
+  FF_TX_D_2_22 => fpsc_vlo,\r
+  FF_TX_D_2_23 => fpsc_vlo,\r
+  FF_RX_D_2_0 => open,\r
+  FF_RX_D_2_1 => open,\r
+  FF_RX_D_2_2 => open,\r
+  FF_RX_D_2_3 => open,\r
+  FF_RX_D_2_4 => open,\r
+  FF_RX_D_2_5 => open,\r
+  FF_RX_D_2_6 => open,\r
+  FF_RX_D_2_7 => open,\r
+  FF_RX_D_2_8 => open,\r
+  FF_RX_D_2_9 => open,\r
+  FF_RX_D_2_10 => open,\r
+  FF_RX_D_2_11 => open,\r
+  FF_RX_D_2_12 => open,\r
+  FF_RX_D_2_13 => open,\r
+  FF_RX_D_2_14 => open,\r
+  FF_RX_D_2_15 => open,\r
+  FF_RX_D_2_16 => open,\r
+  FF_RX_D_2_17 => open,\r
+  FF_RX_D_2_18 => open,\r
+  FF_RX_D_2_19 => open,\r
+  FF_RX_D_2_20 => open,\r
+  FF_RX_D_2_21 => open,\r
+  FF_RX_D_2_22 => open,\r
+  FF_RX_D_2_23 => open,\r
+  FFC_RRST_2 => fpsc_vlo,\r
+  FFC_SIGNAL_DETECT_2 => fpsc_vlo,\r
+  FFC_SB_PFIFO_LP_2 => fpsc_vlo,\r
+  FFC_SB_INV_RX_2 => fpsc_vlo,\r
+  FFC_PFIFO_CLR_2 => fpsc_vlo,\r
+  FFC_PCIE_CT_2 => fpsc_vlo,\r
+  FFC_PCI_DET_EN_2 => fpsc_vlo,\r
+  FFC_FB_LOOPBACK_2 => fpsc_vlo,\r
+  FFC_ENABLE_CGALIGN_2 => fpsc_vlo,\r
+  FFC_EI_EN_2 => fpsc_vlo,\r
+  FFC_LANE_TX_RST_2 => fpsc_vlo,\r
+  FFC_LANE_RX_RST_2 => fpsc_vlo,\r
+  FFC_TXPWDNB_2 => fpsc_vlo,\r
+  FFC_RXPWDNB_2 => fpsc_vlo,\r
+  FFS_RLOS_LO_2 => open,\r
+  FFS_PCIE_DONE_2 => open,\r
+  FFS_PCIE_CON_2 => open,\r
+  FFS_LS_SYNC_STATUS_2 => open,\r
+  FFS_CC_UNDERRUN_2 => open,\r
+  FFS_CC_OVERRUN_2 => open,\r
+  FFS_RLOL_2 => open,\r
+  FFS_RXFBFIFO_ERROR_2 => open,\r
+  FFS_TXFBFIFO_ERROR_2 => open,\r
+  OOB_OUT_2 => open,\r
+  HDINP3 => fpsc_vlo,\r
+  HDINN3 => fpsc_vlo,\r
+  HDOUTP3 => open,\r
+  HDOUTN3 => open,\r
+  SCISELCH3 => fpsc_vlo,\r
+  SCIENCH3 => fpsc_vlo,\r
+  FF_RXI_CLK_3 => fpsc_vlo,\r
+  FF_TXI_CLK_3 => fpsc_vlo,\r
+  FF_EBRD_CLK_3 => fpsc_vlo,\r
+  FF_RX_F_CLK_3 => open,\r
+  FF_RX_H_CLK_3 => open,\r
+  FF_RX_Q_CLK_3 => open,\r
+  FF_TX_D_3_0 => fpsc_vlo,\r
+  FF_TX_D_3_1 => fpsc_vlo,\r
+  FF_TX_D_3_2 => fpsc_vlo,\r
+  FF_TX_D_3_3 => fpsc_vlo,\r
+  FF_TX_D_3_4 => fpsc_vlo,\r
+  FF_TX_D_3_5 => fpsc_vlo,\r
+  FF_TX_D_3_6 => fpsc_vlo,\r
+  FF_TX_D_3_7 => fpsc_vlo,\r
+  FF_TX_D_3_8 => fpsc_vlo,\r
+  FF_TX_D_3_9 => fpsc_vlo,\r
+  FF_TX_D_3_10 => fpsc_vlo,\r
+  FF_TX_D_3_11 => fpsc_vlo,\r
+  FF_TX_D_3_12 => fpsc_vlo,\r
+  FF_TX_D_3_13 => fpsc_vlo,\r
+  FF_TX_D_3_14 => fpsc_vlo,\r
+  FF_TX_D_3_15 => fpsc_vlo,\r
+  FF_TX_D_3_16 => fpsc_vlo,\r
+  FF_TX_D_3_17 => fpsc_vlo,\r
+  FF_TX_D_3_18 => fpsc_vlo,\r
+  FF_TX_D_3_19 => fpsc_vlo,\r
+  FF_TX_D_3_20 => fpsc_vlo,\r
+  FF_TX_D_3_21 => fpsc_vlo,\r
+  FF_TX_D_3_22 => fpsc_vlo,\r
+  FF_TX_D_3_23 => fpsc_vlo,\r
+  FF_RX_D_3_0 => open,\r
+  FF_RX_D_3_1 => open,\r
+  FF_RX_D_3_2 => open,\r
+  FF_RX_D_3_3 => open,\r
+  FF_RX_D_3_4 => open,\r
+  FF_RX_D_3_5 => open,\r
+  FF_RX_D_3_6 => open,\r
+  FF_RX_D_3_7 => open,\r
+  FF_RX_D_3_8 => open,\r
+  FF_RX_D_3_9 => open,\r
+  FF_RX_D_3_10 => open,\r
+  FF_RX_D_3_11 => open,\r
+  FF_RX_D_3_12 => open,\r
+  FF_RX_D_3_13 => open,\r
+  FF_RX_D_3_14 => open,\r
+  FF_RX_D_3_15 => open,\r
+  FF_RX_D_3_16 => open,\r
+  FF_RX_D_3_17 => open,\r
+  FF_RX_D_3_18 => open,\r
+  FF_RX_D_3_19 => open,\r
+  FF_RX_D_3_20 => open,\r
+  FF_RX_D_3_21 => open,\r
+  FF_RX_D_3_22 => open,\r
+  FF_RX_D_3_23 => open,\r
+  FFC_RRST_3 => fpsc_vlo,\r
+  FFC_SIGNAL_DETECT_3 => fpsc_vlo,\r
+  FFC_SB_PFIFO_LP_3 => fpsc_vlo,\r
+  FFC_SB_INV_RX_3 => fpsc_vlo,\r
+  FFC_PFIFO_CLR_3 => fpsc_vlo,\r
+  FFC_PCIE_CT_3 => fpsc_vlo,\r
+  FFC_PCI_DET_EN_3 => fpsc_vlo,\r
+  FFC_FB_LOOPBACK_3 => fpsc_vlo,\r
+  FFC_ENABLE_CGALIGN_3 => fpsc_vlo,\r
+  FFC_EI_EN_3 => fpsc_vlo,\r
+  FFC_LANE_TX_RST_3 => fpsc_vlo,\r
+  FFC_LANE_RX_RST_3 => fpsc_vlo,\r
+  FFC_TXPWDNB_3 => fpsc_vlo,\r
+  FFC_RXPWDNB_3 => fpsc_vlo,\r
+  FFS_RLOS_LO_3 => open,\r
+  FFS_PCIE_DONE_3 => open,\r
+  FFS_PCIE_CON_3 => open,\r
+  FFS_LS_SYNC_STATUS_3 => open,\r
+  FFS_CC_UNDERRUN_3 => open,\r
+  FFS_CC_OVERRUN_3 => open,\r
+  FFS_RLOL_3 => open,\r
+  FFS_RXFBFIFO_ERROR_3 => open,\r
+  FFS_TXFBFIFO_ERROR_3 => open,\r
+  OOB_OUT_3 => open,\r
+  SCIWDATA0 => fpsc_vlo,\r
+  SCIWDATA1 => fpsc_vlo,\r
+  SCIWDATA2 => fpsc_vlo,\r
+  SCIWDATA3 => fpsc_vlo,\r
+  SCIWDATA4 => fpsc_vlo,\r
+  SCIWDATA5 => fpsc_vlo,\r
+  SCIWDATA6 => fpsc_vlo,\r
+  SCIWDATA7 => fpsc_vlo,\r
+  SCIADDR0 => fpsc_vlo,\r
+  SCIADDR1 => fpsc_vlo,\r
+  SCIADDR2 => fpsc_vlo,\r
+  SCIADDR3 => fpsc_vlo,\r
+  SCIADDR4 => fpsc_vlo,\r
+  SCIADDR5 => fpsc_vlo,\r
+  SCIRDATA0 => open,\r
+  SCIRDATA1 => open,\r
+  SCIRDATA2 => open,\r
+  SCIRDATA3 => open,\r
+  SCIRDATA4 => open,\r
+  SCIRDATA5 => open,\r
+  SCIRDATA6 => open,\r
+  SCIRDATA7 => open,\r
+  SCIENAUX => fpsc_vlo,\r
+  SCISELAUX => fpsc_vlo,\r
+  SCIRD => fpsc_vlo,\r
+  SCIWSTN => fpsc_vlo,\r
+  CYAWSTN => fpsc_vlo,\r
+  SCIINT => open,\r
+  FFC_MACRO_RST => ffc_macro_rst,\r
+  FFC_QUAD_RST => ffc_quad_rst,\r
+  FFC_TRST => ffc_trst,\r
+  FF_TX_F_CLK => ff_txfullclk,\r
+  FF_TX_H_CLK => ff_txhalfclk,\r
+  FF_TX_Q_CLK => open,\r
+  REFCK2CORE => refck2core,\r
+  CIN0 => cin(0),\r
+  CIN1 => cin(1),\r
+  CIN2 => cin(2),\r
+  CIN3 => cin(3),\r
+  CIN4 => cin(4),\r
+  CIN5 => cin(5),\r
+  CIN6 => cin(6),\r
+  CIN7 => cin(7),\r
+  CIN8 => cin(8),\r
+  CIN9 => cin(9),\r
+  CIN10 => cin(10),\r
+  CIN11 => cin(11),\r
+  COUT0 => cout(0),\r
+  COUT1 => cout(1),\r
+  COUT2 => cout(2),\r
+  COUT3 => cout(3),\r
+  COUT4 => cout(4),\r
+  COUT5 => cout(5),\r
+  COUT6 => cout(6),\r
+  COUT7 => cout(7),\r
+  COUT8 => cout(8),\r
+  COUT9 => cout(9),\r
+  COUT10 => cout(10),\r
+  COUT11 => cout(11),\r
+  COUT12 => cout(12),\r
+  COUT13 => cout(13),\r
+  COUT14 => cout(14),\r
+  COUT15 => cout(15),\r
+  COUT16 => cout(16),\r
+  COUT17 => cout(17),\r
+  COUT18 => cout(18),\r
+  COUT19 => cout(19),\r
+  FFS_PLOL => ffs_plol);\r
+\r
+--synopsys translate_off\r
+file_read : PROCESS\r
+VARIABLE open_status : file_open_status;\r
+FILE config : text;\r
+BEGIN\r
+   file_open (open_status, config, USER_CONFIG_FILE, read_mode);\r
+   IF (open_status = name_error) THEN\r
+      report "Auto configuration file for PCS module not found.  PCS internal configuration registers will not be initialized correctly during simulation!"\r
+      severity ERROR;\r
+   END IF;\r
+   wait;\r
+END PROCESS;\r
+--synopsys translate_on\r
+\r
+end serdes_gbe_0_extclock_8b_arch ;\r
diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/.cvsignore
new file mode 100644 (file)
index 0000000..67edf82
--- /dev/null
@@ -0,0 +1,11 @@
+*.jhd
+*.naf
+*.srp
+*.sym
+*.log
+*.v
+*.htm
+*.tcl
+*tmpl.vhd
+sgmii_pcs_eval
+
diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo
new file mode 100755 (executable)
index 0000000..d3c4b97
Binary files /dev/null and b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/pmi_fifo_dcLEan71301616161010.ngo differ
diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.lpc
new file mode 100755 (executable)
index 0000000..6f17c6f
--- /dev/null
@@ -0,0 +1,26 @@
+[Device]\r
+Family=ep5m00\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-5F900C\r
+SpeedGrade=-5\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=IPCFG\r
+CoreStatus=Demo\r
+CoreName=SGMII/Gb Ethernet PCS\r
+CoreRevision=3.2\r
+ModuleName=sgmii_gbe_pcs32\r
+SourceFormat=VHDL\r
+ParameterFileVersion=1.0\r
+Date=12/10/2009\r
+Time=15:57:40\r
+\r
+[Parameters]\r
+RX_CTC=2\r
+RX_CTC_LOW=16\r
+RX_CTC_HIGH=32\r
+EasyConnect=1\r
diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo
new file mode 100755 (executable)
index 0000000..c6f8129
Binary files /dev/null and b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo differ
diff --git a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar
new file mode 100644 (file)
index 0000000..afc70d6
Binary files /dev/null and b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_pcs_eval.tar differ
diff --git a/gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_2048x8_tmpl.vhd
new file mode 100755 (executable)
index 0000000..31ea3c3
--- /dev/null
@@ -0,0 +1,102 @@
+-- VHDL testbench template generated by SCUBA ispLever_v72_SP2_Build (23)\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+use IEEE.std_logic_unsigned.all;\r
+\r
+entity tb is\r
+end entity tb;\r
+\r
+\r
+architecture test of tb is \r
+\r
+    component fifo_2048x8\r
+        port (Data : in std_logic_vector(7 downto 0); \r
+        WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; \r
+        RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; \r
+        Q : out std_logic_vector(7 downto 0); Empty: out std_logic; \r
+        Full: out std_logic\r
+    );\r
+    end component;\r
+\r
+    signal Data : std_logic_vector(7 downto 0) := (others => '0');\r
+    signal WrClock: std_logic := '0';\r
+    signal RdClock: std_logic := '0';\r
+    signal WrEn: std_logic := '0';\r
+    signal RdEn: std_logic := '0';\r
+    signal Reset: std_logic := '0';\r
+    signal RPReset: std_logic := '0';\r
+    signal Q : std_logic_vector(7 downto 0);\r
+    signal Empty: std_logic;\r
+    signal Full: std_logic;\r
+begin\r
+    u1 : fifo_2048x8\r
+        port map (Data => Data, WrClock => WrClock, RdClock => RdClock, \r
+            WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, \r
+            Q => Q, Empty => Empty, Full => Full\r
+        );\r
+\r
+    process\r
+\r
+    begin\r
+      Data <= (others => '0') ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 2051 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        Data <= Data + '1' after 1 ns;\r
+      end loop;\r
+      wait;\r
+    end process;\r
+\r
+    WrClock <= not WrClock after 5.00 ns;\r
+\r
+    RdClock <= not RdClock after 5.00 ns;\r
+\r
+    process\r
+\r
+    begin\r
+      WrEn <= '0' ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 2051 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        WrEn <= '1' after 1 ns;\r
+      end loop;\r
+      WrEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RdEn <= '0' ;\r
+      wait until Reset = '0';\r
+      wait until WrEn = '1';\r
+      wait until WrEn = '0';\r
+      for i in 0 to 2051 loop\r
+        wait until RdClock'event and RdClock = '1';\r
+        RdEn <= '1' after 1 ns;\r
+      end loop;\r
+      RdEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      Reset <= '1' ;\r
+      wait for 100 ns;\r
+      Reset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RPReset <= '1' ;\r
+      wait for 100 ns;\r
+      RPReset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+end architecture test;\r
diff --git a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_mb_tmpl.vhd
new file mode 100755 (executable)
index 0000000..faff46a
--- /dev/null
@@ -0,0 +1,115 @@
+-- VHDL testbench template generated by SCUBA ispLever_v8.0_PROD_Build (41)
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.std_logic_unsigned.all;
+
+entity tb is
+end entity tb;
+
+
+architecture test of tb is 
+
+    component fifo_32kx16x8_mb
+        port (Data : in std_logic_vector(15 downto 0); 
+        WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; 
+        RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; 
+        AmEmptyThresh : in std_logic_vector(15 downto 0); 
+        AmFullThresh : in std_logic_vector(14 downto 0); 
+        Q : out std_logic_vector(7 downto 0); 
+        WCNT : out std_logic_vector(15 downto 0); 
+        RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; 
+        Full: out std_logic; AlmostEmpty: out std_logic; 
+        AlmostFull: out std_logic
+    );
+    end component;
+
+    signal Data : std_logic_vector(15 downto 0) := (others => '0');
+    signal WrClock: std_logic := '0';
+    signal RdClock: std_logic := '0';
+    signal WrEn: std_logic := '0';
+    signal RdEn: std_logic := '0';
+    signal Reset: std_logic := '0';
+    signal RPReset: std_logic := '0';
+    signal AmEmptyThresh : std_logic_vector(15 downto 0) := (others => '0');
+    signal AmFullThresh : std_logic_vector(14 downto 0) := (others => '0');
+    signal Q : std_logic_vector(7 downto 0);
+    signal WCNT : std_logic_vector(15 downto 0);
+    signal RCNT : std_logic_vector(16 downto 0);
+    signal Empty: std_logic;
+    signal Full: std_logic;
+    signal AlmostEmpty: std_logic;
+    signal AlmostFull: std_logic;
+begin
+    u1 : fifo_32kx16x8_mb
+        port map (Data => Data, WrClock => WrClock, RdClock => RdClock, 
+            WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, 
+            AmEmptyThresh => AmEmptyThresh, AmFullThresh => AmFullThresh, 
+            Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full, 
+            AlmostEmpty => AlmostEmpty, AlmostFull => AlmostFull
+        );
+
+    process
+
+    begin
+      Data <= (others => '0') ;
+      wait for 100 ns;
+      wait until Reset = '0';
+      for i in 0 to 32771 loop
+        wait until WrClock'event and WrClock = '1';
+        Data <= Data + '1' after 1 ns;
+      end loop;
+      wait;
+    end process;
+
+    WrClock <= not WrClock after 5.00 ns;
+
+    RdClock <= not RdClock after 5.00 ns;
+
+    process
+
+    begin
+      WrEn <= '0' ;
+      wait for 100 ns;
+      wait until Reset = '0';
+      for i in 0 to 32771 loop
+        wait until WrClock'event and WrClock = '1';
+        WrEn <= '1' after 1 ns;
+      end loop;
+      WrEn <= '0' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      RdEn <= '0' ;
+      wait until Reset = '0';
+      wait until WrEn = '1';
+      wait until WrEn = '0';
+      for i in 0 to 32771 loop
+        wait until RdClock'event and RdClock = '1';
+        RdEn <= '1' after 1 ns;
+      end loop;
+      RdEn <= '0' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      Reset <= '1' ;
+      wait for 100 ns;
+      Reset <= '0' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      RPReset <= '1' ;
+      wait for 100 ns;
+      RPReset <= '0' ;
+      wait;
+    end process;
+
+end architecture test;
diff --git a/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_32kx16x8_tmpl.vhd
new file mode 100755 (executable)
index 0000000..3bbafb6
--- /dev/null
@@ -0,0 +1,106 @@
+-- VHDL testbench template generated by SCUBA ispLever_v8.0_PROD_Build (41)\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+use IEEE.std_logic_unsigned.all;\r
+\r
+entity tb is\r
+end entity tb;\r
+\r
+\r
+architecture test of tb is \r
+\r
+    component fifo_32kx16x8\r
+        port (Data : in std_logic_vector(15 downto 0); \r
+        WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; \r
+        RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; \r
+        Q : out std_logic_vector(7 downto 0); \r
+        WCNT : out std_logic_vector(15 downto 0); \r
+        RCNT : out std_logic_vector(16 downto 0); Empty: out std_logic; \r
+        Full: out std_logic\r
+    );\r
+    end component;\r
+\r
+    signal Data : std_logic_vector(15 downto 0) := (others => '0');\r
+    signal WrClock: std_logic := '0';\r
+    signal RdClock: std_logic := '0';\r
+    signal WrEn: std_logic := '0';\r
+    signal RdEn: std_logic := '0';\r
+    signal Reset: std_logic := '0';\r
+    signal RPReset: std_logic := '0';\r
+    signal Q : std_logic_vector(7 downto 0);\r
+    signal WCNT : std_logic_vector(15 downto 0);\r
+    signal RCNT : std_logic_vector(16 downto 0);\r
+    signal Empty: std_logic;\r
+    signal Full: std_logic;\r
+begin\r
+    u1 : fifo_32kx16x8\r
+        port map (Data => Data, WrClock => WrClock, RdClock => RdClock, \r
+            WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, \r
+            Q => Q, WCNT => WCNT, RCNT => RCNT, Empty => Empty, Full => Full\r
+        );\r
+\r
+    process\r
+\r
+    begin\r
+      Data <= (others => '0') ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 32771 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        Data <= Data + '1' after 1 ns;\r
+      end loop;\r
+      wait;\r
+    end process;\r
+\r
+    WrClock <= not WrClock after 5.00 ns;\r
+\r
+    RdClock <= not RdClock after 5.00 ns;\r
+\r
+    process\r
+\r
+    begin\r
+      WrEn <= '0' ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 32771 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        WrEn <= '1' after 1 ns;\r
+      end loop;\r
+      WrEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RdEn <= '0' ;\r
+      wait until Reset = '0';\r
+      wait until WrEn = '1';\r
+      wait until WrEn = '0';\r
+      for i in 0 to 32771 loop\r
+        wait until RdClock'event and RdClock = '1';\r
+        RdEn <= '1' after 1 ns;\r
+      end loop;\r
+      RdEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      Reset <= '1' ;\r
+      wait for 100 ns;\r
+      Reset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RPReset <= '1' ;\r
+      wait for 100 ns;\r
+      RPReset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+end architecture test;\r
diff --git a/gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_4096x32_tmpl.vhd
new file mode 100755 (executable)
index 0000000..69b93a2
--- /dev/null
@@ -0,0 +1,102 @@
+-- VHDL testbench template generated by SCUBA ispLever_v8.0_PROD_Build (41)\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+use IEEE.std_logic_unsigned.all;\r
+\r
+entity tb is\r
+end entity tb;\r
+\r
+\r
+architecture test of tb is \r
+\r
+    component fifo_4096x32\r
+        port (Data : in std_logic_vector(31 downto 0); \r
+        WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; \r
+        RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; \r
+        Q : out std_logic_vector(31 downto 0); Empty: out std_logic; \r
+        Full: out std_logic\r
+    );\r
+    end component;\r
+\r
+    signal Data : std_logic_vector(31 downto 0) := (others => '0');\r
+    signal WrClock: std_logic := '0';\r
+    signal RdClock: std_logic := '0';\r
+    signal WrEn: std_logic := '0';\r
+    signal RdEn: std_logic := '0';\r
+    signal Reset: std_logic := '0';\r
+    signal RPReset: std_logic := '0';\r
+    signal Q : std_logic_vector(31 downto 0);\r
+    signal Empty: std_logic;\r
+    signal Full: std_logic;\r
+begin\r
+    u1 : fifo_4096x32\r
+        port map (Data => Data, WrClock => WrClock, RdClock => RdClock, \r
+            WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, \r
+            Q => Q, Empty => Empty, Full => Full\r
+        );\r
+\r
+    process\r
+\r
+    begin\r
+      Data <= (others => '0') ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 4099 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        Data <= Data + '1' after 1 ns;\r
+      end loop;\r
+      wait;\r
+    end process;\r
+\r
+    WrClock <= not WrClock after 5.00 ns;\r
+\r
+    RdClock <= not RdClock after 5.00 ns;\r
+\r
+    process\r
+\r
+    begin\r
+      WrEn <= '0' ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 4099 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        WrEn <= '1' after 1 ns;\r
+      end loop;\r
+      WrEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RdEn <= '0' ;\r
+      wait until Reset = '0';\r
+      wait until WrEn = '1';\r
+      wait until WrEn = '0';\r
+      for i in 0 to 4099 loop\r
+        wait until RdClock'event and RdClock = '1';\r
+        RdEn <= '1' after 1 ns;\r
+      end loop;\r
+      RdEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      Reset <= '1' ;\r
+      wait for 100 ns;\r
+      Reset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RPReset <= '1' ;\r
+      wait for 100 ns;\r
+      RPReset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+end architecture test;\r
diff --git a/gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_4096x9_tmpl.vhd
new file mode 100755 (executable)
index 0000000..a300fbe
--- /dev/null
@@ -0,0 +1,102 @@
+-- VHDL testbench template generated by SCUBA ispLever_v72_SP2_Build (23)\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+use IEEE.std_logic_unsigned.all;\r
+\r
+entity tb is\r
+end entity tb;\r
+\r
+\r
+architecture test of tb is \r
+\r
+    component fifo_4096x9\r
+        port (Data : in std_logic_vector(8 downto 0); \r
+        WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; \r
+        RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; \r
+        Q : out std_logic_vector(8 downto 0); Empty: out std_logic; \r
+        Full: out std_logic\r
+    );\r
+    end component;\r
+\r
+    signal Data : std_logic_vector(8 downto 0) := (others => '0');\r
+    signal WrClock: std_logic := '0';\r
+    signal RdClock: std_logic := '0';\r
+    signal WrEn: std_logic := '0';\r
+    signal RdEn: std_logic := '0';\r
+    signal Reset: std_logic := '0';\r
+    signal RPReset: std_logic := '0';\r
+    signal Q : std_logic_vector(8 downto 0);\r
+    signal Empty: std_logic;\r
+    signal Full: std_logic;\r
+begin\r
+    u1 : fifo_4096x9\r
+        port map (Data => Data, WrClock => WrClock, RdClock => RdClock, \r
+            WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, \r
+            Q => Q, Empty => Empty, Full => Full\r
+        );\r
+\r
+    process\r
+\r
+    begin\r
+      Data <= (others => '0') ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 4099 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        Data <= Data + '1' after 1 ns;\r
+      end loop;\r
+      wait;\r
+    end process;\r
+\r
+    WrClock <= not WrClock after 5.00 ns;\r
+\r
+    RdClock <= not RdClock after 5.00 ns;\r
+\r
+    process\r
+\r
+    begin\r
+      WrEn <= '0' ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 4099 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        WrEn <= '1' after 1 ns;\r
+      end loop;\r
+      WrEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RdEn <= '0' ;\r
+      wait until Reset = '0';\r
+      wait until WrEn = '1';\r
+      wait until WrEn = '0';\r
+      for i in 0 to 4099 loop\r
+        wait until RdClock'event and RdClock = '1';\r
+        RdEn <= '1' after 1 ns;\r
+      end loop;\r
+      RdEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      Reset <= '1' ;\r
+      wait for 100 ns;\r
+      Reset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RPReset <= '1' ;\r
+      wait for 100 ns;\r
+      RPReset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+end architecture test;\r
diff --git a/gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd b/gbe_ecp2m/ipcores/tb_fifo_64kx8_tmpl.vhd
new file mode 100755 (executable)
index 0000000..b60730e
--- /dev/null
@@ -0,0 +1,102 @@
+-- VHDL testbench template generated by SCUBA ispLever_v72_SP2_Build (23)\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+use IEEE.std_logic_unsigned.all;\r
+\r
+entity tb is\r
+end entity tb;\r
+\r
+\r
+architecture test of tb is \r
+\r
+    component fifo_64kx8\r
+        port (Data : in std_logic_vector(7 downto 0); \r
+        WrClock: in std_logic; RdClock: in std_logic; WrEn: in std_logic; \r
+        RdEn: in std_logic; Reset: in std_logic; RPReset: in std_logic; \r
+        Q : out std_logic_vector(7 downto 0); Empty: out std_logic; \r
+        Full: out std_logic\r
+    );\r
+    end component;\r
+\r
+    signal Data : std_logic_vector(7 downto 0) := (others => '0');\r
+    signal WrClock: std_logic := '0';\r
+    signal RdClock: std_logic := '0';\r
+    signal WrEn: std_logic := '0';\r
+    signal RdEn: std_logic := '0';\r
+    signal Reset: std_logic := '0';\r
+    signal RPReset: std_logic := '0';\r
+    signal Q : std_logic_vector(7 downto 0);\r
+    signal Empty: std_logic;\r
+    signal Full: std_logic;\r
+begin\r
+    u1 : fifo_64kx8\r
+        port map (Data => Data, WrClock => WrClock, RdClock => RdClock, \r
+            WrEn => WrEn, RdEn => RdEn, Reset => Reset, RPReset => RPReset, \r
+            Q => Q, Empty => Empty, Full => Full\r
+        );\r
+\r
+    process\r
+\r
+    begin\r
+      Data <= (others => '0') ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 65539 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        Data <= Data + '1' after 1 ns;\r
+      end loop;\r
+      wait;\r
+    end process;\r
+\r
+    WrClock <= not WrClock after 5.00 ns;\r
+\r
+    RdClock <= not RdClock after 5.00 ns;\r
+\r
+    process\r
+\r
+    begin\r
+      WrEn <= '0' ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 65539 loop\r
+        wait until WrClock'event and WrClock = '1';\r
+        WrEn <= '1' after 1 ns;\r
+      end loop;\r
+      WrEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RdEn <= '0' ;\r
+      wait until Reset = '0';\r
+      wait until WrEn = '1';\r
+      wait until WrEn = '0';\r
+      for i in 0 to 65539 loop\r
+        wait until RdClock'event and RdClock = '1';\r
+        RdEn <= '1' after 1 ns;\r
+      end loop;\r
+      RdEn <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      Reset <= '1' ;\r
+      wait for 100 ns;\r
+      Reset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      RPReset <= '1' ;\r
+      wait for 100 ns;\r
+      RPReset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+end architecture test;\r
diff --git a/gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd b/gbe_ecp2m/ipcores/tb_ip_mem_tmpl.vhd
new file mode 100755 (executable)
index 0000000..3b2d37f
--- /dev/null
@@ -0,0 +1,174 @@
+-- VHDL testbench template generated by SCUBA ispLever_v72_SP2_Build (23)
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.std_logic_unsigned.all;
+
+entity tb is
+end entity tb;
+
+
+architecture test of tb is 
+
+    component ip_mem
+        port (DataInA : in std_logic_vector(31 downto 0); 
+        DataInB : in std_logic_vector(31 downto 0); 
+        AddressA : in std_logic_vector(7 downto 0); 
+        AddressB : in std_logic_vector(7 downto 0); ClockA: in std_logic; 
+        ClockB: in std_logic; ClockEnA: in std_logic; 
+        ClockEnB: in std_logic; WrA: in std_logic; WrB: in std_logic; 
+        ResetA: in std_logic; ResetB: in std_logic; 
+        QA : out std_logic_vector(31 downto 0); 
+        QB : out std_logic_vector(31 downto 0)
+    );
+    end component;
+
+    signal DataInA : std_logic_vector(31 downto 0) := (others => '0');
+    signal DataInB : std_logic_vector(31 downto 0) := (others => '0');
+    signal AddressA : std_logic_vector(7 downto 0) := (others => '0');
+    signal AddressB : std_logic_vector(7 downto 0) := (others => '0');
+    signal ClockA: std_logic := '0';
+    signal ClockB: std_logic := '0';
+    signal ClockEnA: std_logic := '0';
+    signal ClockEnB: std_logic := '0';
+    signal WrA: std_logic := '0';
+    signal WrB: std_logic := '0';
+    signal ResetA: std_logic := '0';
+    signal ResetB: std_logic := '0';
+    signal QA : std_logic_vector(31 downto 0);
+    signal QB : std_logic_vector(31 downto 0);
+begin
+    u1 : ip_mem
+        port map (DataInA => DataInA, DataInB => DataInB, AddressA => AddressA, 
+            AddressB => AddressB, ClockA => ClockA, ClockB => ClockB, 
+            ClockEnA => ClockEnA, ClockEnB => ClockEnB, WrA => WrA, WrB => WrB, 
+            ResetA => ResetA, ResetB => ResetB, QA => QA, QB => QB
+        );
+
+    process
+
+    begin
+      DataInA <= (others => '0') ;
+      wait for 100 ns;
+      wait until ResetA = '0';
+      for i in 0 to 259 loop
+        wait until ClockA'event and ClockA = '1';
+        DataInA <= DataInA + '1' after 1 ns;
+      end loop;
+      wait;
+    end process;
+
+    process
+
+    begin
+      DataInB <= (others => '0') ;
+      wait for 100 ns;
+      wait until ResetB = '0';
+      wait until WrB = '1';
+      for i in 0 to 259 loop
+        wait until ClockB'event and ClockB = '1';
+        DataInB <= DataInB + '1' after 1 ns;
+      end loop;
+      wait;
+    end process;
+
+    process
+
+    begin
+      AddressA <= (others => '0') ;
+      wait for 100 ns;
+      wait until ResetA = '0';
+      for i in 0 to 518 loop
+        wait until ClockA'event and ClockA = '1';
+        AddressA <= AddressA + '1' after 1 ns;
+      end loop;
+      wait;
+    end process;
+
+    process
+
+    begin
+      AddressB <= (others => '0') ;
+      wait for 100 ns;
+      wait until ResetB = '0';
+      wait until WrB = '1';
+      for i in 0 to 518 loop
+        wait until ClockB'event and ClockB = '1';
+        AddressB <= AddressB + '1' after 1 ns;
+      end loop;
+      wait;
+    end process;
+
+    ClockA <= not ClockA after 5.00 ns;
+
+    ClockB <= not ClockB after 5.00 ns;
+
+    process
+
+    begin
+      ClockEnA <= '0' ;
+      wait for 100 ns;
+      wait until ResetA = '0';
+      ClockEnA <= '1' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      ClockEnB <= '0' ;
+      wait for 100 ns;
+      wait until ResetB = '0';
+      ClockEnB <= '1' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      WrA <= '0' ;
+      wait until ResetA = '0';
+      for i in 0 to 259 loop
+        wait until ClockA'event and ClockA = '1';
+        WrA <= '1' after 1 ns;
+      end loop;
+      WrA <= '0' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      WrB <= '0' ;
+      wait until ResetB = '0';
+      wait until WrA = '1';
+      wait until WrA = '0';
+      for i in 0 to 259 loop
+        wait until ClockA'event and ClockA = '1';
+      end loop;
+      for i in 0 to 259 loop
+        wait until ClockB'event and ClockB = '1';
+        WrB <= '1' after 1 ns;
+      end loop;
+      WrB <= '0' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      ResetA <= '1' ;
+      wait for 100 ns;
+      ResetA <= '0' ;
+      wait;
+    end process;
+
+    process
+
+    begin
+      ResetB <= '1' ;
+      wait for 100 ns;
+      ResetB <= '0' ;
+      wait;
+    end process;
+
+end architecture test;
diff --git a/gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd b/gbe_ecp2m/ipcores/tb_mac_init_mem_tmpl.vhd
new file mode 100755 (executable)
index 0000000..fd983a6
--- /dev/null
@@ -0,0 +1,64 @@
+-- VHDL testbench template generated by SCUBA ispLever_v72_SP2_Build (23)\r
+library IEEE;\r
+use IEEE.std_logic_1164.all;\r
+use IEEE.std_logic_unsigned.all;\r
+\r
+entity tb is\r
+end entity tb;\r
+\r
+\r
+architecture test of tb is \r
+\r
+    component mac_init_mem\r
+        port (Address : in std_logic_vector(5 downto 0); \r
+        OutClock: in std_logic; OutClockEn: in std_logic; \r
+        Reset: in std_logic; Q : out std_logic_vector(7 downto 0)\r
+    );\r
+    end component;\r
+\r
+    signal Address : std_logic_vector(5 downto 0) := (others => '0');\r
+    signal OutClock: std_logic := '0';\r
+    signal OutClockEn: std_logic := '0';\r
+    signal Reset: std_logic := '0';\r
+    signal Q : std_logic_vector(7 downto 0);\r
+begin\r
+    u1 : mac_init_mem\r
+        port map (Address => Address, OutClock => OutClock, OutClockEn => OutClockEn, \r
+            Reset => Reset, Q => Q\r
+        );\r
+\r
+    process\r
+\r
+    begin\r
+      Address <= (others => '0') ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      for i in 0 to 57 loop\r
+        wait until OutClock'event and OutClock = '1';\r
+        Address <= Address + '1' after 1 ns;\r
+      end loop;\r
+      wait;\r
+    end process;\r
+\r
+    OutClock <= not OutClock after 5.00 ns;\r
+\r
+    process\r
+\r
+    begin\r
+      OutClockEn <= '0' ;\r
+      wait for 100 ns;\r
+      wait until Reset = '0';\r
+      OutClockEn <= '1' ;\r
+      wait;\r
+    end process;\r
+\r
+    process\r
+\r
+    begin\r
+      Reset <= '1' ;\r
+      wait for 100 ns;\r
+      Reset <= '0' ;\r
+      wait;\r
+    end process;\r
+\r
+end architecture test;\r
diff --git a/gbe_ecp2m/ipcores/tsmac3/.cvsignore b/gbe_ecp2m/ipcores/tsmac3/.cvsignore
new file mode 100644 (file)
index 0000000..1fb5c68
--- /dev/null
@@ -0,0 +1,9 @@
+*.jhd
+*.naf
+*.srp
+*.sym
+*.log
+*.tcl
+*.v
+*tmpl.vhd
+ts_mac_eval
diff --git a/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo b/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo
new file mode 100755 (executable)
index 0000000..e40fc8f
Binary files /dev/null and b/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn208256208256.ngo differ
diff --git a/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn96649664.ngo b/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn96649664.ngo
new file mode 100755 (executable)
index 0000000..7e4f604
Binary files /dev/null and b/gbe_ecp2m/ipcores/tsmac3/pmi_ram_dpEbnonessdn96649664.ngo differ
diff --git a/gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar b/gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar
new file mode 100644 (file)
index 0000000..bd092f2
Binary files /dev/null and b/gbe_ecp2m/ipcores/tsmac3/ts_mac_eval.tar differ
diff --git a/gbe_ecp2m/ipcores/tsmac3/tsmac3.lpc b/gbe_ecp2m/ipcores/tsmac3/tsmac3.lpc
new file mode 100755 (executable)
index 0000000..011a767
--- /dev/null
@@ -0,0 +1,28 @@
+[Device]\r
+Family=ep5m00\r
+PartType=LFE2M100E\r
+PartName=LFE2M100E-6F900C\r
+SpeedGrade=-6\r
+Package=FPBGA900\r
+OperatingCondition=COM\r
+Status=P\r
+\r
+[IP]\r
+VendorName=Lattice Semiconductor Corporation\r
+CoreType=IPCFG\r
+CoreStatus=Demo\r
+CoreName=Tri-Speed Ethernet MAC\r
+CoreRevision=3.0\r
+ModuleName=tsmac3\r
+SourceFormat=VHDL\r
+ParameterFileVersion=1.0\r
+Date=08/24/2009\r
+Time=21:02:34\r
+\r
+[Parameters]\r
+MIIM=No\r
+MODE=SGMII easy connect\r
+SYNP_TOOL=1\r
+PREC_TOOL=0\r
+MODS_TOOL=1\r
+ALDC_TOOL=0\r
diff --git a/gbe_ecp2m/ipcores/tsmac3/tsmac3.ngo b/gbe_ecp2m/ipcores/tsmac3/tsmac3.ngo
new file mode 100755 (executable)
index 0000000..5c0e54f
Binary files /dev/null and b/gbe_ecp2m/ipcores/tsmac3/tsmac3.ngo differ
diff --git a/gbe_ecp2m/mb_mac_sim.vhd b/gbe_ecp2m/mb_mac_sim.vhd
new file mode 100755 (executable)
index 0000000..1b1f57e
--- /dev/null
@@ -0,0 +1,331 @@
+LIBRARY IEEE;\r
+USE IEEE.std_logic_1164.ALL;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+use IEEE.std_logic_arith.all;\r
+\r
+library work;\r
+--use work.trb_net_std.all;\r
+--use work.trb_net_components.all;\r
+--use work.trb_net16_hub_func.all;\r
+\r
+entity mb_mac_sim is\r
+port (\r
+       --------------------------------------------------------------------------\r
+       --------------- clock, reset, clock enable -------------------------------\r
+       HCLK                            : in    std_logic;\r
+       TX_MAC_CLK                      : in    std_logic;\r
+       RX_MAC_CLK                      : in    std_logic;\r
+       RESET_N                         : in    std_logic;\r
+       TXMAC_CLK_EN            : in    std_logic;\r
+       RXMAC_CLK_EN            : in    std_logic;\r
+       --------------------------------------------------------------------------\r
+       --------------- SGMII receive interface ----------------------------------\r
+       RXD                                     : in    std_logic_vector(7 downto 0);\r
+       RX_DV                           : in    std_logic;\r
+       RX_ER                           : in    std_logic;\r
+       COL                                     : in    std_logic;\r
+       CRS                                     : in    std_logic;\r
+       --------------------------------------------------------------------------\r
+       --------------- SGMII transmit interface ---------------------------------\r
+       TXD                                     : out   std_logic_vector(7 downto 0);\r
+       TX_EN                           : out   std_logic;\r
+       TX_ER                           : out   std_logic;\r
+       --------------------------------------------------------------------------\r
+       --------------- CPU configuration interface ------------------------------\r
+       HADDR                           : in    std_logic_vector(7 downto 0);\r
+       HDATAIN                         : in    std_logic_vector(7 downto 0);\r
+       HCS_N                           : in    std_logic;\r
+       HWRITE_N                        : in    std_logic;\r
+       HREAD_N                         : in    std_logic;\r
+       HDATAOUT                        : out   std_logic_vector(7 downto 0);\r
+       HDATAOUT_EN_N           : out   std_logic;\r
+       HREADY_N                        : out   std_logic;\r
+       CPU_IF_GBIT_EN          : out   std_logic;\r
+       --------------------------------------------------------------------------\r
+       --------------- Transmit FIFO interface ----------------------------------\r
+       TX_FIFODATA                     : in    std_logic_vector(7 downto 0);\r
+       TX_FIFOAVAIL            : in    std_logic;\r
+       TX_FIFOEOF                      : in    std_logic;\r
+       TX_FIFOEMPTY            : in    std_logic;\r
+       TX_MACREAD                      : out   std_logic;\r
+       TX_DONE                         : out   std_logic;\r
+       TX_SNDPAUSTIM           : in    std_logic_vector(15 downto 0);\r
+       TX_SNDPAUSREQ           : in    std_logic;\r
+       TX_FIFOCTRL                     : in    std_logic;\r
+       TX_DISCFRM                      : out   std_logic;\r
+       TX_STATEN                       : out   std_logic;\r
+       TX_STATVEC                      : out   std_logic_vector(30 downto 0);\r
+       --------------------------------------------------------------------------\r
+       --------------- Receive FIFO interface -----------------------------------\r
+       RX_DBOUT                        : out   std_logic_vector(7 downto 0);\r
+       RX_FIFO_FULL            : in    std_logic;\r
+       IGNORE_PKT                      : in    std_logic;      \r
+       RX_FIFO_ERROR           : out   std_logic;\r
+       RX_STAT_VECTOR          : out   std_logic_vector(31 downto 0);\r
+       RX_STAT_EN                      : out   std_logic;\r
+       RX_WRITE                        : out   std_logic;\r
+       RX_EOF                          : out   std_logic;\r
+       RX_ERROR                        : out   std_logic\r
+);\r
+end mb_mac_sim;\r
+\r
+architecture mb_mac_sim of mb_mac_sim is\r
+\r
+\r
+-- CPU interface stuff\r
+type HC_STATES is (HC_SLEEP, HC_READ, HC_WRITE, HC_RACK, HC_WACK);\r
+signal HC_CURRENT_STATE, HC_NEXT_STATE: HC_STATES;\r
+\r
+signal hready_n_comb           : std_logic;\r
+signal hready_n_buf                    : std_logic;\r
+signal hdataout_en_n_comb      : std_logic;\r
+signal hdataout_en_n_buf       : std_logic;\r
+\r
+-- TX stuff\r
+type TX_STATES is (TX_SLEEP, TX_READ, TX_DELAY, TX_TRANS, TX_CHECK);\r
+signal TX_CURRENT_STATE, TX_NEXT_STATE: TX_STATES;\r
+\r
+signal tx_bsm                          : std_logic_vector(3 downto 0);\r
+signal tx_macread_comb         : std_logic;\r
+signal tx_done_comb                    : std_logic;\r
+signal tx_done_buf                     : std_logic;\r
+\r
+signal preread_ctr                     : std_logic_vector(3 downto 0); -- preread counter for TX\r
+signal preread_ce_comb         : std_logic;\r
+signal preread_rst_comb                : std_logic;\r
+signal preread_done_comb       : std_logic;\r
+signal read_on_comb                    : std_logic;\r
+\r
+\r
+begin\r
+\r
+------------------------------------------------------------------------------\r
+-- state machine for configuration interface\r
+------------------------------------------------------------------------------\r
+-- BUG: no register simulated here!\r
+\r
+-- state registers\r
+HC_STATE_MEM: process( HCLK ) \r
+begin\r
+       if   ( RESET_N = '0' ) then\r
+               HC_CURRENT_STATE  <= HC_SLEEP;\r
+               hready_n_buf      <= '1';\r
+               hdataout_en_n_buf <= '1';\r
+       elsif( rising_edge(HCLK) ) then\r
+               HC_CURRENT_STATE  <= HC_NEXT_STATE;\r
+               hready_n_buf      <= hready_n_comb;\r
+               hdataout_en_n_buf <= hdataout_en_n_comb;\r
+       end if;\r
+end process HC_STATE_MEM;\r
+\r
+-- state transitions\r
+HC_STATE_TRANSFORM: process( HC_CURRENT_STATE, HCS_N, HREAD_N, HWRITE_N )\r
+begin\r
+       HC_NEXT_STATE         <= HC_SLEEP; -- avoid latches\r
+       hready_n_comb      <= '1';\r
+       hdataout_en_n_comb <= '1';\r
+       case HC_CURRENT_STATE is\r
+               when HC_SLEEP   =>      if   ( (HCS_N = '0') and (HREAD_N = '0') ) then\r
+                                                               HC_NEXT_STATE <= HC_READ;\r
+                                                       elsif( (HCS_N = '0') and (HWRITE_N = '0') ) then\r
+                                                               HC_NEXT_STATE <= HC_WRITE;\r
+                                                       else\r
+                                                               HC_NEXT_STATE <= HC_SLEEP;\r
+                                                       end if;\r
+               when HC_READ    =>      HC_NEXT_STATE <= HC_RACK;\r
+                                                       hdataout_en_n_comb <= '0';\r
+                                                       hready_n_comb      <= '0';\r
+               when HC_RACK    =>      HC_NEXT_STATE <= HC_SLEEP;\r
+               when HC_WRITE   =>      HC_NEXT_STATE <= HC_WACK;\r
+                                                       hready_n_comb      <= '0';\r
+               when HC_WACK    =>      HC_NEXT_STATE <= HC_SLEEP;\r
+               when others             =>      HC_NEXT_STATE <= HC_SLEEP;\r
+       end case;\r
+end process HC_STATE_TRANSFORM;        \r
+\r
+HREADY_N      <= hready_n_buf;\r
+HDATAOUT_EN_N <= hdataout_en_n_buf;\r
+\r
+------------------------------------------------------------------------------\r
+-- state machine for "transmission"\r
+------------------------------------------------------------------------------\r
+\r
+-- preread counter\r
+THE_PREREAD_CTR: process( TX_MAC_CLK )\r
+begin\r
+       if   ( RESET_N = '0' ) then\r
+               preread_ctr <= (others => '0');\r
+       elsif( rising_edge(TX_MAC_CLK) ) then\r
+               if   ( preread_rst_comb = '1' ) then\r
+                       preread_ctr <= (others => '0');\r
+               elsif( preread_ce_comb = '1' ) then\r
+                       preread_ctr <= preread_ctr + 1; \r
+               end if;\r
+       end if; \r
+end process THE_PREREAD_CTR;\r
+preread_done_comb <= '1' when (preread_ctr = x"6") \r
+                                                else '0';\r
+\r
+-- state registers\r
+TX_STATE_MEM: process( TX_MAC_CLK, RESET_N ) \r
+begin\r
+       if   ( RESET_N = '0' ) then\r
+               TX_CURRENT_STATE  <= TX_SLEEP;\r
+               tx_done_buf       <= '0';\r
+       elsif( rising_edge(TX_MAC_CLK) ) then\r
+               TX_CURRENT_STATE  <= TX_NEXT_STATE;\r
+               tx_done_buf       <= tx_done_comb;\r
+       end if;\r
+end process TX_STATE_MEM;\r
+\r
+tx_macread_comb <= preread_ce_comb or read_on_comb;\r
+\r
+-- state transitions\r
+TX_STATE_TRANSFORM: process( TX_CURRENT_STATE, TX_FIFOEMPTY, TX_FIFOAVAIL, TX_FIFOEOF, preread_done_comb )\r
+begin\r
+       TX_NEXT_STATE         <= TX_SLEEP; -- avoid latches\r
+       preread_ce_comb       <= '0';\r
+       preread_rst_comb      <= '0';\r
+       read_on_comb          <= '0';\r
+       tx_done_comb          <= '0';\r
+       case TX_CURRENT_STATE is\r
+               when TX_SLEEP   =>      tx_bsm <= x"0";\r
+                                                       if( TX_FIFOEMPTY = '0' ) then\r
+                                                               TX_NEXT_STATE <= TX_READ;\r
+                                                               preread_ce_comb <= '1';\r
+                                                       else\r
+                                                               TX_NEXT_STATE <= TX_SLEEP;\r
+                                                       end if;\r
+               when TX_READ    =>      tx_bsm <= x"1";\r
+                                                       if   ( TX_FIFOEMPTY = '1' ) then\r
+                                                               TX_NEXT_STATE <= TX_DELAY;\r
+                                                               preread_rst_comb <= '1';\r
+                                                       elsif( (preread_done_comb = '1') and (TX_FIFOAVAIL = '0') ) then\r
+                                                               TX_NEXT_STATE <= TX_DELAY;\r
+                                                               preread_rst_comb <= '1';\r
+                                                       elsif( (preread_done_comb = '1') and (TX_FIFOAVAIL = '1') ) then\r
+                                                               TX_NEXT_STATE <= TX_TRANS;\r
+                                                               preread_rst_comb <= '1';\r
+                                                               read_on_comb     <= '1';\r
+                                                       else\r
+                                                               TX_NEXT_STATE <= TX_READ;\r
+                                                               preread_ce_comb <= '1';\r
+                                                       end if;\r
+               when TX_DELAY   =>      tx_bsm <= x"2";\r
+                                                       if( TX_FIFOAVAIL = '1' ) then\r
+                                                               TX_NEXT_STATE <= TX_TRANS;\r
+                                                               read_on_comb     <= '1';\r
+                                                       else\r
+                                                               TX_NEXT_STATE <= TX_DELAY;\r
+                                                       end if;\r
+               when TX_TRANS   =>      tx_bsm <= x"3";\r
+                                                       if( TX_FIFOEOF = '1' ) then\r
+                                                               TX_NEXT_STATE <= TX_CHECK;\r
+                                                               tx_done_comb  <= '1';  -- don't know if this is realistic\r
+                                                       else\r
+                                                               TX_NEXT_STATE <= TX_TRANS;\r
+                                                               read_on_comb     <= '1';\r
+                                                       end if;\r
+               when TX_CHECK   =>      tx_bsm <= x"4";\r
+                                                       if( (TX_FIFOEMPTY = '0') and (TX_FIFOAVAIL = '1') ) then\r
+                                                               TX_NEXT_STATE <= TX_READ;\r
+                                                               preread_ce_comb <= '1';\r
+                                                       else\r
+                                                               TX_NEXT_STATE <= TX_SLEEP;\r
+                                                       end if;\r
+               when others             =>      tx_bsm <= x"f";\r
+                                                       TX_NEXT_STATE <= TX_SLEEP;\r
+       end case;\r
+end process TX_STATE_TRANSFORM;\r
+\r
+\r
+\r
+\r
+------------------------------------------------------------------------------\r
+-- Fake signals\r
+------------------------------------------------------------------------------\r
+RX_DBOUT       <= preread_ctr & tx_bsm; -- x"00";\r
+RX_FIFO_ERROR  <= '0';\r
+RX_STAT_VECTOR <= x"0000_0000";\r
+RX_STAT_EN     <= '0';\r
+RX_WRITE       <= '0';\r
+RX_EOF         <= '0';\r
+RX_ERROR       <= '0';\r
+\r
+TX_DISCFRM     <= '0';\r
+TX_EN          <= '0';\r
+TX_ER          <= '0';\r
+TX_STATVEC     <= (others => '0');\r
+TX_STATEN      <= '0';\r
+TXD            <= x"00";\r
+\r
+CPU_IF_GBIT_EN <= '0';\r
+\r
+TX_DONE        <= tx_done_buf;\r
+TX_MACREAD     <= tx_macread_comb;\r
+\r
+HDATAOUT       <= x"00";\r
+\r
+\r
+end mb_mac_sim;\r
+\r
+\r
+--port map(\r
+--     --------------------------------------------------------------------------\r
+--     --------------- clock, reset, clock enable -------------------------------\r
+--     hclk                            =>      CLK,                                    -- (in) host clock (100MHz)\r
+--     txmac_clk                       =>      TX_MAC_CLK,                             -- (in) GbE clock (125MHz)\r
+--     rxmac_clk                       =>      '0',                                    -- (in) not used (no receiving on GbE)\r
+--     reset_n                         =>      GSR_N,                                  -- (in) global set/reset\r
+--     txmac_clk_en            =>      TSM_TX_CLK_EN_IN,               -- (in) from SGMII core, '1' for 1GbE operation\r
+--     rxmac_clk_en            =>      TSM_RX_CLK_EN_IN,               -- (in) from SGMII core, '1' for 1GbE operation\r
+--     --------------------------------------------------------------------------\r
+--     --------------- SGMII receive interface ----------------------------------\r
+--     rxd                                     =>      x"00",                                  -- (in) receive data from SGMII core\r
+--     rx_dv                           =>      '0',                                    -- (in) data valid from SGMII core\r
+--     rx_er                           =>      '0',                                    -- (in) receive data error \r
+--     col                                     =>      TSM_COL_IN,                             -- (in) collision from SGMII core\r
+--     crs                                     =>      TSM_CRS_IN,                             -- (in) carrier sense from SGMII core\r
+--     --------------------------------------------------------------------------\r
+--     --------------- SGMII transmit interface ---------------------------------\r
+--     txd                                     =>      CH_TXD_OUT,                             -- (out) transmit data to SGMII core\r
+--     tx_en                           =>      CH_TX_EN_OUT,                   -- (out) transmit enable\r
+--     tx_er                           =>      CH_TX_ER_OUT,                   -- (out) transmit error\r
+--     --------------------------------------------------------------------------\r
+--     --------------- CPU configuration interface ------------------------------\r
+--     haddr                           =>      haddr,                                  -- (in) host address bus for configuration\r
+--     hdatain                         =>      hdataout,                               -- (in) host data bus for write accesses\r
+--     hcs_n                           =>      hcs,                                    -- (in) host chip select signal\r
+--     hwrite_n                        =>      hwrite,                                 -- (in) host write strobe signal\r
+--     hread_n                         =>      hread,                                  -- (in) host read strobe signal\r
+--     hdataout                        =>      hdatain,                                -- (out) host data bus for read accesses\r
+--     hdataout_en_n           =>      hdataout_en,                    -- (out) read data valid signal\r
+--     hready_n                        =>      hready,                                 -- (out) data acknowledge signal \r
+--     cpu_if_gbit_en          =>      open,                                   -- (out) status bit \r
+--     --------------------------------------------------------------------------\r
+--     --------------- Transmit FIFO interface ----------------------------------\r
+--     tx_fifodata                     =>      ft_data(7 downto 0),    -- (in) transmit FIFO data bus\r
+--     tx_fifoavail            =>      mac_fifoavail,                  -- (in) transmit FIFO data available\r
+--     tx_fifoeof                      =>      mac_fifoeof,                    -- (in) transmit FIFO end of frame \r
+--     tx_fifoempty            =>      mac_fifoempty,                  -- (in) transmit FIFO empty\r
+--     tx_macread                      =>      mac_tx_rd_en,                   -- (out) transmit FIFO read\r
+--     tx_done                         =>      mac_tx_done,                    -- (out) transmit done (without errors)\r
+--     tx_sndpaustim           =>      x"0000",                                -- (in) PAUSE frame timer\r
+--     tx_sndpausreq           =>      '0',                                    -- (in) PAUSE frame request\r
+--     tx_fifoctrl                     =>      '0',                                    -- (in) FIFO control frame ('0' = data, '1' = control)\r
+--     tx_discfrm                      =>      open,                                   -- (out) discard frame\r
+--     tx_staten                       =>      open,                                   -- (out) transmit statistics vector enable \r
+--     tx_statvec                      =>      open,                                   -- (out) transmit statistics vector\r
+--     --------------------------------------------------------------------------\r
+--     --------------- Receive FIFO interface -----------------------------------\r
+--     rx_dbout                        =>      open,                                   -- (out) receive FIFO data output\r
+--     rx_fifo_full            =>      '0',                                    -- (in) receive FIFO full\r
+--     ignore_pkt                      =>      '0',                                    -- (in) ignore next packet\r
+--     rx_fifo_error           =>      open,                                   -- (out) receive FIFO error\r
+--     rx_stat_vector          =>      open,                                   -- (out) receive statistics vector\r
+--     rx_stat_en                      =>      open,                                   -- (out) receive statistics vector enable\r
+--     rx_write                        =>      open,                                   -- (out) receive FIFO write\r
+--     rx_eof                          =>      open,                                   -- (out) end of frame\r
+--     rx_error                        =>      open                                    -- (out) receive packet error\r
+--);\r
diff --git a/gbe_ecp2m/tb_feeder.vhd b/gbe_ecp2m/tb_feeder.vhd
new file mode 100755 (executable)
index 0000000..d526404
--- /dev/null
@@ -0,0 +1,300 @@
+\r
+LIBRARY ieee;\r
+USE ieee.std_logic_1164.ALL;\r
+USE ieee.numeric_std.ALL;\r
+\r
+ENTITY testbench IS\r
+END testbench;\r
+\r
+ARCHITECTURE behavior OF testbench IS \r
+\r
+       COMPONENT feeder\r
+       PORT(\r
+               CLK : IN std_logic;\r
+               RESET : IN std_logic;\r
+               CTS_NUMBER_IN : IN std_logic_vector(15 downto 0);\r
+               CTS_CODE_IN : IN std_logic_vector(7 downto 0);\r
+               CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0);\r
+               CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0);\r
+               CTS_START_READOUT_IN : IN std_logic;\r
+               CTS_READ_IN : IN std_logic;\r
+               FEE_DATA_IN : IN std_logic_vector(15 downto 0);\r
+               FEE_DATAREADY_IN : IN std_logic;\r
+               FEE_BUSY_IN : IN std_logic;\r
+               FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0);\r
+               PC_READY_IN : IN std_logic;          \r
+               CTS_DATA_OUT : OUT std_logic_vector(31 downto 0);\r
+               CTS_DATAREADY_OUT : OUT std_logic;\r
+               CTS_READOUT_FINISHED_OUT : OUT std_logic;\r
+               CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0);\r
+               CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0);\r
+               FEE_READ_OUT : OUT std_logic;\r
+               PC_WR_EN_OUT : OUT std_logic;\r
+               PC_DATA_OUT : OUT std_logic_vector(7 downto 0);\r
+               PC_SOS_OUT : OUT std_logic;\r
+               PC_EOD_OUT : OUT std_logic;\r
+               PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0);\r
+               PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0);\r
+               PC_PADDING_OUT : OUT std_logic;\r
+               BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0);\r
+               BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0);\r
+               DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0);\r
+               DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0);\r
+               DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0);\r
+               DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0);\r
+               DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0);\r
+               DBG_SF_RD_EN_OUT : OUT std_logic;\r
+               DBG_SF_WR_EN_OUT : OUT std_logic;\r
+               DBG_SF_EMPTY_OUT : OUT std_logic;\r
+               DBG_SF_FULL_OUT : OUT std_logic;\r
+               DBG_SF_AFULL_OUT : OUT std_logic;\r
+               DEBUG_OUT : OUT std_logic_vector(31 downto 0)\r
+               );\r
+       END COMPONENT;\r
+\r
+       SIGNAL CLK :  std_logic;\r
+       SIGNAL RESET :  std_logic;\r
+       SIGNAL CTS_NUMBER_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL CTS_CODE_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_INFORMATION_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_READOUT_TYPE_IN :  std_logic_vector(3 downto 0);\r
+       SIGNAL CTS_START_READOUT_IN :  std_logic;\r
+       SIGNAL CTS_READ_IN :  std_logic;\r
+       SIGNAL CTS_DATA_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL CTS_DATAREADY_OUT :  std_logic;\r
+       SIGNAL CTS_READOUT_FINISHED_OUT :  std_logic;\r
+       SIGNAL CTS_LENGTH_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL CTS_ERROR_PATTERN_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL FEE_DATA_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL FEE_DATAREADY_IN :  std_logic;\r
+       SIGNAL FEE_READ_OUT :  std_logic;\r
+       SIGNAL FEE_BUSY_IN :  std_logic;\r
+       SIGNAL FEE_STATUS_BITS_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_WR_EN_OUT :  std_logic;\r
+       SIGNAL PC_DATA_OUT :  std_logic_vector(7 downto 0);\r
+       SIGNAL PC_READY_IN :  std_logic;\r
+       SIGNAL PC_SOS_OUT :  std_logic;\r
+       SIGNAL PC_EOD_OUT :  std_logic;\r
+       SIGNAL PC_SUB_SIZE_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_TRIG_NR_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_PADDING_OUT :  std_logic;\r
+       SIGNAL BSM_SAVE_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL BSM_LOAD_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL DBG_REM_CTR_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL DBG_CTS_CTR_OUT :  std_logic_vector(2 downto 0);\r
+       SIGNAL DBG_SF_WCNT_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL DBG_SF_RCNT_OUT :  std_logic_vector(16 downto 0);\r
+       SIGNAL DBG_SF_DATA_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL DBG_SF_RD_EN_OUT :  std_logic;\r
+       SIGNAL DBG_SF_WR_EN_OUT :  std_logic;\r
+       SIGNAL DBG_SF_EMPTY_OUT :  std_logic;\r
+       SIGNAL DBG_SF_FULL_OUT :  std_logic;\r
+       SIGNAL DBG_SF_AFULL_OUT :  std_logic;\r
+       SIGNAL DEBUG_OUT :  std_logic_vector(31 downto 0);\r
+\r
+BEGIN\r
+\r
+-- Please check and add your generic clause manually\r
+       uut: feeder PORT MAP(\r
+               CLK => CLK,\r
+               RESET => RESET,\r
+               CTS_NUMBER_IN => CTS_NUMBER_IN,\r
+               CTS_CODE_IN => CTS_CODE_IN,\r
+               CTS_INFORMATION_IN => CTS_INFORMATION_IN,\r
+               CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN,\r
+               CTS_START_READOUT_IN => CTS_START_READOUT_IN,\r
+               CTS_READ_IN => CTS_READ_IN,\r
+               CTS_DATA_OUT => CTS_DATA_OUT,\r
+               CTS_DATAREADY_OUT => CTS_DATAREADY_OUT,\r
+               CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT,\r
+               CTS_LENGTH_OUT => CTS_LENGTH_OUT,\r
+               CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT,\r
+               FEE_DATA_IN => FEE_DATA_IN,\r
+               FEE_DATAREADY_IN => FEE_DATAREADY_IN,\r
+               FEE_READ_OUT => FEE_READ_OUT,\r
+               FEE_BUSY_IN => FEE_BUSY_IN,\r
+               FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN,\r
+               PC_WR_EN_OUT => PC_WR_EN_OUT,\r
+               PC_DATA_OUT => PC_DATA_OUT,\r
+               PC_READY_IN => PC_READY_IN,\r
+               PC_SOS_OUT => PC_SOS_OUT,\r
+               PC_EOD_OUT => PC_EOD_OUT,\r
+               PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT,\r
+               PC_TRIG_NR_OUT => PC_TRIG_NR_OUT,\r
+               PC_PADDING_OUT => PC_PADDING_OUT,\r
+               BSM_SAVE_OUT => BSM_SAVE_OUT,\r
+               BSM_LOAD_OUT => BSM_LOAD_OUT,\r
+               DBG_REM_CTR_OUT => DBG_REM_CTR_OUT,\r
+               DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT,\r
+               DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT,\r
+               DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT,\r
+               DBG_SF_DATA_OUT => DBG_SF_DATA_OUT,\r
+               DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT,\r
+               DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT,\r
+               DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT,\r
+               DBG_SF_FULL_OUT => DBG_SF_FULL_OUT,\r
+               DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT,\r
+               DEBUG_OUT => DEBUG_OUT\r
+       );\r
+\r
+CLOCK_GEN: process\r
+begin\r
+       clk <= '1'; wait for 5.0 ns;\r
+       clk <= '0'; wait for 5.0 ns;\r
+end process CLOCK_GEN;\r
+\r
+-- Testbench\r
+TESTBENCH_PROC: process\r
+variable test_data_len : integer range 0 to 65535 := 49;\r
+variable test_loop_len : integer range 0 to 65535 := 0;\r
+variable test_hdr_len : unsigned(15 downto 0) := x"0000";\r
+variable test_evt_len : unsigned(15 downto 0) := x"0000";\r
+variable test_data : unsigned(15 downto 0) := x"ffff";\r
+\r
+variable trigger_counter : unsigned(15 downto 0) := x"4710";\r
+variable trigger_loop : integer range 0 to 65535 := 15;\r
+begin\r
+       -- Setup signals\r
+       reset <= '0';\r
+       cts_number_in <= x"0000";\r
+       cts_code_in <= x"00";\r
+       cts_information_in <= x"00";\r
+       cts_readout_type_in <= x"0";\r
+       cts_start_readout_in <= '0';\r
+       cts_read_in <= '0';\r
+       fee_data_in <= x"0000";\r
+       fee_dataready_in <= '0';\r
+       fee_status_bits_in <= x"0000_0000";\r
+       fee_busy_in <= '0';\r
+       pc_ready_in <= '0';\r
+\r
+       wait for 22 ns;\r
+       \r
+       -- Reset the whole stuff\r
+       wait until rising_edge(clk);\r
+       reset <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       reset <= '0';\r
+       wait until rising_edge(clk);\r
+       wait for 200 ns;\r
+\r
+\r
+-------------------------------------------------------------------------------\r
+-- Loop the transmissions\r
+-------------------------------------------------------------------------------\r
+       trigger_counter := x"4710";\r
+       trigger_loop    := 9;\r
+       test_data_len   := 14;\r
+\r
+       MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop\r
+               -- IPU transmission starts\r
+               wait until rising_edge(clk);\r
+               cts_number_in <= std_logic_vector( trigger_counter );\r
+               cts_code_in <= x"aa";\r
+               cts_information_in <= x"de";\r
+               cts_readout_type_in <= x"1";\r
+               cts_start_readout_in <= '1';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+\r
+               fee_busy_in <= '1';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+\r
+               -- ONE DATA TRANSMISSION\r
+               -- calculate the needed variables\r
+--             test_data_len := 4096;\r
+               test_loop_len := 2*(test_data_len - 1) + 1;\r
+               test_hdr_len := to_unsigned( test_data_len + 1, 16 );\r
+               test_evt_len := to_unsigned( test_data_len, 16 );\r
+\r
+               -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21)\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= x"10aa";\r
+               wait until rising_edge(clk);\r
+               fee_data_in <= std_logic_vector( trigger_counter );\r
+               wait until rising_edge(clk);\r
+               fee_data_in <= std_logic_vector( test_hdr_len );\r
+               wait until rising_edge(clk);\r
+               fee_data_in <= x"ff21";\r
+               wait until rising_edge(clk);\r
+               fee_data_in <= std_logic_vector( test_evt_len );\r
+               wait until rising_edge(clk);\r
+               fee_data_in <= x"ff22"; \r
+\r
+               test_data     := x"ffff";\r
+               MY_DATA_LOOP: for J in 0 to test_loop_len loop\r
+                       test_data := test_data + 1;\r
+                       wait until rising_edge(clk);\r
+                       fee_data_in <= std_logic_vector(test_data); \r
+               end loop MY_DATA_LOOP;\r
+       \r
+               fee_busy_in <= '0'; -- correct?\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '0';\r
+               fee_data_in <= x"0000"; \r
+\r
+               trigger_loop    := trigger_loop + 1;\r
+               trigger_counter := trigger_counter + 1;\r
+\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               cts_read_in <= '1';\r
+               wait until rising_edge(clk);\r
+               cts_read_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               cts_start_readout_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);    \r
+       end loop MY_TRIGGER_LOOP;\r
+-------------------------------------------------------------------------------\r
+-------------------------------------------------------------------------------\r
+-------------------------------------------------------------------------------\r
+\r
+\r
+       wait for 300 ns;\r
+\r
+       -- Start packet_constructor\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       pc_ready_in <= '1';\r
+       wait until rising_edge(clk);\r
+\r
+       wait;\r
+\r
+       wait until rising_edge(clk);\r
+       wait until pc_eod_out = '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       pc_ready_in <= '0';\r
+\r
+       -- Stay a while... stay forever!!!\r
+       wait;   \r
+       \r
+end process TESTBENCH_PROC;\r
+\r
+\r
+END;\r
diff --git a/gbe_ecp2m/tb_gbe_buf.vhd b/gbe_ecp2m/tb_gbe_buf.vhd
new file mode 100755 (executable)
index 0000000..a472efa
--- /dev/null
@@ -0,0 +1,688 @@
+LIBRARY ieee;\r
+USE ieee.std_logic_1164.ALL;\r
+USE ieee.math_real.all;\r
+USE ieee.numeric_std.ALL;\r
+\r
+ENTITY testbench IS\r
+END testbench;\r
+\r
+ARCHITECTURE behavior OF testbench IS \r
+\r
+       COMPONENT trb_net16_gbe_buf\r
+       GENERIC( DO_SIMULATION : integer range 0 to 1 := 1 );\r
+       PORT(\r
+               CLK : IN std_logic;\r
+               TEST_CLK : IN std_logic;\r
+               RESET : IN std_logic;\r
+               GSR_N : IN std_logic;\r
+               STAGE_CTRL_REGS_IN : IN std_logic_vector(31 downto 0);\r
+               ------------------------\r
+               IP_CFG_START_IN : IN std_logic;\r
+               IP_CFG_BANK_SEL_IN : IN std_logic_vector(3 downto 0);\r
+               IP_CFG_MEM_DATA_IN : IN std_logic_vector(31 downto 0);\r
+               MR_RESET_IN : IN std_logic;\r
+               MR_MODE_IN : IN std_logic;\r
+               MR_RESTART_IN : IN std_logic;\r
+               IP_CFG_MEM_CLK_OUT : OUT std_logic;\r
+               IP_CFG_DONE_OUT : OUT std_logic;\r
+               IP_CFG_MEM_ADDR_OUT : OUT std_logic_vector(7 downto 0);\r
+               -- gk 29.03.10\r
+               SLV_ADDR_IN                  : in std_logic_vector(7 downto 0);\r
+               SLV_READ_IN                  : in std_logic;\r
+               SLV_WRITE_IN                 : in std_logic;\r
+               SLV_BUSY_OUT                 : out std_logic;\r
+               SLV_ACK_OUT                  : out std_logic;\r
+               SLV_DATA_IN                  : in std_logic_vector(31 downto 0);\r
+               SLV_DATA_OUT                 : out std_logic_vector(31 downto 0);\r
+               ------------------------\r
+               CTS_NUMBER_IN : IN std_logic_vector(15 downto 0);\r
+               CTS_CODE_IN : IN std_logic_vector(7 downto 0);\r
+               CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0);\r
+               CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0);\r
+               CTS_START_READOUT_IN : IN std_logic;\r
+               CTS_READ_IN : IN std_logic;\r
+               FEE_DATA_IN : IN std_logic_vector(15 downto 0);\r
+               FEE_DATAREADY_IN : IN std_logic;\r
+               FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0);\r
+               FEE_BUSY_IN : IN std_logic;\r
+               SFP_RXD_P_IN : IN std_logic;\r
+               SFP_RXD_N_IN : IN std_logic;\r
+               SFP_REFCLK_P_IN : IN std_logic;\r
+               SFP_REFCLK_N_IN : IN std_logic;\r
+               SFP_PRSNT_N_IN : IN std_logic;\r
+               SFP_LOS_IN : IN std_logic;          \r
+               STAGE_STAT_REGS_OUT : OUT std_logic_vector(31 downto 0);\r
+               CTS_DATA_OUT : OUT std_logic_vector(31 downto 0);\r
+               CTS_DATAREADY_OUT : OUT std_logic;\r
+               CTS_READOUT_FINISHED_OUT : OUT std_logic;\r
+               CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0);\r
+               CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0);\r
+               FEE_READ_OUT : OUT std_logic;\r
+               SFP_TXD_P_OUT : OUT std_logic;\r
+               SFP_TXD_N_OUT : OUT std_logic;\r
+               SFP_TXDIS_OUT : OUT std_logic;\r
+               IG_CTS_CTR_TST : OUT std_logic_vector(2 downto 0);\r
+               IG_REM_CTR_TST : OUT std_logic_vector(3 downto 0);\r
+               IG_BSM_LOAD_TST : OUT std_logic_vector(3 downto 0);\r
+               IG_BSM_SAVE_TST : OUT std_logic_vector(3 downto 0);\r
+               IG_DATA_TST : OUT std_logic_vector(15 downto 0);\r
+               IG_WCNT_TST : OUT std_logic_vector(15 downto 0);\r
+               IG_RCNT_TST : OUT std_logic_vector(16 downto 0);\r
+               IG_RD_EN_TST : OUT std_logic;\r
+               IG_WR_EN_TST : OUT std_logic;\r
+               IG_EMPTY_TST : OUT std_logic;\r
+               IG_AEMPTY_TST : OUT std_logic;\r
+               IG_FULL_TST : OUT std_logic;\r
+               IG_AFULL_TST : OUT std_logic;\r
+               PC_WR_EN_TST : OUT std_logic;\r
+               PC_DATA_TST : OUT std_logic_vector(7 downto 0);\r
+               PC_READY_TST : OUT std_logic;\r
+               PC_START_OF_SUB_TST : OUT std_logic;\r
+               PC_END_OF_DATA_TST : OUT std_logic;\r
+               PC_ALL_CTR_TST : OUT std_logic_vector(4 downto 0);\r
+               PC_SUB_CTR_TST : OUT std_logic_vector(4 downto 0);\r
+               PC_SUB_SIZE_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_TRIG_NR_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_PADDING_TST : OUT std_logic;\r
+               PC_DECODING_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_EVENT_ID_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_QUEUE_DEC_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_BSM_CONSTR_TST : OUT std_logic_vector(3 downto 0);\r
+               PC_BSM_LOAD_TST : OUT std_logic_vector(3 downto 0);\r
+               PC_BSM_SAVE_TST : OUT std_logic_vector(3 downto 0);\r
+               PC_SHF_EMPTY_TST : OUT std_logic;\r
+               PC_SHF_FULL_TST : OUT std_logic;\r
+               PC_SHF_WR_EN_TST : OUT std_logic;\r
+               PC_SHF_RD_EN_TST : OUT std_logic;\r
+               PC_SHF_Q_TST : OUT std_logic_vector(7 downto 0);\r
+               PC_DF_EMPTY_TST : OUT std_logic;\r
+               PC_DF_FULL_TST : OUT std_logic;\r
+               PC_DF_WR_EN_TST : OUT std_logic;\r
+               PC_DF_RD_EN_TST : OUT std_logic;\r
+               PC_DF_Q_TST : OUT std_logic_vector(7 downto 0);\r
+               PC_BYTES_LOADED_TST : OUT std_logic_vector(15 downto 0);\r
+               PC_SIZE_LEFT_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_SUB_SIZE_TO_SAVE_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_SUB_SIZE_LOADED_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_SUB_BYTES_LOADED_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_QUEUE_SIZE_TST : OUT std_logic_vector(31 downto 0);\r
+               PC_ACT_QUEUE_SIZE_TST : OUT std_logic_vector(31 downto 0);\r
+               FC_WR_EN_TST : OUT std_logic;\r
+               FC_DATA_TST : OUT std_logic_vector(7 downto 0);\r
+               FC_H_READY_TST : OUT std_logic;\r
+               FC_READY_TST : OUT std_logic;\r
+               FC_IP_SIZE_TST : OUT std_logic_vector(15 downto 0);\r
+               FC_UDP_SIZE_TST : OUT std_logic_vector(15 downto 0);\r
+               FC_IDENT_TST : OUT std_logic_vector(15 downto 0);\r
+               FC_FLAGS_OFFSET_TST : OUT std_logic_vector(15 downto 0);\r
+               FC_SOD_TST : OUT std_logic;\r
+               FC_EOD_TST : OUT std_logic;\r
+               FC_BSM_CONSTR_TST : OUT std_logic_vector(7 downto 0);\r
+               FC_BSM_TRANS_TST : OUT std_logic_vector(3 downto 0);\r
+               FT_DATA_TST : OUT std_logic_vector(8 downto 0);\r
+               FT_TX_EMPTY_TST : OUT std_logic;\r
+               FT_START_OF_PACKET_TST : OUT std_logic;\r
+               FT_BSM_INIT_TST : OUT std_logic_vector(3 downto 0);\r
+               FT_BSM_MAC_TST : OUT std_logic_vector(3 downto 0);\r
+               FT_BSM_TRANS_TST : OUT std_logic_vector(3 downto 0);\r
+               MAC_HADDR_TST : OUT std_logic_vector(7 downto 0);\r
+               MAC_HDATA_TST : OUT std_logic_vector(7 downto 0);\r
+               MAC_HCS_TST : OUT std_logic;\r
+               MAC_HWRITE_TST : OUT std_logic;\r
+               MAC_HREAD_TST : OUT std_logic;\r
+               MAC_HREADY_TST : OUT std_logic;\r
+               MAC_HDATA_EN_TST : OUT std_logic;\r
+               MAC_FIFOAVAIL_TST : OUT std_logic;\r
+               MAC_FIFOEOF_TST : OUT std_logic;\r
+               MAC_FIFOEMPTY_TST : OUT std_logic;\r
+               MAC_TX_READ_TST : OUT std_logic;\r
+               MAC_TX_DONE_TST : OUT std_logic;\r
+               PCS_AN_LP_ABILITY_TST : OUT std_logic_vector(15 downto 0);\r
+               PCS_AN_COMPLETE_TST : OUT std_logic;\r
+               PCS_AN_PAGE_RX_TST : OUT std_logic;\r
+               ANALYZER_DEBUG_OUT : OUT std_logic_vector(63 downto 0)\r
+               );\r
+       END COMPONENT;\r
+\r
+       SIGNAL CLK :  std_logic;\r
+       SIGNAL TEST_CLK :  std_logic;\r
+       SIGNAL RESET :  std_logic;\r
+       SIGNAL GSR_N :  std_logic;\r
+       SIGNAL STAGE_STAT_REGS_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL STAGE_CTRL_REGS_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL IP_CFG_START_IN :  std_logic;\r
+       SIGNAL IP_CFG_BANK_SEL_IN :  std_logic_vector(3 downto 0);\r
+       SIGNAL IP_CFG_MEM_DATA_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL MR_RESET_IN :  std_logic;\r
+       SIGNAL MR_MODE_IN :  std_logic;\r
+       SIGNAL MR_RESTART_IN :  std_logic;\r
+       SIGNAL IP_CFG_MEM_CLK_OUT :  std_logic;\r
+       SIGNAL IP_CFG_DONE_OUT :  std_logic;\r
+       SIGNAL IP_CFG_MEM_ADDR_OUT :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_NUMBER_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL CTS_CODE_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_INFORMATION_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_READOUT_TYPE_IN :  std_logic_vector(3 downto 0);\r
+       SIGNAL CTS_START_READOUT_IN :  std_logic;\r
+       SIGNAL CTS_DATA_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL CTS_DATAREADY_OUT :  std_logic;\r
+       SIGNAL CTS_READOUT_FINISHED_OUT :  std_logic;\r
+       SIGNAL CTS_READ_IN :  std_logic;\r
+       SIGNAL CTS_LENGTH_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL CTS_ERROR_PATTERN_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL FEE_DATA_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL FEE_DATAREADY_IN :  std_logic;\r
+       SIGNAL FEE_READ_OUT :  std_logic;\r
+       SIGNAL FEE_STATUS_BITS_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL FEE_BUSY_IN :  std_logic;\r
+       SIGNAL SFP_RXD_P_IN :  std_logic;\r
+       SIGNAL SFP_RXD_N_IN :  std_logic;\r
+       SIGNAL SFP_TXD_P_OUT :  std_logic;\r
+       SIGNAL SFP_TXD_N_OUT :  std_logic;\r
+       SIGNAL SFP_REFCLK_P_IN :  std_logic;\r
+       SIGNAL SFP_REFCLK_N_IN :  std_logic;\r
+       SIGNAL SFP_PRSNT_N_IN :  std_logic;\r
+       SIGNAL SFP_LOS_IN :  std_logic;\r
+       SIGNAL SFP_TXDIS_OUT :  std_logic;\r
+       SIGNAL IG_CTS_CTR_TST :  std_logic_vector(2 downto 0);\r
+       SIGNAL IG_REM_CTR_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL IG_BSM_LOAD_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL IG_BSM_SAVE_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL IG_DATA_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL IG_WCNT_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL IG_RCNT_TST :  std_logic_vector(16 downto 0);\r
+       SIGNAL IG_RD_EN_TST :  std_logic;\r
+       SIGNAL IG_WR_EN_TST :  std_logic;\r
+       SIGNAL IG_EMPTY_TST :  std_logic;\r
+       SIGNAL IG_AEMPTY_TST :  std_logic;\r
+       SIGNAL IG_FULL_TST :  std_logic;\r
+       SIGNAL IG_AFULL_TST :  std_logic;\r
+       SIGNAL PC_WR_EN_TST :  std_logic;\r
+       SIGNAL PC_DATA_TST :  std_logic_vector(7 downto 0);\r
+       SIGNAL PC_READY_TST :  std_logic;\r
+       SIGNAL PC_START_OF_SUB_TST :  std_logic;\r
+       SIGNAL PC_END_OF_DATA_TST :  std_logic;\r
+       SIGNAL PC_SUB_SIZE_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_TRIG_NR_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_PADDING_TST :  std_logic;\r
+       SIGNAL PC_DECODING_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_EVENT_ID_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_QUEUE_DEC_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_BSM_CONSTR_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL PC_BSM_LOAD_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL PC_BSM_SAVE_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL PC_SHF_EMPTY_TST :  std_logic;\r
+       SIGNAL PC_SHF_FULL_TST :  std_logic;\r
+       SIGNAL PC_SHF_WR_EN_TST :  std_logic;\r
+       SIGNAL PC_SHF_RD_EN_TST :  std_logic;\r
+       SIGNAL PC_SHF_Q_TST :  std_logic_vector(7 downto 0);\r
+       SIGNAL PC_DF_EMPTY_TST :  std_logic;\r
+       SIGNAL PC_DF_FULL_TST :  std_logic;\r
+       SIGNAL PC_DF_WR_EN_TST :  std_logic;\r
+       SIGNAL PC_DF_RD_EN_TST :  std_logic;\r
+       SIGNAL PC_DF_Q_TST :  std_logic_vector(7 downto 0); \r
+       SIGNAL PC_ALL_CTR_TST :  std_logic_vector(4 downto 0);\r
+       SIGNAL PC_SUB_CTR_TST :  std_logic_vector(4 downto 0);\r
+       SIGNAL PC_BYTES_LOADED_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL PC_SIZE_LEFT_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_SUB_SIZE_TO_SAVE_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_SUB_SIZE_LOADED_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_SUB_BYTES_LOADED_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_QUEUE_SIZE_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_ACT_QUEUE_SIZE_TST :  std_logic_vector(31 downto 0);\r
+       SIGNAL FC_WR_EN_TST :  std_logic;\r
+       SIGNAL FC_DATA_TST :  std_logic_vector(7 downto 0);\r
+       SIGNAL FC_H_READY_TST :  std_logic;\r
+       SIGNAL FC_READY_TST :  std_logic;\r
+       SIGNAL FC_IP_SIZE_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL FC_UDP_SIZE_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL FC_IDENT_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL FC_FLAGS_OFFSET_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL FC_SOD_TST :  std_logic;\r
+       SIGNAL FC_EOD_TST :  std_logic;\r
+       SIGNAL FC_BSM_CONSTR_TST :  std_logic_vector(7 downto 0);\r
+       SIGNAL FC_BSM_TRANS_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL FT_DATA_TST :  std_logic_vector(8 downto 0);\r
+       SIGNAL FT_TX_EMPTY_TST :  std_logic;\r
+       SIGNAL FT_START_OF_PACKET_TST :  std_logic;\r
+       SIGNAL FT_BSM_INIT_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL FT_BSM_MAC_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL FT_BSM_TRANS_TST :  std_logic_vector(3 downto 0);\r
+       SIGNAL MAC_HADDR_TST :  std_logic_vector(7 downto 0);\r
+       SIGNAL MAC_HDATA_TST :  std_logic_vector(7 downto 0);\r
+       SIGNAL MAC_HCS_TST :  std_logic;\r
+       SIGNAL MAC_HWRITE_TST :  std_logic;\r
+       SIGNAL MAC_HREAD_TST :  std_logic;\r
+       SIGNAL MAC_HREADY_TST :  std_logic;\r
+       SIGNAL MAC_HDATA_EN_TST :  std_logic;\r
+       SIGNAL MAC_FIFOAVAIL_TST :  std_logic;\r
+       SIGNAL MAC_FIFOEOF_TST :  std_logic;\r
+       SIGNAL MAC_FIFOEMPTY_TST :  std_logic;\r
+       SIGNAL MAC_TX_READ_TST :  std_logic;\r
+       SIGNAL MAC_TX_DONE_TST :  std_logic;\r
+       SIGNAL PCS_AN_LP_ABILITY_TST :  std_logic_vector(15 downto 0);\r
+       SIGNAL PCS_AN_COMPLETE_TST :  std_logic;\r
+       SIGNAL PCS_AN_PAGE_RX_TST :  std_logic;\r
+       SIGNAL ANALYZER_DEBUG_OUT :  std_logic_vector(63 downto 0);\r
+       --gk 29.03.10\r
+       signal SLV_ADDR_IN : std_logic_vector(7 downto 0);\r
+       signal SLV_READ_IN : std_logic;\r
+       signal SLV_WRITE_IN : std_logic;\r
+       signal SLV_BUSY_OUT : std_logic;\r
+       signal SLV_ACK_OUT : std_logic;\r
+       signal SLV_DATA_IN : std_logic_vector(31 downto 0);\r
+       signal SLV_DATA_OUT : std_logic_vector(31 downto 0);\r
+\r
+BEGIN\r
+\r
+-- Please check and add your generic clause manually\r
+       uut: trb_net16_gbe_buf \r
+       GENERIC MAP( DO_SIMULATION => 1 )\r
+       PORT MAP(\r
+               CLK => CLK,\r
+               TEST_CLK => TEST_CLK,\r
+               RESET => RESET,\r
+               GSR_N => GSR_N,\r
+               STAGE_STAT_REGS_OUT => STAGE_STAT_REGS_OUT,\r
+               STAGE_CTRL_REGS_IN => STAGE_CTRL_REGS_IN,\r
+               IP_CFG_START_IN => IP_CFG_START_IN,\r
+               IP_CFG_BANK_SEL_IN => IP_CFG_BANK_SEL_IN,\r
+               IP_CFG_MEM_DATA_IN => IP_CFG_MEM_DATA_IN,\r
+               MR_RESET_IN => MR_RESET_IN,\r
+               MR_MODE_IN => MR_MODE_IN,\r
+               MR_RESTART_IN => MR_RESTART_IN,\r
+               IP_CFG_MEM_CLK_OUT => IP_CFG_MEM_CLK_OUT,\r
+               IP_CFG_DONE_OUT => IP_CFG_DONE_OUT,\r
+               IP_CFG_MEM_ADDR_OUT => IP_CFG_MEM_ADDR_OUT,\r
+               -- gk 29.03.10\r
+               SLV_ADDR_IN => SLV_ADDR_IN,\r
+               SLV_READ_IN => SLV_READ_IN,\r
+               SLV_WRITE_IN => SLV_WRITE_IN,\r
+               SLV_BUSY_OUT => SLV_BUSY_OUT,\r
+               SLV_ACK_OUT => SLV_ACK_OUT,\r
+               SLV_DATA_IN => SLV_DATA_IN,\r
+               SLV_DATA_OUT => SLV_DATA_OUT,\r
+               CTS_NUMBER_IN => CTS_NUMBER_IN,\r
+               CTS_CODE_IN => CTS_CODE_IN,\r
+               CTS_INFORMATION_IN => CTS_INFORMATION_IN,\r
+               CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN,\r
+               CTS_START_READOUT_IN => CTS_START_READOUT_IN,\r
+               CTS_DATA_OUT => CTS_DATA_OUT,\r
+               CTS_DATAREADY_OUT => CTS_DATAREADY_OUT,\r
+               CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT,\r
+               CTS_READ_IN => CTS_READ_IN,\r
+               CTS_LENGTH_OUT => CTS_LENGTH_OUT,\r
+               CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT,\r
+               FEE_DATA_IN => FEE_DATA_IN,\r
+               FEE_DATAREADY_IN => FEE_DATAREADY_IN,\r
+               FEE_READ_OUT => FEE_READ_OUT,\r
+               FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN,\r
+               FEE_BUSY_IN => FEE_BUSY_IN,\r
+               SFP_RXD_P_IN => SFP_RXD_P_IN,\r
+               SFP_RXD_N_IN => SFP_RXD_N_IN,\r
+               SFP_TXD_P_OUT => SFP_TXD_P_OUT,\r
+               SFP_TXD_N_OUT => SFP_TXD_N_OUT,\r
+               SFP_REFCLK_P_IN => SFP_REFCLK_P_IN,\r
+               SFP_REFCLK_N_IN => SFP_REFCLK_N_IN,\r
+               SFP_PRSNT_N_IN => SFP_PRSNT_N_IN,\r
+               SFP_LOS_IN => SFP_LOS_IN,\r
+               SFP_TXDIS_OUT => SFP_TXDIS_OUT,\r
+               IG_CTS_CTR_TST => IG_CTS_CTR_TST,\r
+               IG_REM_CTR_TST => IG_REM_CTR_TST,\r
+               IG_BSM_LOAD_TST => IG_BSM_LOAD_TST,\r
+               IG_BSM_SAVE_TST => IG_BSM_SAVE_TST,\r
+               IG_DATA_TST => IG_DATA_TST,\r
+               IG_WCNT_TST => IG_WCNT_TST,\r
+               IG_RCNT_TST => IG_RCNT_TST,\r
+               IG_RD_EN_TST => IG_RD_EN_TST,\r
+               IG_WR_EN_TST => IG_WR_EN_TST,\r
+               IG_EMPTY_TST => IG_EMPTY_TST,\r
+               IG_AEMPTY_TST => IG_AEMPTY_TST,\r
+               IG_FULL_TST => IG_FULL_TST,\r
+               IG_AFULL_TST => IG_AFULL_TST,\r
+               PC_WR_EN_TST => PC_WR_EN_TST,\r
+               PC_DATA_TST => PC_DATA_TST,\r
+               PC_READY_TST => PC_READY_TST,\r
+               PC_START_OF_SUB_TST => PC_START_OF_SUB_TST,\r
+               PC_END_OF_DATA_TST => PC_END_OF_DATA_TST,\r
+               PC_SUB_SIZE_TST => PC_SUB_SIZE_TST,\r
+               PC_TRIG_NR_TST => PC_TRIG_NR_TST,\r
+               PC_PADDING_TST => PC_PADDING_TST,\r
+               PC_DECODING_TST => PC_DECODING_TST,\r
+               PC_EVENT_ID_TST => PC_EVENT_ID_TST,\r
+               PC_QUEUE_DEC_TST => PC_QUEUE_DEC_TST,\r
+               PC_BSM_CONSTR_TST => PC_BSM_CONSTR_TST,\r
+               PC_BSM_LOAD_TST => PC_BSM_LOAD_TST,\r
+               PC_BSM_SAVE_TST => PC_BSM_SAVE_TST,\r
+               PC_SHF_EMPTY_TST => PC_SHF_EMPTY_TST,\r
+               PC_SHF_FULL_TST => PC_SHF_FULL_TST,\r
+               PC_SHF_WR_EN_TST => PC_SHF_WR_EN_TST,\r
+               PC_SHF_RD_EN_TST => PC_SHF_RD_EN_TST,\r
+               PC_SHF_Q_TST => PC_SHF_Q_TST,\r
+               PC_DF_EMPTY_TST => PC_DF_EMPTY_TST,\r
+               PC_DF_FULL_TST => PC_DF_FULL_TST,\r
+               PC_DF_WR_EN_TST => PC_DF_WR_EN_TST,\r
+               PC_DF_RD_EN_TST => PC_DF_RD_EN_TST,\r
+               PC_DF_Q_TST => PC_DF_Q_TST,\r
+               PC_ALL_CTR_TST => PC_ALL_CTR_TST,\r
+               PC_SUB_CTR_TST => PC_SUB_CTR_TST,\r
+               PC_BYTES_LOADED_TST => PC_BYTES_LOADED_TST,\r
+               PC_SIZE_LEFT_TST => PC_SIZE_LEFT_TST,\r
+               PC_SUB_SIZE_TO_SAVE_TST => PC_SUB_SIZE_TO_SAVE_TST,\r
+               PC_SUB_SIZE_LOADED_TST => PC_SUB_SIZE_LOADED_TST,\r
+               PC_SUB_BYTES_LOADED_TST => PC_SUB_BYTES_LOADED_TST,\r
+               PC_QUEUE_SIZE_TST => PC_QUEUE_SIZE_TST,\r
+               PC_ACT_QUEUE_SIZE_TST => PC_ACT_QUEUE_SIZE_TST,         \r
+               FC_WR_EN_TST => FC_WR_EN_TST,\r
+               FC_DATA_TST => FC_DATA_TST,\r
+               FC_H_READY_TST => FC_H_READY_TST,\r
+               FC_READY_TST => FC_READY_TST,\r
+               FC_IP_SIZE_TST => FC_IP_SIZE_TST,\r
+               FC_UDP_SIZE_TST => FC_UDP_SIZE_TST,\r
+               FC_IDENT_TST => FC_IDENT_TST,\r
+               FC_FLAGS_OFFSET_TST => FC_FLAGS_OFFSET_TST,\r
+               FC_SOD_TST => FC_SOD_TST,\r
+               FC_EOD_TST => FC_EOD_TST,\r
+               FC_BSM_CONSTR_TST => FC_BSM_CONSTR_TST,\r
+               FC_BSM_TRANS_TST => FC_BSM_TRANS_TST,\r
+               FT_DATA_TST => FT_DATA_TST,\r
+               FT_TX_EMPTY_TST => FT_TX_EMPTY_TST,\r
+               FT_START_OF_PACKET_TST => FT_START_OF_PACKET_TST,\r
+               FT_BSM_INIT_TST => FT_BSM_INIT_TST,\r
+               FT_BSM_MAC_TST => FT_BSM_MAC_TST,\r
+               FT_BSM_TRANS_TST => FT_BSM_TRANS_TST,\r
+               MAC_HADDR_TST => MAC_HADDR_TST,\r
+               MAC_HDATA_TST => MAC_HDATA_TST,\r
+               MAC_HCS_TST => MAC_HCS_TST,\r
+               MAC_HWRITE_TST => MAC_HWRITE_TST,\r
+               MAC_HREAD_TST => MAC_HREAD_TST,\r
+               MAC_HREADY_TST => MAC_HREADY_TST,\r
+               MAC_HDATA_EN_TST => MAC_HDATA_EN_TST,\r
+               MAC_FIFOAVAIL_TST => MAC_FIFOAVAIL_TST,\r
+               MAC_FIFOEOF_TST => MAC_FIFOEOF_TST,\r
+               MAC_FIFOEMPTY_TST => MAC_FIFOEMPTY_TST,\r
+               MAC_TX_READ_TST => MAC_TX_READ_TST,\r
+               MAC_TX_DONE_TST => MAC_TX_DONE_TST,\r
+               PCS_AN_LP_ABILITY_TST => PCS_AN_LP_ABILITY_TST,\r
+               PCS_AN_COMPLETE_TST => PCS_AN_COMPLETE_TST,\r
+               PCS_AN_PAGE_RX_TST => PCS_AN_PAGE_RX_TST,\r
+               ANALYZER_DEBUG_OUT => ANALYZER_DEBUG_OUT\r
+       );\r
+\r
+\r
+\r
+-- 100 MHz system clock\r
+CLOCK_GEN_PROC: process\r
+begin\r
+       clk <= '1'; wait for 5.0 ns;\r
+       clk <= '0'; wait for 5.0 ns;\r
+end process CLOCK_GEN_PROC;\r
+\r
+-- 125 MHz MAC clock\r
+CLOCK2_GEN_PROC: process\r
+begin\r
+       test_clk <= '1'; wait for 4.0 ns;\r
+       test_clk <= '0'; wait for 3.0 ns;\r
+end process CLOCK2_GEN_PROC;\r
+\r
+-- Testbench\r
+TESTBENCH_PROC: process\r
+-- test data from TRBnet\r
+variable test_data_len : integer range 0 to 65535 := 1;\r
+variable test_loop_len : integer range 0 to 65535 := 0;\r
+variable test_hdr_len : unsigned(15 downto 0) := x"0000";\r
+variable test_evt_len : unsigned(15 downto 0) := x"0000";\r
+variable test_data : unsigned(15 downto 0) := x"ffff";\r
+\r
+variable trigger_counter : unsigned(15 downto 0) := x"4710";\r
+variable trigger_loop : integer range 0 to 65535 := 15;\r
+\r
+-- 1400 bytes MTU => 350 as limit for fragmentation\r
+variable max_event_size : real := 512.0;\r
+\r
+variable seed1 : positive; -- seed for random generator\r
+variable seed2 : positive; -- seed for random generator\r
+variable rand : real; -- random value (0.0 ... 1.0)\r
+variable int_rand : integer; -- random value, scaled to your needs\r
+variable cts_random_number : std_logic_vector(7 downto 0);\r
+\r
+variable stim : std_logic_vector(15 downto 0);\r
+\r
+-- RND test\r
+--UNIFORM(seed1, seed2, rand);\r
+--int_rand := INTEGER(TRUNC(rand*65536.0));\r
+--stim := std_logic_vector(to_unsigned(int_rand, stim'LENGTH));\r
+\r
+begin\r
+       -- Setup signals\r
+       reset <= '0';\r
+       gsr_n <= '1';\r
+       \r
+       stage_ctrl_regs_in <= x"0000_0000";\r
+       \r
+       --ip_cfg_start_in <= '0';\r
+       --ip_cfg_bank_sel_in <= x"0";\r
+       --ip_cfg_mem_data_in <= x"0000_0000";\r
+       mr_reset_in <= '0';\r
+       mr_mode_in <= '0';\r
+       mr_restart_in <= '0';\r
+       SLV_ADDR_IN <= x"00";\r
+       SLV_READ_IN <= '0';\r
+       SLV_WRITE_IN <= '0';\r
+       SLV_DATA_IN <= x"0000_0000";\r
+       \r
+       sfp_los_in <= '0'; -- signal from SFP is present\r
+       sfp_prsnt_n_in <= '0'; -- SFP itself is present\r
+       sfp_refclk_n_in <= '0';\r
+       sfp_refclk_p_in <= '1';\r
+       \r
+       cts_number_in <= x"0000";\r
+       cts_code_in <= x"00";\r
+       cts_information_in <= x"00";\r
+       cts_readout_type_in <= x"0";\r
+       cts_start_readout_in <= '0';\r
+       cts_read_in <= '0';\r
+       \r
+       fee_data_in <= x"0000";\r
+       fee_dataready_in <= '0';\r
+       fee_status_bits_in <= x"1234_5678";\r
+       fee_busy_in <= '0';\r
+       \r
+       wait for 22 ns;\r
+       \r
+       -- Reset the whole stuff\r
+       wait until rising_edge(clk);\r
+       reset <= '1';\r
+       gsr_n <= '0';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       reset <= '0';\r
+       gsr_n <= '1';\r
+       wait until rising_edge(clk);\r
+       --wait for 100 ns;\r
+       \r
+       -- Tests may start here\r
+       wait until ft_bsm_init_tst = x"7";\r
+\r
+       --ip_cfg_start_in <= '1';\r
+\r
+       wait for 500 ns;\r
+\r
+-------------------------------------------------------------------------------\r
+-- Loop the transmissions\r
+-------------------------------------------------------------------------------\r
+       trigger_counter := x"4710";\r
+       trigger_loop    := 10;\r
+\r
+       MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop\r
+               -- generate a real random byte for CTS\r
+               UNIFORM(seed1, seed2, rand);\r
+               int_rand := INTEGER(TRUNC(rand*256.0));\r
+               cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH));\r
+       \r
+               -- IPU transmission starts\r
+               wait until rising_edge(clk);\r
+               cts_number_in <= std_logic_vector( trigger_counter );\r
+               cts_code_in <= cts_random_number;\r
+               cts_information_in <= x"d1"; -- cts_information_in <= x"de"; -- gk 29.03.10\r
+               cts_readout_type_in <= x"1";\r
+               cts_start_readout_in <= '1';\r
+               wait until rising_edge(clk);\r
+               wait for 400 ns;\r
+\r
+               wait until rising_edge(clk);\r
+               fee_busy_in <= '1';\r
+               wait for 300 ns;\r
+               wait until rising_edge(clk);\r
+\r
+               -- ONE DATA TRANSMISSION\r
+               -- dice a length\r
+               UNIFORM(seed1, seed2, rand);\r
+               test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1;\r
+               \r
+               --test_data_len := 9685;\r
+               test_data_len := 200;\r
+               \r
+               -- calculate the needed variables\r
+               test_loop_len := 2*(test_data_len - 1) + 1;\r
+               test_hdr_len := to_unsigned( test_data_len + 1, 16 );\r
+               test_evt_len := to_unsigned( test_data_len, 16 );\r
+\r
+               -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21)\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= x"10" & cts_random_number;\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= std_logic_vector( trigger_counter );\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= std_logic_vector( test_hdr_len );\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word\r
+               fee_data_in <= x"ff21";\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= std_logic_vector( test_evt_len );\r
+               wait until rising_edge(clk) and (fee_read_out = '1');\r
+               fee_data_in <= x"ff22"; \r
+               wait until rising_edge(clk) and (fee_read_out = '1');\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+\r
+               test_data     := x"ffff";\r
+               MY_DATA_LOOP: for J in 0 to test_loop_len loop\r
+                       test_data := test_data + 1;\r
+                       wait until rising_edge(clk);\r
+                       fee_data_in <= std_logic_vector(test_data); \r
+                       if( (test_data MOD 5) = 0 ) then\r
+                               fee_dataready_in <= '0';\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               fee_dataready_in <= '1';\r
+                       else\r
+                               fee_dataready_in <= '1';\r
+                       end if;\r
+               end loop MY_DATA_LOOP;\r
+               -- there must be padding words to get multiple of four LWs\r
+       \r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '0';\r
+               fee_data_in <= x"0000"; \r
+\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_busy_in <= '0';\r
+\r
+\r
+               trigger_loop    := trigger_loop + 1;\r
+               trigger_counter := trigger_counter + 1;\r
+\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               cts_read_in <= '1';\r
+               wait until rising_edge(clk);\r
+               cts_read_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               cts_start_readout_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);    \r
+               \r
+               --wait for 8 us;\r
+\r
+       end loop MY_TRIGGER_LOOP;\r
+\r
+--     wait for 8 us;\r
+-------------------------------------------------------------------------------\r
+-- end of loop\r
+-------------------------------------------------------------------------------\r
+       -- Stay a while... stay forever!!!\r
+       wait;   \r
+       \r
+end process TESTBENCH_PROC;\r
+\r
+END;\r
+\r
diff --git a/gbe_ecp2m/tb_ip_configurator.vhd b/gbe_ecp2m/tb_ip_configurator.vhd
new file mode 100755 (executable)
index 0000000..6188d42
--- /dev/null
@@ -0,0 +1,145 @@
+LIBRARY ieee;\r
+USE ieee.std_logic_1164.ALL;\r
+USE ieee.numeric_std.ALL;\r
+\r
+ENTITY testbench IS\r
+END testbench;\r
+\r
+ARCHITECTURE behavior OF testbench IS \r
+\r
+       COMPONENT ip_configurator\r
+       PORT(\r
+               CLK : IN std_logic;\r
+               RESET : IN std_logic;\r
+               START_CONFIG_IN : IN std_logic;\r
+               BANK_SELECT_IN : IN std_logic_vector(3 downto 0);\r
+               MEM_DATA_IN : IN std_logic_vector(31 downto 0);          \r
+               CONFIG_DONE_OUT : OUT std_logic;\r
+               MEM_ADDR_OUT : OUT std_logic_vector(7 downto 0);\r
+               MEM_CLK_OUT : OUT std_logic;\r
+               DEST_MAC_OUT : OUT std_logic_vector(47 downto 0);\r
+               DEST_IP_OUT : OUT std_logic_vector(31 downto 0);\r
+               DEST_UDP_OUT : OUT std_logic_vector(15 downto 0);\r
+               SRC_MAC_OUT : OUT std_logic_vector(47 downto 0);\r
+               SRC_IP_OUT : OUT std_logic_vector(31 downto 0);\r
+               SRC_UDP_OUT : OUT std_logic_vector(15 downto 0);\r
+               MTU_OUT : OUT std_logic_vector(15 downto 0);\r
+               DEBUG_OUT : OUT std_logic_vector(31 downto 0)\r
+               );\r
+       END COMPONENT;\r
+\r
+       SIGNAL CLK :  std_logic;\r
+       SIGNAL RESET :  std_logic;\r
+       SIGNAL START_CONFIG_IN :  std_logic;\r
+       SIGNAL BANK_SELECT_IN :  std_logic_vector(3 downto 0);\r
+       SIGNAL CONFIG_DONE_OUT :  std_logic;\r
+       SIGNAL MEM_ADDR_OUT :  std_logic_vector(7 downto 0);\r
+       SIGNAL MEM_DATA_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL MEM_CLK_OUT :  std_logic;\r
+       SIGNAL DEST_MAC_OUT :  std_logic_vector(47 downto 0);\r
+       SIGNAL DEST_IP_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL DEST_UDP_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL SRC_MAC_OUT :  std_logic_vector(47 downto 0);\r
+       SIGNAL SRC_IP_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL SRC_UDP_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL MTU_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL DEBUG_OUT :  std_logic_vector(31 downto 0);\r
+\r
+BEGIN\r
+\r
+-- Please check and add your generic clause manually\r
+       uut: ip_configurator PORT MAP(\r
+               CLK => CLK,\r
+               RESET => RESET,\r
+               START_CONFIG_IN => START_CONFIG_IN,\r
+               BANK_SELECT_IN => BANK_SELECT_IN,\r
+               CONFIG_DONE_OUT => CONFIG_DONE_OUT,\r
+               MEM_ADDR_OUT => MEM_ADDR_OUT,\r
+               MEM_DATA_IN => MEM_DATA_IN,\r
+               MEM_CLK_OUT => MEM_CLK_OUT,\r
+               DEST_MAC_OUT => DEST_MAC_OUT,\r
+               DEST_IP_OUT => DEST_IP_OUT,\r
+               DEST_UDP_OUT => DEST_UDP_OUT,\r
+               SRC_MAC_OUT => SRC_MAC_OUT,\r
+               SRC_IP_OUT => SRC_IP_OUT,\r
+               SRC_UDP_OUT => SRC_UDP_OUT,\r
+               MTU_OUT => MTU_OUT,\r
+               DEBUG_OUT => DEBUG_OUT\r
+       );\r
+\r
+\r
+CLK_GEN_PROC: process\r
+begin\r
+       clk <= '0'; wait for 5.0 ns;\r
+       clk <= '1'; wait for 5.0 ns;\r
+end process CLK_GEN_PROC;\r
+\r
+THE_TESTBENCH: process\r
+begin\r
+       -- Setup signals\r
+       reset <= '0';\r
+       start_config_in <= '0';\r
+       bank_select_in <= x"0";\r
+       mem_data_in <= x"0000_0000";\r
+       \r
+       -- Reset the whole stuff\r
+       wait until rising_edge(clk);\r
+       reset <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       reset <= '0';\r
+       wait for 100 ns;\r
+       wait until rising_edge(clk);\r
+       \r
+       -- Tests may start now\r
+       wait until rising_edge(clk);\r
+       start_config_in <= '1';\r
+       wait until mem_addr_out(3 downto 0) = x"1";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"4902d745"; -- dest MAC low\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"00006cf0"; -- dest MAC high\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"c0a80002"; -- dest IP\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"0000c350"; -- dest port\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"eeeeeeee"; -- src MAC low\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"0000eeee"; -- src MAC high\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"c0a80005"; -- src IP\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"0000c350"; -- src port\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"00000578"; -- MTU\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"99999999";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"aaaaaaaa";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"bbbbbbbb";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"cccccccc";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"dddddddd";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"eeeeeeee";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"ffffffff";\r
+       wait until rising_edge(clk);\r
+       mem_data_in <= x"00000000";\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       start_config_in <= '0';\r
+       \r
+       -- Stay a while... stay forever!!! Muahahaha!!!!!\r
+       wait;\r
+end process THE_TESTBENCH;\r
+\r
+\r
+END;\r
diff --git a/gbe_ecp2m/tb_ipu2gbe.vhd b/gbe_ecp2m/tb_ipu2gbe.vhd
new file mode 100755 (executable)
index 0000000..065e674
--- /dev/null
@@ -0,0 +1,428 @@
+LIBRARY ieee;\r
+USE ieee.std_logic_1164.ALL;\r
+USE ieee.math_real.all;\r
+USE ieee.numeric_std.ALL;\r
+\r
+ENTITY testbench IS\r
+END testbench;\r
+\r
+ARCHITECTURE behavior OF testbench IS \r
+\r
+       COMPONENT trb_net16_ipu2gbe\r
+       PORT(\r
+               CLK : IN std_logic;\r
+               RESET : IN std_logic;\r
+               START_CONFIG_OUT : OUT std_logic;\r
+               BANK_SELECT_OUT : OUT std_logic_vector(3 downto 0);\r
+               CONFIG_DONE_IN : IN std_logic;\r
+               DATA_GBE_ENABLE_IN : IN std_logic;\r
+               DATA_IPU_ENABLE_IN : IN std_logic;\r
+               MULTI_EVT_ENABLE_IN : IN std_logic;\r
+               CTS_NUMBER_IN : IN std_logic_vector(15 downto 0);\r
+               CTS_CODE_IN : IN std_logic_vector(7 downto 0);\r
+               CTS_INFORMATION_IN : IN std_logic_vector(7 downto 0);\r
+               CTS_READOUT_TYPE_IN : IN std_logic_vector(3 downto 0);\r
+               CTS_START_READOUT_IN : IN std_logic;\r
+               CTS_READ_IN : IN std_logic;\r
+               FEE_DATA_IN : IN std_logic_vector(15 downto 0);\r
+               FEE_DATAREADY_IN : IN std_logic;\r
+               FEE_BUSY_IN : IN std_logic;\r
+               FEE_STATUS_BITS_IN : IN std_logic_vector(31 downto 0);\r
+               PC_READY_IN : IN std_logic;          \r
+               CTS_DATA_OUT : OUT std_logic_vector(31 downto 0);\r
+               CTS_DATAREADY_OUT : OUT std_logic;\r
+               CTS_READOUT_FINISHED_OUT : OUT std_logic;\r
+               CTS_LENGTH_OUT : OUT std_logic_vector(15 downto 0);\r
+               CTS_ERROR_PATTERN_OUT : OUT std_logic_vector(31 downto 0);\r
+               FEE_READ_OUT : OUT std_logic;\r
+               PC_WR_EN_OUT : OUT std_logic;\r
+               PC_DATA_OUT : OUT std_logic_vector(7 downto 0);\r
+               PC_SOS_OUT : OUT std_logic;\r
+               PC_EOD_OUT : OUT std_logic;\r
+               PC_SUB_SIZE_OUT : OUT std_logic_vector(31 downto 0);\r
+               PC_TRIG_NR_OUT : OUT std_logic_vector(31 downto 0);\r
+               PC_PADDING_OUT : OUT std_logic;\r
+               BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0);\r
+               BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0);\r
+               DBG_REM_CTR_OUT : OUT std_logic_vector(3 downto 0);\r
+               DBG_CTS_CTR_OUT : OUT std_logic_vector(2 downto 0);\r
+               DBG_SF_WCNT_OUT : OUT std_logic_vector(15 downto 0);\r
+               DBG_SF_RCNT_OUT : OUT std_logic_vector(16 downto 0);\r
+               DBG_SF_DATA_OUT : OUT std_logic_vector(15 downto 0);\r
+               DBG_SF_RD_EN_OUT : OUT std_logic;\r
+               DBG_SF_WR_EN_OUT : OUT std_logic;\r
+               DBG_SF_EMPTY_OUT : OUT std_logic;\r
+               DBG_SF_AEMPTY_OUT : OUT std_logic;\r
+               DBG_SF_FULL_OUT : OUT std_logic;\r
+               DBG_SF_AFULL_OUT : OUT std_logic;\r
+               DEBUG_OUT : OUT std_logic_vector(31 downto 0)\r
+               );\r
+       END COMPONENT;\r
+\r
+       SIGNAL CLK :  std_logic;\r
+       SIGNAL RESET :  std_logic;\r
+       SIGNAL START_CONFIG_OUT :  std_logic;\r
+       SIGNAL BANK_SELECT_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL CONFIG_DONE_IN :  std_logic;\r
+       SIGNAL DATA_GBE_ENABLE_IN :  std_logic;\r
+       SIGNAL DATA_IPU_ENABLE_IN :  std_logic;\r
+       SIGNAL MULTI_EVT_ENABLE_IN :  std_logic;\r
+       SIGNAL CTS_NUMBER_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL CTS_CODE_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_INFORMATION_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL CTS_READOUT_TYPE_IN :  std_logic_vector(3 downto 0);\r
+       SIGNAL CTS_START_READOUT_IN :  std_logic;\r
+       SIGNAL CTS_READ_IN :  std_logic;\r
+       SIGNAL CTS_DATA_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL CTS_DATAREADY_OUT :  std_logic;\r
+       SIGNAL CTS_READOUT_FINISHED_OUT :  std_logic;\r
+       SIGNAL CTS_LENGTH_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL CTS_ERROR_PATTERN_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL FEE_DATA_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL FEE_DATAREADY_IN :  std_logic;\r
+       SIGNAL FEE_READ_OUT :  std_logic;\r
+       SIGNAL FEE_BUSY_IN :  std_logic;\r
+       SIGNAL FEE_STATUS_BITS_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_WR_EN_OUT :  std_logic;\r
+       SIGNAL PC_DATA_OUT :  std_logic_vector(7 downto 0);\r
+       SIGNAL PC_READY_IN :  std_logic;\r
+       SIGNAL PC_SOS_OUT :  std_logic;\r
+       SIGNAL PC_EOD_OUT :  std_logic;\r
+       SIGNAL PC_SUB_SIZE_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_TRIG_NR_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL PC_PADDING_OUT :  std_logic;\r
+       SIGNAL BSM_SAVE_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL BSM_LOAD_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL DBG_REM_CTR_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL DBG_CTS_CTR_OUT :  std_logic_vector(2 downto 0);\r
+       SIGNAL DBG_SF_WCNT_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL DBG_SF_RCNT_OUT :  std_logic_vector(16 downto 0);\r
+       SIGNAL DBG_SF_DATA_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL DBG_SF_RD_EN_OUT :  std_logic;\r
+       SIGNAL DBG_SF_WR_EN_OUT :  std_logic;\r
+       SIGNAL DBG_SF_EMPTY_OUT :  std_logic;\r
+       SIGNAL DBG_SF_AEMPTY_OUT :  std_logic;\r
+       SIGNAL DBG_SF_FULL_OUT :  std_logic;\r
+       SIGNAL DBG_SF_AFULL_OUT :  std_logic;\r
+       SIGNAL DEBUG_OUT :  std_logic_vector(31 downto 0);\r
+\r
+BEGIN\r
+\r
+-- Please check and add your generic clause manually\r
+       uut: trb_net16_ipu2gbe PORT MAP(\r
+               CLK => CLK,\r
+               RESET => RESET,\r
+               START_CONFIG_OUT => START_CONFIG_OUT,\r
+               BANK_SELECT_OUT => BANK_SELECT_OUT,\r
+               CONFIG_DONE_IN => CONFIG_DONE_IN,\r
+               DATA_GBE_ENABLE_IN => DATA_GBE_ENABLE_IN,\r
+               DATA_IPU_ENABLE_IN => DATA_IPU_ENABLE_IN,\r
+               MULTI_EVT_ENABLE_IN => MULTI_EVT_ENABLE_IN,\r
+               CTS_NUMBER_IN => CTS_NUMBER_IN,\r
+               CTS_CODE_IN => CTS_CODE_IN,\r
+               CTS_INFORMATION_IN => CTS_INFORMATION_IN,\r
+               CTS_READOUT_TYPE_IN => CTS_READOUT_TYPE_IN,\r
+               CTS_START_READOUT_IN => CTS_START_READOUT_IN,\r
+               CTS_READ_IN => CTS_READ_IN,\r
+               CTS_DATA_OUT => CTS_DATA_OUT,\r
+               CTS_DATAREADY_OUT => CTS_DATAREADY_OUT,\r
+               CTS_READOUT_FINISHED_OUT => CTS_READOUT_FINISHED_OUT,\r
+               CTS_LENGTH_OUT => CTS_LENGTH_OUT,\r
+               CTS_ERROR_PATTERN_OUT => CTS_ERROR_PATTERN_OUT,\r
+               FEE_DATA_IN => FEE_DATA_IN,\r
+               FEE_DATAREADY_IN => FEE_DATAREADY_IN,\r
+               FEE_READ_OUT => FEE_READ_OUT,\r
+               FEE_BUSY_IN => FEE_BUSY_IN,\r
+               FEE_STATUS_BITS_IN => FEE_STATUS_BITS_IN,\r
+               PC_WR_EN_OUT => PC_WR_EN_OUT,\r
+               PC_DATA_OUT => PC_DATA_OUT,\r
+               PC_READY_IN => PC_READY_IN,\r
+               PC_SOS_OUT => PC_SOS_OUT,\r
+               PC_EOD_OUT => PC_EOD_OUT,\r
+               PC_SUB_SIZE_OUT => PC_SUB_SIZE_OUT,\r
+               PC_TRIG_NR_OUT => PC_TRIG_NR_OUT,\r
+               PC_PADDING_OUT => PC_PADDING_OUT,\r
+               BSM_SAVE_OUT => BSM_SAVE_OUT,\r
+               BSM_LOAD_OUT => BSM_LOAD_OUT,\r
+               DBG_REM_CTR_OUT => DBG_REM_CTR_OUT,\r
+               DBG_CTS_CTR_OUT => DBG_CTS_CTR_OUT,\r
+               DBG_SF_WCNT_OUT => DBG_SF_WCNT_OUT,\r
+               DBG_SF_RCNT_OUT => DBG_SF_RCNT_OUT,\r
+               DBG_SF_DATA_OUT => DBG_SF_DATA_OUT,\r
+               DBG_SF_RD_EN_OUT => DBG_SF_RD_EN_OUT,\r
+               DBG_SF_WR_EN_OUT => DBG_SF_WR_EN_OUT,\r
+               DBG_SF_EMPTY_OUT => DBG_SF_EMPTY_OUT,\r
+               DBG_SF_AEMPTY_OUT => DBG_SF_AEMPTY_OUT,\r
+               DBG_SF_FULL_OUT => DBG_SF_FULL_OUT,\r
+               DBG_SF_AFULL_OUT => DBG_SF_AFULL_OUT,\r
+               DEBUG_OUT => DEBUG_OUT\r
+       );\r
+\r
+CLOCK_GEN: process\r
+begin\r
+       clk <= '1'; wait for 5.0 ns;\r
+       clk <= '0'; wait for 5.0 ns;\r
+end process CLOCK_GEN;\r
+\r
+PC_READY_PROC: process\r
+begin\r
+       pc_ready_in <= '0';\r
+       wait for 500 ns;\r
+       pc_ready_in <= '1';\r
+       wait for 500 ns;\r
+       pc_ready_in <= '0';\r
+       wait for 99 us;\r
+end process PC_READY_PROC;\r
+\r
+-- Testbench\r
+TESTBENCH_PROC: process\r
+-- test data from TRBnet\r
+variable test_data_len : integer range 0 to 65535 := 1;\r
+variable test_loop_len : integer range 0 to 65535 := 0;\r
+variable test_hdr_len : unsigned(15 downto 0) := x"0000";\r
+variable test_evt_len : unsigned(15 downto 0) := x"0000";\r
+variable test_data : unsigned(15 downto 0) := x"ffff";\r
+\r
+variable trigger_counter : unsigned(15 downto 0) := x"4710";\r
+variable trigger_loop : integer range 0 to 65535 := 15;\r
+\r
+-- 1400 bytes MTU => 350 as limit for fragmentation\r
+--variable max_event_size : real := 512.0;\r
+variable max_event_size : real := 17.0;\r
+\r
+variable seed1 : positive; -- seed for random generator\r
+variable seed2 : positive; -- seed for random generator\r
+variable rand : real; -- random value (0.0 ... 1.0)\r
+variable int_rand : integer; -- random value, scaled to your needs\r
+variable cts_random_number : std_logic_vector(7 downto 0);\r
+\r
+variable stim : std_logic_vector(15 downto 0);\r
+\r
+begin\r
+       -- Setup signals\r
+       reset <= '0';\r
+       cts_number_in <= x"0000";\r
+       cts_code_in <= x"00";\r
+       cts_information_in <= x"00";\r
+       cts_readout_type_in <= x"0";\r
+       cts_start_readout_in <= '0';\r
+       cts_read_in <= '0';\r
+       fee_data_in <= x"0000";\r
+       fee_dataready_in <= '0';\r
+       fee_status_bits_in <= x"0000_0000";\r
+       fee_busy_in <= '0';\r
+--     pc_ready_in <= '0';\r
+\r
+       config_done_in <= '1';\r
+       data_gbe_enable_in <= '1';\r
+       data_ipu_enable_in <= '0';\r
+       multi_evt_enable_in <= '0';\r
+\r
+       wait for 22 ns;\r
+       \r
+       -- Reset the whole stuff\r
+       wait until rising_edge(clk);\r
+       reset <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       reset <= '0';\r
+       wait until rising_edge(clk);\r
+       wait for 200 ns;\r
+\r
+---------------------------\r
+\r
+-------------------------------------------------------------------------------\r
+-- Loop the transmissions\r
+-------------------------------------------------------------------------------\r
+       trigger_counter := x"4710";\r
+       trigger_loop    := 2;\r
+\r
+       MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop\r
+               -- generate a real random byte for CTS\r
+               UNIFORM(seed1, seed2, rand);\r
+               int_rand := INTEGER(TRUNC(rand*256.0));\r
+               cts_random_number := std_logic_vector(to_unsigned(int_rand, cts_random_number'LENGTH));\r
+       \r
+               -- IPU transmission starts\r
+               wait until rising_edge(clk);\r
+               cts_number_in <= std_logic_vector( trigger_counter );\r
+               cts_code_in <= cts_random_number;\r
+               cts_information_in <= x"de";\r
+               cts_readout_type_in <= x"1";\r
+               cts_start_readout_in <= '1';\r
+               wait until rising_edge(clk);\r
+               wait for 400 ns;\r
+\r
+               wait until rising_edge(clk);\r
+               fee_busy_in <= '1';\r
+               wait for 300 ns;\r
+               wait until rising_edge(clk);\r
+\r
+               -- ONE DATA TRANSMISSION\r
+               -- dice a length\r
+               UNIFORM(seed1, seed2, rand);\r
+               test_data_len := INTEGER(TRUNC(rand*max_event_size)) + 1;\r
+               \r
+--             test_data_len := 9685;\r
+               \r
+               -- calculate the needed variables\r
+               test_loop_len := 2*(test_data_len - 1) + 1;\r
+               test_hdr_len := to_unsigned( test_data_len + 1, 16 );\r
+               test_evt_len := to_unsigned( test_data_len, 16 );\r
+\r
+               -- original data block (trigger 1, random 0xaa, number 0x4711, source 0x21)\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= x"10" & cts_random_number;\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of first data word\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= std_logic_vector( trigger_counter );\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of second data word\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk); -- BLA\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= std_logic_vector( test_hdr_len );\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of third data word\r
+               fee_data_in <= x"ff21";\r
+               wait until rising_edge(clk) and (fee_read_out = '1'); -- transfer of fourth data word\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '1';\r
+               fee_data_in <= std_logic_vector( test_evt_len );\r
+               wait until rising_edge(clk) and (fee_read_out = '1');\r
+               fee_data_in <= x"ff22"; \r
+               wait until rising_edge(clk) and (fee_read_out = '1');\r
+               fee_dataready_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+\r
+               test_data     := x"ffff";\r
+               MY_DATA_LOOP: for J in 0 to test_loop_len loop\r
+                       test_data := test_data + 1;\r
+                       wait until rising_edge(clk) and (fee_read_out = '1'); --\r
+                       fee_data_in <= std_logic_vector(test_data); \r
+                       if( (test_data MOD 5) = 0 ) then\r
+                               fee_dataready_in <= '0';\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+--                             wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               wait until rising_edge(clk);\r
+                               fee_dataready_in <= '1';\r
+                       else\r
+                               fee_dataready_in <= '1';\r
+                       end if;\r
+               end loop MY_DATA_LOOP;\r
+               -- there must be padding words to get multiple of four LWs\r
+       \r
+               wait until rising_edge(clk);\r
+               fee_dataready_in <= '0';\r
+               fee_data_in <= x"0000"; \r
+\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               fee_busy_in <= '0';\r
+\r
+\r
+               trigger_loop    := trigger_loop + 1;\r
+               trigger_counter := trigger_counter + 1;\r
+\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               cts_read_in <= '1';\r
+               wait until rising_edge(clk);\r
+               cts_read_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               cts_start_readout_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);    \r
+               \r
+               --wait for 8 us;\r
+\r
+       end loop MY_TRIGGER_LOOP;\r
+\r
+\r
+\r
+---------------------------\r
+---------------------------\r
+       wait for 300 ns;\r
+\r
+       wait;\r
+\r
+       -- Start packet_constructor\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+--     pc_ready_in <= '1';\r
+       wait until rising_edge(clk);\r
+\r
+       wait until rising_edge(clk);\r
+       wait until pc_eod_out = '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+--     pc_ready_in <= '0';\r
+\r
+       -- Stay a while... stay forever!!!\r
+       wait;   \r
+       \r
+end process TESTBENCH_PROC;\r
+\r
+\r
+END;\r
diff --git a/gbe_ecp2m/tb_lsm.vhd b/gbe_ecp2m/tb_lsm.vhd
new file mode 100755 (executable)
index 0000000..6e86029
--- /dev/null
@@ -0,0 +1,113 @@
+LIBRARY ieee;\r
+USE ieee.std_logic_1164.ALL;\r
+USE ieee.numeric_std.ALL;\r
+\r
+ENTITY testbench IS\r
+END testbench;\r
+\r
+ARCHITECTURE behavior OF testbench IS \r
+\r
+       COMPONENT trb_net16_lsm_sfp_gbe\r
+       PORT(\r
+               SYSCLK : IN std_logic;\r
+               RESET : IN std_logic;\r
+               CLEAR : IN std_logic;\r
+               SFP_MISSING_IN : IN std_logic;\r
+               SFP_LOS_IN : IN std_logic;\r
+               SD_LINK_OK_IN : IN std_logic;\r
+               SD_LOS_IN : IN std_logic;\r
+               SD_TXCLK_BAD_IN : IN std_logic;\r
+               SD_RXCLK_BAD_IN : IN std_logic;          \r
+               FULL_RESET_OUT : OUT std_logic;\r
+               LANE_RESET_OUT : OUT std_logic;\r
+               USER_RESET_OUT : OUT std_logic;\r
+               TIMING_CTR_OUT : OUT std_logic_vector(18 downto 0);\r
+               BSM_OUT : OUT std_logic_vector(3 downto 0);\r
+               DEBUG_OUT : OUT std_logic_vector(31 downto 0)\r
+               );\r
+       END COMPONENT;\r
+\r
+       SIGNAL SYSCLK :  std_logic;\r
+       SIGNAL RESET :  std_logic;\r
+       SIGNAL CLEAR :  std_logic;\r
+       SIGNAL SFP_MISSING_IN :  std_logic;\r
+       SIGNAL SFP_LOS_IN :  std_logic;\r
+       SIGNAL SD_LINK_OK_IN :  std_logic;\r
+       SIGNAL SD_LOS_IN :  std_logic;\r
+       SIGNAL SD_TXCLK_BAD_IN :  std_logic;\r
+       SIGNAL SD_RXCLK_BAD_IN :  std_logic;\r
+       SIGNAL FULL_RESET_OUT :  std_logic;\r
+       SIGNAL LANE_RESET_OUT :  std_logic;\r
+       SIGNAL USER_RESET_OUT :  std_logic;\r
+       SIGNAL TIMING_CTR_OUT :  std_logic_vector(18 downto 0);\r
+       SIGNAL BSM_OUT :  std_logic_vector(3 downto 0);\r
+       SIGNAL DEBUG_OUT :  std_logic_vector(31 downto 0);\r
+\r
+BEGIN\r
+\r
+-- Please check and add your generic clause manually\r
+       uut: trb_net16_lsm_sfp_gbe PORT MAP(\r
+               SYSCLK => SYSCLK,\r
+               RESET => RESET,\r
+               CLEAR => CLEAR,\r
+               SFP_MISSING_IN => SFP_MISSING_IN,\r
+               SFP_LOS_IN => SFP_LOS_IN,\r
+               SD_LINK_OK_IN => SD_LINK_OK_IN,\r
+               SD_LOS_IN => SD_LOS_IN,\r
+               SD_TXCLK_BAD_IN => SD_TXCLK_BAD_IN,\r
+               SD_RXCLK_BAD_IN => SD_RXCLK_BAD_IN,\r
+               FULL_RESET_OUT => FULL_RESET_OUT,\r
+               LANE_RESET_OUT => LANE_RESET_OUT,\r
+               USER_RESET_OUT => USER_RESET_OUT,\r
+               TIMING_CTR_OUT => TIMING_CTR_OUT,\r
+               BSM_OUT => BSM_OUT,\r
+               DEBUG_OUT => DEBUG_OUT\r
+       );\r
+                         \r
+\r
+CLOCK_GEN: process\r
+begin\r
+       sysclk <= '1'; wait for 4.0 ns;\r
+       sysclk <= '0'; wait for 4.0 ns;\r
+end process CLOCK_GEN;\r
+\r
+THE_TESTBENCH: process\r
+begin\r
+       -- Setup signals\r
+       reset <= '0';\r
+       clear <= '0';\r
+       sfp_missing_in <= '0';\r
+       sfp_los_in <= '0';\r
+       sd_link_ok_in <= '0';\r
+       sd_los_in <= '0';\r
+       sd_txclk_bad_in <= '1';\r
+       sd_rxclk_bad_in <= '1';\r
+       wait for 100 ns;\r
+       \r
+       -- Reset\r
+       clear <= '1';\r
+       wait for 100 ns;\r
+       clear <= '0';\r
+       wait for 10 ns;\r
+       \r
+       -- Tests may start now\r
+       wait until falling_edge(full_reset_out);\r
+       wait for 123 ns;\r
+       sd_txclk_bad_in <= '0';\r
+       wait for 433 ns;\r
+       sd_rxclk_bad_in <= '0';\r
+\r
+       wait for 1.1 us;\r
+       sd_rxclk_bad_in <= '1';\r
+       wait for 33 ns;\r
+       sd_rxclk_bad_in <= '0';\r
+\r
+       \r
+       wait until rising_edge(sysclk); \r
+       \r
+       -- Stay a while.... stay forever!!! Muahahaha!!!!\r
+       wait;\r
+\r
+end process THE_TESTBENCH;\r
+                                                             \r
+END;                                                         
\ No newline at end of file
diff --git a/gbe_ecp2m/tb_pc.vhd b/gbe_ecp2m/tb_pc.vhd
new file mode 100755 (executable)
index 0000000..ac85375
--- /dev/null
@@ -0,0 +1,310 @@
+LIBRARY ieee;                                                   \r
+USE ieee.std_logic_1164.ALL;                                    \r
+USE ieee.numeric_std.ALL;                                       \r
+                                                                \r
+ENTITY testbench IS                                             \r
+END testbench;                                                  \r
+                                                                \r
+ARCHITECTURE behavior OF testbench IS                           \r
+                                                                \r
+       COMPONENT trb_net16_gbe_packet_constr                       \r
+       PORT(                                                       \r
+               RESET : IN std_logic;                                   \r
+               CLK : IN std_logic;                                     \r
+               PC_WR_EN_IN : IN std_logic;                             \r
+               PC_DATA_IN : IN std_logic_vector(7 downto 0);           \r
+               PC_START_OF_SUB_IN : IN std_logic;                      \r
+               PC_END_OF_DATA_IN : IN std_logic;                       \r
+               PC_SUB_SIZE_IN : IN std_logic_vector(31 downto 0);      \r
+               PC_DECODING_IN : IN std_logic_vector(31 downto 0);      \r
+               PC_EVENT_ID_IN : IN std_logic_vector(31 downto 0);      \r
+               PC_TRIG_NR_IN : IN std_logic_vector(31 downto 0);       \r
+               PC_QUEUE_DEC_IN : IN std_logic_vector(31 downto 0);     \r
+               PC_MAX_FRAME_SIZE_IN : IN std_logic_vector(15 downto 0);\r
+               FC_H_READY_IN : IN std_logic;                           \r
+               FC_READY_IN : IN std_logic;                             \r
+               PC_READY_OUT : OUT std_logic;                           \r
+               FC_WR_EN_OUT : OUT std_logic;                           \r
+               FC_DATA_OUT : OUT std_logic_vector(7 downto 0);         \r
+               FC_IP_SIZE_OUT : OUT std_logic_vector(15 downto 0);     \r
+               FC_UDP_SIZE_OUT : OUT std_logic_vector(15 downto 0);    \r
+               FC_IDENT_OUT : OUT std_logic_vector(15 downto 0);       \r
+               FC_FLAGS_OFFSET_OUT : OUT std_logic_vector(15 downto 0);\r
+               FC_SOD_OUT : OUT std_logic;                             \r
+               FC_EOD_OUT : OUT std_logic;                             \r
+               BSM_CONSTR_OUT : OUT std_logic_vector(3 downto 0);      \r
+               BSM_LOAD_OUT : OUT std_logic_vector(3 downto 0);        \r
+               BSM_SAVE_OUT : OUT std_logic_vector(3 downto 0);        \r
+               DBG_SHF_EMPTY : OUT std_logic;\r
+               DBG_SHF_FULL : OUT std_logic;\r
+               DBG_SHF_WR_EN : OUT std_logic;\r
+               DBG_SHF_RD_EN : OUT std_logic;\r
+               DBG_DF_EMPTY : OUT std_logic;\r
+               DBG_DF_FULL : OUT std_logic;\r
+               DBG_DF_WR_EN : OUT std_logic;\r
+               DBG_DF_RD_EN : OUT std_logic;\r
+               DBG_ALL_CTR : OUT std_logic_vector(4 downto 0);\r
+               DBG_SUB_CTR : OUT std_logic_vector(4 downto 0);\r
+               DBG_MY_CTR : OUT std_logic_vector(1 downto 0);\r
+               DBG_BYTES_LOADED : OUT std_logic_vector(15 downto 0);\r
+               DBG_SIZE_LEFT : OUT std_logic_vector(31 downto 0);\r
+               DBG_SUB_SIZE_TO_SAVE : OUT std_logic_vector(31 downto 0);\r
+               DBG_SUB_SIZE_LOADED : OUT std_logic_vector(31 downto 0);\r
+               DBG_SUB_BYTES_LOADED : OUT std_logic_vector(31 downto 0);\r
+               DBG_QUEUE_SIZE : OUT std_logic_vector(31 downto 0);\r
+               DBG_ACT_QUEUE_SIZE : OUT std_logic_vector(31 downto 0);\r
+               DEBUG_OUT : OUT std_logic_vector(31 downto 0)           \r
+               );                                                      \r
+       END COMPONENT;                                              \r
+\r
+       SIGNAL RESET :  std_logic;                                  \r
+       SIGNAL CLK :  std_logic;                                    \r
+       SIGNAL PC_WR_EN_IN :  std_logic;                            \r
+       SIGNAL PC_DATA_IN :  std_logic_vector(7 downto 0);          \r
+       SIGNAL PC_READY_OUT :  std_logic;                           \r
+       SIGNAL PC_START_OF_SUB_IN :  std_logic;                     \r
+       SIGNAL PC_END_OF_DATA_IN :  std_logic;                      \r
+       SIGNAL PC_SUB_SIZE_IN :  std_logic_vector(31 downto 0);     \r
+       SIGNAL PC_DECODING_IN :  std_logic_vector(31 downto 0);     \r
+       SIGNAL PC_EVENT_ID_IN :  std_logic_vector(31 downto 0);     \r
+       SIGNAL PC_TRIG_NR_IN :  std_logic_vector(31 downto 0);      \r
+       SIGNAL PC_QUEUE_DEC_IN :  std_logic_vector(31 downto 0);    \r
+       SIGNAL PC_MAX_FRAME_SIZE_IN :  std_logic_vector(15 downto 0);\r
+       SIGNAL FC_WR_EN_OUT :  std_logic;                           \r
+       SIGNAL FC_DATA_OUT :  std_logic_vector(7 downto 0);         \r
+       SIGNAL FC_H_READY_IN :  std_logic;                          \r
+       SIGNAL FC_READY_IN :  std_logic;                            \r
+       SIGNAL FC_IP_SIZE_OUT :  std_logic_vector(15 downto 0);     \r
+       SIGNAL FC_UDP_SIZE_OUT :  std_logic_vector(15 downto 0);    \r
+       SIGNAL FC_IDENT_OUT :  std_logic_vector(15 downto 0);       \r
+       SIGNAL FC_FLAGS_OFFSET_OUT :  std_logic_vector(15 downto 0);\r
+       SIGNAL FC_SOD_OUT :  std_logic;                             \r
+       SIGNAL FC_EOD_OUT :  std_logic;                             \r
+       SIGNAL BSM_CONSTR_OUT :  std_logic_vector(3 downto 0);      \r
+       SIGNAL BSM_LOAD_OUT :  std_logic_vector(3 downto 0);        \r
+       SIGNAL BSM_SAVE_OUT :  std_logic_vector(3 downto 0);        \r
+       SIGNAL DBG_SHF_EMPTY :  std_logic;\r
+       SIGNAL DBG_SHF_FULL :  std_logic;\r
+       SIGNAL DBG_SHF_WR_EN :  std_logic;\r
+       SIGNAL DBG_SHF_RD_EN :  std_logic;\r
+       SIGNAL DBG_DF_EMPTY :  std_logic;\r
+       SIGNAL DBG_DF_FULL :  std_logic;\r
+       SIGNAL DBG_DF_WR_EN :  std_logic;\r
+       SIGNAL DBG_DF_RD_EN :  std_logic;\r
+       SIGNAL DBG_ALL_CTR :  std_logic_vector(4 downto 0);\r
+       SIGNAL DBG_SUB_CTR :  std_logic_vector(4 downto 0);\r
+       SIGNAL DBG_MY_CTR :  std_logic_vector(1 downto 0);\r
+       SIGNAL DBG_BYTES_LOADED :  std_logic_vector(15 downto 0);\r
+       SIGNAL DBG_SIZE_LEFT :  std_logic_vector(31 downto 0);\r
+       SIGNAL DBG_SUB_SIZE_TO_SAVE :  std_logic_vector(31 downto 0);\r
+       SIGNAL DBG_SUB_SIZE_LOADED :  std_logic_vector(31 downto 0);\r
+       SIGNAL DBG_SUB_BYTES_LOADED :  std_logic_vector(31 downto 0);\r
+       SIGNAL DBG_QUEUE_SIZE :  std_logic_vector(31 downto 0);\r
+       SIGNAL DBG_ACT_QUEUE_SIZE :  std_logic_vector(31 downto 0);\r
+       SIGNAL DEBUG_OUT :  std_logic_vector(31 downto 0);          \r
+                                                                \r
+BEGIN                                                           \r
+                                                                \r
+-- Please check and add your generic clause manually            \r
+       uut: trb_net16_gbe_packet_constr PORT MAP(                  \r
+               RESET => RESET,                                         \r
+               CLK => CLK,                                             \r
+               PC_WR_EN_IN => PC_WR_EN_IN,                             \r
+               PC_DATA_IN => PC_DATA_IN,                               \r
+               PC_READY_OUT => PC_READY_OUT,                           \r
+               PC_START_OF_SUB_IN => PC_START_OF_SUB_IN,               \r
+               PC_END_OF_DATA_IN => PC_END_OF_DATA_IN,                 \r
+               PC_SUB_SIZE_IN => PC_SUB_SIZE_IN,                       \r
+               PC_DECODING_IN => PC_DECODING_IN,                       \r
+               PC_EVENT_ID_IN => PC_EVENT_ID_IN,                       \r
+               PC_TRIG_NR_IN => PC_TRIG_NR_IN,                         \r
+               PC_QUEUE_DEC_IN => PC_QUEUE_DEC_IN,\r
+               PC_MAX_FRAME_SIZE_IN => PC_MAX_FRAME_SIZE_IN,                     \r
+               FC_WR_EN_OUT => FC_WR_EN_OUT,                           \r
+               FC_DATA_OUT => FC_DATA_OUT,                             \r
+               FC_H_READY_IN => FC_H_READY_IN,                         \r
+               FC_READY_IN => FC_READY_IN,                             \r
+               FC_IP_SIZE_OUT => FC_IP_SIZE_OUT,                       \r
+               FC_UDP_SIZE_OUT => FC_UDP_SIZE_OUT,                     \r
+               FC_IDENT_OUT => FC_IDENT_OUT,                           \r
+               FC_FLAGS_OFFSET_OUT => FC_FLAGS_OFFSET_OUT,             \r
+               FC_SOD_OUT => FC_SOD_OUT,                               \r
+               FC_EOD_OUT => FC_EOD_OUT,                               \r
+               BSM_CONSTR_OUT => BSM_CONSTR_OUT,                       \r
+               BSM_LOAD_OUT => BSM_LOAD_OUT,                           \r
+               BSM_SAVE_OUT => BSM_SAVE_OUT,                           \r
+               DBG_SHF_EMPTY => DBG_SHF_EMPTY,\r
+               DBG_SHF_FULL => DBG_SHF_FULL,\r
+               DBG_SHF_WR_EN => DBG_SHF_WR_EN,\r
+               DBG_SHF_RD_EN => DBG_SHF_RD_EN,\r
+               DBG_DF_EMPTY => DBG_DF_EMPTY,\r
+               DBG_DF_FULL => DBG_DF_FULL,\r
+               DBG_DF_WR_EN => DBG_DF_WR_EN,\r
+               DBG_DF_RD_EN => DBG_DF_RD_EN,\r
+               DBG_ALL_CTR => DBG_ALL_CTR,\r
+               DBG_SUB_CTR => DBG_SUB_CTR,\r
+               DBG_MY_CTR => DBG_MY_CTR,\r
+               DBG_BYTES_LOADED => DBG_BYTES_LOADED, \r
+               DBG_SIZE_LEFT => DBG_SIZE_LEFT, \r
+               DBG_SUB_SIZE_TO_SAVE => DBG_SUB_SIZE_TO_SAVE,\r
+               DBG_SUB_SIZE_LOADED => DBG_SUB_SIZE_LOADED,\r
+               DBG_SUB_BYTES_LOADED => DBG_SUB_BYTES_LOADED,\r
+               DBG_QUEUE_SIZE => DBG_QUEUE_SIZE,\r
+               DBG_ACT_QUEUE_SIZE => DBG_ACT_QUEUE_SIZE,\r
+               DEBUG_OUT => DEBUG_OUT\r
+       );                                                          \r
+                                                                \r
+CLK_GEN: process\r
+begin\r
+       clk <= '1'; wait for 5.0 ns;\r
+       clk <= '0'; wait for 5.0 ns;\r
+end process CLK_GEN;\r
+\r
+THE_TESTBENCH: process\r
+variable test_data_len    : integer range 0 to 65535 := 1;\r
+variable test_loop_len    : integer range 0 to 65535 := 0;\r
+variable test_evt_len     : unsigned(15 downto 0) := x"0000";\r
+variable test_evt_len_vec : std_logic_vector(15 downto 0);\r
+variable test_sub_len     : unsigned(15 downto 0) := x"0000";\r
+variable test_sub_len_vec : std_logic_vector(15 downto 0);\r
+variable test_data        : unsigned(15 downto 0) := x"ffff";\r
+variable test_data_vec    : std_logic_vector(15 downto 0);\r
+\r
+variable trigger_counter  : unsigned(15 downto 0) := x"4710";\r
+variable trigger_loop     : integer range 0 to 65535 := 15;\r
+begin\r
+       -- Set up signals\r
+       reset <= '0';\r
+       pc_wr_en_in <= '0';\r
+       pc_data_in <= x"00";\r
+       pc_start_of_sub_in <= '0';\r
+       pc_end_of_data_in <= '0';\r
+       pc_sub_size_in <= x"0000_0000";\r
+       pc_trig_nr_in <= x"0000_0000";\r
+       pc_decoding_in <= x"0002_0001"; -- static\r
+       pc_event_id_in <= x"0000_00ca"; -- static\r
+       pc_queue_dec_in <= x"0003_0062"; -- static\r
+       pc_max_frame_size_in <= x"0578"; -- static\r
+       fc_h_ready_in <= '0';\r
+       fc_ready_in <= '0';\r
+       wait until rising_edge(clk);\r
+\r
+       -- Reset the whole stuff\r
+       wait until rising_edge(clk);\r
+       reset <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       reset <= '0';\r
+       wait until rising_edge(clk);\r
+       wait for 200 ns;\r
+       wait until rising_edge(clk);\r
+       \r
+       -- Tests may start now\r
+\r
+-------------------------------------------------------------------------------\r
+-- Loop the transmissions\r
+-------------------------------------------------------------------------------\r
+       trigger_counter := x"4710";\r
+       trigger_loop    := 0;\r
+\r
+       test_data_len   := 14;\r
+\r
+       MY_TRIGGER_LOOP: for J in 0 to trigger_loop loop\r
+\r
+               -- calculate the needed variables\r
+               test_loop_len := 2*(test_data_len - 1) + 1;\r
+               test_evt_len := to_unsigned( test_data_len, 16 );\r
+               test_evt_len_vec := std_logic_vector(test_evt_len);\r
+               test_sub_len := test_evt_len + 1;\r
+               test_sub_len_vec := std_logic_vector(test_sub_len);\r
+\r
+               -- start of subevent marker\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               pc_trig_nr_in <= x"0000" & std_logic_vector(trigger_counter);\r
+               pc_sub_size_in <= b"0000_0000_0000_00" & test_sub_len_vec & b"00";\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               pc_start_of_sub_in <= '1';\r
+               wait until rising_edge(clk);\r
+               pc_start_of_sub_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               pc_data_in <= test_evt_len_vec(15 downto 8);\r
+               pc_wr_en_in <= '1';\r
+               wait until rising_edge(clk);\r
+               pc_data_in <= test_evt_len_vec(7 downto 0);\r
+               pc_wr_en_in <= '1';\r
+               wait until rising_edge(clk);\r
+               pc_wr_en_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               pc_data_in <= x"ff"; -- source address high byte\r
+               pc_wr_en_in <= '1';\r
+               wait until rising_edge(clk);\r
+               pc_data_in <= x"22"; -- source address low byte\r
+               pc_wr_en_in <= '1';\r
+               wait until rising_edge(clk);\r
+               pc_wr_en_in <= '0';\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+               \r
+               test_data     := x"ffff";\r
+               MY_DATA_LOOP: for J in 0 to test_loop_len loop\r
+                       test_data := test_data + 1;\r
+                       test_data_vec := std_logic_vector(test_data);\r
+                       wait until rising_edge(clk);\r
+                       pc_data_in <= test_data_vec(15 downto 8);\r
+                       pc_wr_en_in <= '1';\r
+                       wait until rising_edge(clk);\r
+                       pc_data_in <= test_data_vec(7 downto 0);\r
+                       pc_wr_en_in <= '1';\r
+                       wait until rising_edge(clk);\r
+                       pc_wr_en_in <= '0';\r
+--                     wait until rising_edge(clk);\r
+--                     wait until rising_edge(clk);                    \r
+               end loop MY_DATA_LOOP;\r
+\r
+               -- end of subevent marker\r
+--             wait until rising_edge(clk);\r
+               pc_end_of_data_in <= '1';\r
+               wait until rising_edge(clk);\r
+               pc_end_of_data_in <= '0';\r
+               pc_sub_size_in <= x"0000_0000";\r
+               pc_trig_nr_in <= x"0000_0000";\r
+               wait until rising_edge(clk);\r
+               wait until rising_edge(clk);\r
+\r
+               trigger_loop    := trigger_loop + 1;\r
+               trigger_counter := trigger_counter + 1;\r
+\r
+               wait for 500 ns;\r
+               wait until rising_edge(clk);\r
+       end loop MY_TRIGGER_LOOP;\r
+\r
+--     wait for 8 us;\r
+-------------------------------------------------------------------------------\r
+-- end of loop\r
+-------------------------------------------------------------------------------\r
+\r
+       wait until rising_edge(clk);\r
+       fc_ready_in <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       fc_h_ready_in <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       \r
+       -- Stay a while... stay forever!!!Muahahah!!!\r
+       wait;\r
+\r
+end process THE_TESTBENCH;                                                                \r
+                                                                \r
+END;                                                            
\ No newline at end of file
diff --git a/gbe_ecp2m/tb_slv_mac_memory.vhd b/gbe_ecp2m/tb_slv_mac_memory.vhd
new file mode 100755 (executable)
index 0000000..00293c3
--- /dev/null
@@ -0,0 +1,114 @@
+LIBRARY ieee;\r
+USE ieee.std_logic_1164.ALL;\r
+USE ieee.numeric_std.ALL;\r
+\r
+ENTITY testbench IS\r
+END testbench;\r
+\r
+ARCHITECTURE behavior OF testbench IS \r
+\r
+       COMPONENT slv_mac_memory\r
+       PORT(\r
+               CLK : IN std_logic;\r
+               RESET : IN std_logic;\r
+               BUSY_IN : IN std_logic;\r
+               SLV_ADDR_IN : IN std_logic_vector(7 downto 0);\r
+               SLV_READ_IN : IN std_logic;\r
+               SLV_WRITE_IN : IN std_logic;\r
+               SLV_DATA_IN : IN std_logic_vector(31 downto 0);\r
+               MEM_CLK_IN : IN std_logic;\r
+               MEM_ADDR_IN : IN std_logic_vector(7 downto 0);          \r
+               SLV_BUSY_OUT : OUT std_logic;\r
+               SLV_ACK_OUT : OUT std_logic;\r
+               SLV_DATA_OUT : OUT std_logic_vector(31 downto 0);\r
+               MEM_DATA_OUT : OUT std_logic_vector(31 downto 0);\r
+               STAT : OUT std_logic_vector(31 downto 0)\r
+               );\r
+       END COMPONENT;\r
+\r
+       SIGNAL CLK :  std_logic;\r
+       SIGNAL RESET :  std_logic;\r
+       SIGNAL BUSY_IN :  std_logic;\r
+       SIGNAL SLV_ADDR_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL SLV_READ_IN :  std_logic;\r
+       SIGNAL SLV_WRITE_IN :  std_logic;\r
+       SIGNAL SLV_BUSY_OUT :  std_logic;\r
+       SIGNAL SLV_ACK_OUT :  std_logic;\r
+       SIGNAL SLV_DATA_IN :  std_logic_vector(31 downto 0);\r
+       SIGNAL SLV_DATA_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL MEM_CLK_IN :  std_logic;\r
+       SIGNAL MEM_ADDR_IN :  std_logic_vector(7 downto 0);\r
+       SIGNAL MEM_DATA_OUT :  std_logic_vector(31 downto 0);\r
+       SIGNAL STAT :  std_logic_vector(31 downto 0);\r
+\r
+BEGIN\r
+\r
+-- Please check and add your generic clause manually\r
+       uut: slv_mac_memory PORT MAP(\r
+               CLK => CLK,\r
+               RESET => RESET,\r
+               BUSY_IN => BUSY_IN,\r
+               SLV_ADDR_IN => SLV_ADDR_IN,\r
+               SLV_READ_IN => SLV_READ_IN,\r
+               SLV_WRITE_IN => SLV_WRITE_IN,\r
+               SLV_BUSY_OUT => SLV_BUSY_OUT,\r
+               SLV_ACK_OUT => SLV_ACK_OUT,\r
+               SLV_DATA_IN => SLV_DATA_IN,\r
+               SLV_DATA_OUT => SLV_DATA_OUT,\r
+               MEM_CLK_IN => MEM_CLK_IN,\r
+               MEM_ADDR_IN => MEM_ADDR_IN,\r
+               MEM_DATA_OUT => MEM_DATA_OUT,\r
+               STAT => STAT\r
+       );\r
+\r
+CLK_GEN_PROC: process\r
+begin\r
+       clk <= '0'; mem_clk_in <= '0'; wait for 5.0 ns;\r
+       clk <= '1'; mem_clk_in <= '1'; wait for 5.0 ns;\r
+end process CLK_GEN_PROC;\r
+\r
+THE_TESTBENCH: process\r
+begin\r
+       -- Setup signals\r
+       reset <= '0';\r
+       busy_in <= '0';\r
+       slv_addr_in <= x"00";\r
+       slv_read_in <= '0';\r
+       slv_write_in <= '0';\r
+       slv_data_in <= x"dead_beef";\r
+       mem_addr_in <= x"f0";\r
+       wait until rising_edge(clk);\r
+       \r
+       -- Reset the whole stuff\r
+       wait until rising_edge(clk);\r
+       reset <= '1';\r
+       wait until rising_edge(clk);\r
+       wait until rising_edge(clk);\r
+       reset <= '0';\r
+       wait until rising_edge(clk);\r
+       \r
+       -- Tests may start now\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"00";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"01";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"02";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"03";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"04";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"05";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"06";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"07";\r
+       wait until rising_edge(clk);\r
+       mem_addr_in <= x"08";\r
+       \r
+       -- Stay a while... stay forever!!! Muahahaha!!!!!\r
+       wait;\r
+end process THE_TESTBENCH;\r
+\r
+END;\r
diff --git a/gbe_ecp2m/trb_net16_gbe_buf.vhd b/gbe_ecp2m/trb_net16_gbe_buf.vhd
new file mode 100755 (executable)
index 0000000..5011959
--- /dev/null
@@ -0,0 +1,1268 @@
+LIBRARY ieee;
+use ieee.std_logic_1164.all;
+USE IEEE.numeric_std.ALL;
+USE IEEE.std_logic_UNSIGNED.ALL;
+use IEEE.std_logic_arith.all;
+
+library work;
+use work.trb_net_std.all;
+use work.trb_net_components.all;
+use work.trb_net16_hub_func.all;
+use work.version.all;
+
+entity trb_net16_gbe_buf is
+generic( 
+       DO_SIMULATION           : integer range 0 to 1 := 1
+);
+port(
+       CLK                                                     : in    std_logic;
+       TEST_CLK                                        : in    std_logic; -- only for simulation!
+       RESET                                           : in    std_logic;
+       GSR_N                                           : in    std_logic;
+       -- Debug
+       STAGE_STAT_REGS_OUT                     : out   std_logic_vector(31 downto 0);
+       STAGE_CTRL_REGS_IN                      : in    std_logic_vector(31 downto 0);
+       -- configuration interface
+       IP_CFG_START_IN                         : in    std_logic;
+       IP_CFG_BANK_SEL_IN                      : in    std_logic_vector(3 downto 0);
+       IP_CFG_DONE_OUT                         : out   std_logic;
+       IP_CFG_MEM_ADDR_OUT                     : out   std_logic_vector(7 downto 0);
+       IP_CFG_MEM_DATA_IN                      : in    std_logic_vector(31 downto 0);
+       IP_CFG_MEM_CLK_OUT                      : out   std_logic;
+       MR_RESET_IN                                     : in    std_logic;
+       MR_MODE_IN                                      : in    std_logic;
+       MR_RESTART_IN                           : in    std_logic;
+       -- gk 29.03.10
+       SLV_ADDR_IN                  : in std_logic_vector(7 downto 0);
+       SLV_READ_IN                  : in std_logic;
+       SLV_WRITE_IN                 : in std_logic;
+       SLV_BUSY_OUT                 : out std_logic;
+       SLV_ACK_OUT                  : out std_logic;
+       SLV_DATA_IN                  : in std_logic_vector(31 downto 0);
+       SLV_DATA_OUT                 : out std_logic_vector(31 downto 0);
+       -- CTS interface
+       CTS_NUMBER_IN                           : in    std_logic_vector (15 downto 0);
+       CTS_CODE_IN                                     : in    std_logic_vector (7  downto 0);
+       CTS_INFORMATION_IN                      : in    std_logic_vector (7  downto 0);
+       CTS_READOUT_TYPE_IN                     : in    std_logic_vector (3  downto 0);
+       CTS_START_READOUT_IN            : in    std_logic;
+       CTS_DATA_OUT                            : out   std_logic_vector (31 downto 0);
+       CTS_DATAREADY_OUT                       : out   std_logic;
+       CTS_READOUT_FINISHED_OUT        : out   std_logic;
+       CTS_READ_IN                                     : in    std_logic;
+       CTS_LENGTH_OUT                          : out   std_logic_vector (15 downto 0);
+       CTS_ERROR_PATTERN_OUT           : out   std_logic_vector (31 downto 0);
+       -- Data payload interface
+       FEE_DATA_IN                                     : in    std_logic_vector (15 downto 0);
+       FEE_DATAREADY_IN                        : in    std_logic;
+       FEE_READ_OUT                            : out   std_logic;
+       FEE_STATUS_BITS_IN                      : in    std_logic_vector (31 downto 0);
+       FEE_BUSY_IN                                     : in    std_logic;
+       --SFP Connection
+       SFP_RXD_P_IN                            : in    std_logic;
+       SFP_RXD_N_IN                            : in    std_logic;
+       SFP_TXD_P_OUT                           : out   std_logic;
+       SFP_TXD_N_OUT                           : out   std_logic;
+       SFP_REFCLK_P_IN                         : in    std_logic;
+       SFP_REFCLK_N_IN                         : in    std_logic;
+       SFP_PRSNT_N_IN                          : in    std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted)
+       SFP_LOS_IN                                      : in    std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)
+       SFP_TXDIS_OUT                           : out   std_logic; -- SFP disable
+       -------------------------------------------------------------------------------------------
+       -------------------------------------------------------------------------------------------
+       -- PacketConstructor interface
+       IG_CTS_CTR_TST                          : out   std_logic_vector(2 downto 0);
+       IG_REM_CTR_TST                          : out   std_logic_vector(3 downto 0);
+       IG_BSM_LOAD_TST                         : out   std_logic_vector(3 downto 0);
+       IG_BSM_SAVE_TST                         : out   std_logic_vector(3 downto 0);
+       IG_DATA_TST                                     : out   std_logic_vector(15 downto 0);
+       IG_WCNT_TST                                     : out   std_logic_vector(15 downto 0);
+       IG_RCNT_TST                                     : out   std_logic_vector(16 downto 0);
+       IG_RD_EN_TST                            : out   std_logic;
+       IG_WR_EN_TST                            : out   std_logic;
+       IG_EMPTY_TST                            : out   std_logic;
+       IG_AEMPTY_TST                           : out   std_logic;
+       IG_FULL_TST                                     : out   std_logic;
+       IG_AFULL_TST                            : out   std_logic;
+       PC_WR_EN_TST                            : out   std_logic;
+       PC_DATA_TST                                     : out   std_logic_vector (7 downto 0);
+       PC_READY_TST                            : out   std_logic;
+       PC_START_OF_SUB_TST                     : out   std_logic;
+       PC_END_OF_DATA_TST                      : out   std_logic;
+       PC_SUB_SIZE_TST                         : out   std_logic_vector(31 downto 0);
+       PC_TRIG_NR_TST                          : out   std_logic_vector(31 downto 0);
+       PC_PADDING_TST                          : out   std_logic;
+       PC_DECODING_TST                         : out   std_logic_vector(31 downto 0);
+       PC_EVENT_ID_TST                         : out   std_logic_vector(31 downto 0);
+       PC_QUEUE_DEC_TST                        : out   std_logic_vector(31 downto 0);
+       PC_BSM_CONSTR_TST                       : out   std_logic_vector(3 downto 0);
+       PC_BSM_LOAD_TST                         : out   std_logic_vector(3 downto 0);
+       PC_BSM_SAVE_TST                         : out   std_logic_vector(3 downto 0);
+       PC_SHF_EMPTY_TST                        : out   std_logic;
+       PC_SHF_FULL_TST                         : out   std_logic;
+       PC_SHF_WR_EN_TST                        : out   std_logic;
+       PC_SHF_RD_EN_TST                        : out   std_logic;
+       PC_SHF_Q_TST                            : out   std_logic_vector(7 downto 0);
+       PC_DF_EMPTY_TST                         : out   std_logic;
+       PC_DF_FULL_TST                          : out   std_logic;
+       PC_DF_WR_EN_TST                         : out   std_logic;
+       PC_DF_RD_EN_TST                         : out   std_logic;
+       PC_DF_Q_TST                                     : out   std_logic_vector(7 downto 0);
+       PC_ALL_CTR_TST                          : out   std_logic_vector(4 downto 0);
+       PC_SUB_CTR_TST                          : out   std_logic_vector(4 downto 0);
+       PC_BYTES_LOADED_TST                     : out   std_logic_vector(15 downto 0);
+       PC_SIZE_LEFT_TST                        : out   std_logic_vector(31 downto 0);
+       PC_SUB_SIZE_TO_SAVE_TST         : out   std_logic_vector(31 downto 0);
+       PC_SUB_SIZE_LOADED_TST          : out   std_logic_vector(31 downto 0);
+       PC_SUB_BYTES_LOADED_TST         : out   std_logic_vector(31 downto 0);
+       PC_QUEUE_SIZE_TST                       : out   std_logic_vector(31 downto 0);
+       PC_ACT_QUEUE_SIZE_TST           : out   std_logic_vector(31 downto 0);
+       -------------------------------------------------------------------------------------------
+       -------------------------------------------------------------------------------------------
+       -- FrameConstructor interface
+       FC_WR_EN_TST                            : out   std_logic;
+       FC_DATA_TST                                     : out   std_logic_vector(7 downto 0);
+       FC_H_READY_TST                          : out   std_logic;
+       FC_READY_TST                            : out   std_logic;
+       FC_IP_SIZE_TST                          : out   std_logic_vector(15 downto 0);
+       FC_UDP_SIZE_TST                         : out   std_logic_vector(15 downto 0);
+       FC_IDENT_TST                            : out   std_logic_vector(15 downto 0);
+       FC_FLAGS_OFFSET_TST                     : out   std_logic_vector(15 downto 0);
+       FC_SOD_TST                                      : out   std_logic;
+       FC_EOD_TST                                      : out   std_logic;
+       FC_BSM_CONSTR_TST                       : out   std_logic_vector(7 downto 0);
+       FC_BSM_TRANS_TST                        : out   std_logic_vector(3 downto 0);
+       -------------------------------------------------------------------------------------------
+       -------------------------------------------------------------------------------------------
+       -- FrameTransmitter interface
+       FT_DATA_TST                             : out   std_logic_vector(8 downto 0);
+       FT_TX_EMPTY_TST                         : out   std_logic;
+       FT_START_OF_PACKET_TST          : out   std_logic;
+       FT_BSM_INIT_TST                         : out   std_logic_vector(3 downto 0);
+       FT_BSM_MAC_TST                          : out   std_logic_vector(3 downto 0);
+       FT_BSM_TRANS_TST                        : out   std_logic_vector(3 downto 0);
+       -------------------------------------------------------------------------------------------
+       -------------------------------------------------------------------------------------------
+       -- MAC interface
+       MAC_HADDR_TST                           : out   std_logic_vector(7 downto 0);
+       MAC_HDATA_TST                           : out   std_logic_vector(7 downto 0);
+       MAC_HCS_TST                                     : out   std_logic;
+       MAC_HWRITE_TST                          : out   std_logic;
+       MAC_HREAD_TST                           : out   std_logic;
+       MAC_HREADY_TST                          : out   std_logic;
+       MAC_HDATA_EN_TST                        : out   std_logic;
+       MAC_FIFOAVAIL_TST                       : out   std_logic;
+       MAC_FIFOEOF_TST                         : out   std_logic;
+       MAC_FIFOEMPTY_TST                       : out   std_logic;
+       MAC_TX_READ_TST                         : out   std_logic;
+       MAC_TX_DONE_TST                         : out   std_logic;
+       -------------------------------------------------------------------------------------------
+       -------------------------------------------------------------------------------------------
+       -- pcs and serdes
+       PCS_AN_LP_ABILITY_TST           : out   std_logic_vector(15 downto 0);
+       PCS_AN_COMPLETE_TST                     : out   std_logic;
+       PCS_AN_PAGE_RX_TST                      : out   std_logic;
+       -------------------------------------------------------------------------------------------
+       -------------------------------------------------------------------------------------------
+       -- debug ports
+       ANALYZER_DEBUG_OUT                      : out   std_logic_vector(63 downto 0)
+);
+end entity trb_net16_gbe_buf;
+
+architecture trb_net16_gbe_buf of trb_net16_gbe_buf is
+
+-- Placer Directives
+attribute HGROUP : string;
+-- for whole architecture
+attribute HGROUP of trb_net16_gbe_buf : architecture is "GBE_BUF_group";
+
+-- Interface between IPU channel and packet constructor
+component trb_net16_ipu2gbe is
+port( 
+       CLK                                                     : in    std_logic;
+       RESET                                           : in    std_logic;
+       --Event information coming from CTS
+       CTS_NUMBER_IN                           : in    std_logic_vector (15 downto 0);
+       CTS_CODE_IN                                     : in    std_logic_vector (7  downto 0);
+       CTS_INFORMATION_IN                      : in    std_logic_vector (7  downto 0);
+       CTS_READOUT_TYPE_IN                     : in    std_logic_vector (3  downto 0);
+       CTS_START_READOUT_IN            : in    std_logic;
+       --Information sent to CTS
+       --status data, equipped with DHDR
+       CTS_DATA_OUT                            : out   std_logic_vector (31 downto 0);
+       CTS_DATAREADY_OUT                       : out   std_logic;
+       CTS_READOUT_FINISHED_OUT        : out   std_logic;      --no more data, end transfer, send TRM
+       CTS_READ_IN                                     : in    std_logic;
+       CTS_LENGTH_OUT                          : out   std_logic_vector (15 downto 0);
+       CTS_ERROR_PATTERN_OUT           : out   std_logic_vector (31 downto 0);
+       -- Data from Frontends
+       FEE_DATA_IN                                     : in    std_logic_vector (15 downto 0);
+       FEE_DATAREADY_IN                        : in    std_logic;
+       FEE_READ_OUT                            : out   std_logic;  --must be high when idle, otherwise you will never get a dataready
+       FEE_STATUS_BITS_IN                      : in    std_logic_vector (31 downto 0);
+       FEE_BUSY_IN                                     : in    std_logic;
+       -- slow control interface
+       START_CONFIG_OUT                        : out   std_logic; -- reconfigure MACs/IPs/ports/packet size
+       BANK_SELECT_OUT                         : out   std_logic_vector(3 downto 0); -- configuration page address
+       CONFIG_DONE_IN                          : in    std_logic; -- configuration finished
+       DATA_GBE_ENABLE_IN                      : in    std_logic; -- IPU data is forwarded to GbE
+       DATA_IPU_ENABLE_IN                      : in    std_logic; -- IPU data is forwarded to CTS / TRBnet
+       MULTI_EVT_ENABLE_IN                     : in    std_logic; -- enable multi event packets
+       MAX_MESSAGE_SIZE_IN                     : in    std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue  -- gk 08.04.10
+       -- PacketConstructor interface
+       PC_WR_EN_OUT                            : out   std_logic;
+       PC_DATA_OUT                                     : out   std_logic_vector (7 downto 0);
+       PC_READY_IN                                     : in    std_logic;
+       PC_SOS_OUT                                      : out   std_logic;
+       PC_EOD_OUT                                      : out   std_logic;
+       PC_SUB_SIZE_OUT                         : out   std_logic_vector(31 downto 0);
+       PC_TRIG_NR_OUT                          : out   std_logic_vector(31 downto 0);
+       PC_PADDING_OUT                          : out   std_logic;
+       -- Debug
+       BSM_SAVE_OUT                            : out   std_logic_vector(3 downto 0);
+       BSM_LOAD_OUT                            : out   std_logic_vector(3 downto 0);
+       DBG_CTS_CTR_OUT                         : out   std_logic_vector(2 downto 0);
+       DBG_REM_CTR_OUT                         : out   std_logic_vector(3 downto 0);
+       DBG_SF_WCNT_OUT                         : out   std_logic_vector(15 downto 0);
+       DBG_SF_RCNT_OUT                         : out   std_logic_vector(16 downto 0);
+       DBG_SF_DATA_OUT                         : out   std_logic_vector(15 downto 0);
+       DBG_SF_RD_EN_OUT                        : out   std_logic;
+       DBG_SF_WR_EN_OUT                        : out   std_logic;
+       DBG_SF_EMPTY_OUT                        : out   std_logic;
+       DBG_SF_AEMPTY_OUT                       : out   std_logic;
+       DBG_SF_FULL_OUT                         : out   std_logic;
+       DBG_SF_AFULL_OUT                        : out   std_logic;
+       DEBUG_OUT                                       : out   std_logic_vector(31 downto 0)   
+);
+end component;
+
+component ip_configurator is
+port( 
+       CLK                                                     : in    std_logic;
+       RESET                                           : in    std_logic;
+       -- configuration interface
+       START_CONFIG_IN                         : in    std_logic; -- start configuration run
+       BANK_SELECT_IN                          : in    std_logic_vector(3 downto 0); -- selects config bank 
+       CONFIG_DONE_OUT                         : out   std_logic; -- configuration run ended, new values can be used
+       MEM_ADDR_OUT                            : out   std_logic_vector(7 downto 0); -- address for
+       MEM_DATA_IN                                     : in    std_logic_vector(31 downto 0); -- data from IP memory
+       MEM_CLK_OUT                                     : out   std_logic; -- clock for BlockRAM
+       -- information for IP cores
+       DEST_MAC_OUT                            : out   std_logic_vector(47 downto 0); -- destination MAC address
+       DEST_IP_OUT                                     : out   std_logic_vector(31 downto 0); -- destination IP address
+       DEST_UDP_OUT                            : out   std_logic_vector(15 downto 0); -- destination port
+       SRC_MAC_OUT                                     : out   std_logic_vector(47 downto 0); -- source MAC address
+       SRC_IP_OUT                                      : out   std_logic_vector(31 downto 0); -- source IP address
+       SRC_UDP_OUT                                     : out   std_logic_vector(15 downto 0); -- source port
+       MTU_OUT                                         : out   std_logic_vector(15 downto 0); -- MTU size (max frame size)
+       -- Debug
+       DEBUG_OUT                                       : out   std_logic_vector(31 downto 0)
+);
+end component;
+
+-- PacketConstructor for UDP packet
+component trb_net16_gbe_packet_constr is
+port (
+       -- ports for user logic
+       RESET                                   : in    std_logic;
+       CLK                                             : in    std_logic;
+       PC_WR_EN_IN                             : in    std_logic;
+       PC_DATA_IN                              : in    std_logic_vector(7 downto 0);
+       PC_READY_OUT                    : out   std_logic;
+       PC_START_OF_SUB_IN              : in    std_logic;
+       PC_END_OF_DATA_IN               : in    std_logic;
+       -- queue and subevent layer headers
+       PC_SUB_SIZE_IN                  : in    std_logic_vector(31 downto 0);
+       PC_PADDING_IN                   : in std_logic;  -- gk 29.03.10
+       PC_DECODING_IN                  : in    std_logic_vector(31 downto 0);
+       PC_EVENT_ID_IN                  : in    std_logic_vector(31 downto 0);
+       PC_TRIG_NR_IN                   : in    std_logic_vector(31 downto 0);
+       PC_QUEUE_DEC_IN                 : in    std_logic_vector(31 downto 0);
+       PC_MAX_FRAME_SIZE_IN    : in    std_logic_vector(15 downto 0);
+       -- NEW PORTS
+       FC_WR_EN_OUT                    : out   std_logic;
+       FC_DATA_OUT                             : out   std_logic_vector(7 downto 0);
+       FC_H_READY_IN                   : in    std_logic;
+       FC_READY_IN                             : in    std_logic;
+       FC_IP_SIZE_OUT                  : out   std_logic_vector(15 downto 0);
+       FC_UDP_SIZE_OUT                 : out   std_logic_vector(15 downto 0);
+       FC_IDENT_OUT                    : out   std_logic_vector(15 downto 0);
+       FC_FLAGS_OFFSET_OUT             : out   std_logic_vector(15 downto 0);
+       FC_SOD_OUT                              : out   std_logic;
+       FC_EOD_OUT                              : out   std_logic;
+       -- debug ports
+       BSM_CONSTR_OUT                  : out   std_logic_vector(3 downto 0);
+       BSM_LOAD_OUT                    : out   std_logic_vector(3 downto 0);
+       BSM_SAVE_OUT                    : out   std_logic_vector(3 downto 0);
+    DBG_SHF_EMPTY                      : out   std_logic;
+    DBG_SHF_FULL                       : out   std_logic;
+       DBG_SHF_WR_EN                   : out   std_logic;
+       DBG_SHF_RD_EN                   : out   std_logic;
+       DBG_SHF_Q                               : out   std_logic_vector(7 downto 0);
+    DBG_DF_EMPTY                       : out   std_logic;
+    DBG_DF_FULL                                : out   std_logic;
+       DBG_DF_WR_EN                    : out   std_logic;
+       DBG_DF_RD_EN                    : out   std_logic;
+    DBG_DF_Q                           : out   std_logic_vector(7 downto 0);
+    DBG_ALL_CTR                                : out   std_logic_vector(4 downto 0);
+    DBG_SUB_CTR                                : out   std_logic_vector(4 downto 0);
+       DBG_MY_CTR              : out   std_logic_vector(1 downto 0);
+       DBG_BYTES_LOADED                : out   std_logic_vector(15 downto 0);
+       DBG_SIZE_LEFT                   : out   std_logic_vector(31 downto 0);
+       DBG_SUB_SIZE_TO_SAVE    : out   std_logic_vector(31 downto 0);
+       DBG_SUB_SIZE_LOADED             : out   std_logic_vector(31 downto 0);
+       DBG_SUB_BYTES_LOADED    : out   std_logic_vector(31 downto 0);
+       DBG_QUEUE_SIZE                  : out   std_logic_vector(31 downto 0);
+       DBG_ACT_QUEUE_SIZE              : out   std_logic_vector(31 downto 0);
+       DEBUG_OUT                               : out   std_logic_vector(31 downto 0)
+);
+end component;
+
+-- FrameConstructor for IP packets
+component trb_net16_gbe_frame_constr is
+port (
+       -- ports for user logic
+       CLK                                             : in    std_logic;
+       RESET                                   : in    std_logic;
+       --
+       WR_EN_IN                                : in    std_logic;
+       DATA_IN                                 : in    std_logic_vector(7 downto 0);
+       START_OF_DATA_IN                : in    std_logic;
+       END_OF_DATA_IN                  : in    std_logic;
+       IP_F_SIZE_IN                    : in    std_logic_vector(15 downto 0);
+       UDP_P_SIZE_IN                   : in    std_logic_vector(15 downto 0); -- needed for fragmentation
+       HEADERS_READY_OUT               : out   std_logic;
+       READY_OUT                               : out   std_logic;
+       DEST_MAC_ADDRESS_IN             : in    std_logic_vector(47 downto 0);
+       DEST_IP_ADDRESS_IN              : in    std_logic_vector(31 downto 0);
+       DEST_UDP_PORT_IN                : in    std_logic_vector(15 downto 0);
+       SRC_MAC_ADDRESS_IN              : in    std_logic_vector(47 downto 0);
+       SRC_IP_ADDRESS_IN               : in    std_logic_vector(31 downto 0);
+       SRC_UDP_PORT_IN                 : in    std_logic_vector(15 downto 0);
+       FRAME_TYPE_IN                   : in    std_logic_vector(15 downto 0);
+       IHL_VERSION_IN                  : in    std_logic_vector(7 downto 0);
+       TOS_IN                                  : in    std_logic_vector(7 downto 0);
+       IDENTIFICATION_IN               : in    std_logic_vector(15 downto 0);
+       FLAGS_OFFSET_IN                 : in    std_logic_vector(15 downto 0);
+       TTL_IN                                  : in    std_logic_vector(7 downto 0);
+       PROTOCOL_IN                             : in    std_logic_vector(7 downto 0);
+       -- ports for packetTransmitter
+       RD_CLK                                  : in    std_logic;
+       FT_DATA_OUT                     : out   std_logic_vector(8 downto 0);
+       FT_TX_EMPTY_OUT                 : out   std_logic;
+       FT_TX_RD_EN_IN                  : in    std_logic;
+       FT_START_OF_PACKET_OUT  : out   std_logic;
+       FT_TX_DONE_IN                   : in    std_logic;
+       -- debug ports
+       BSM_CONSTR_OUT                  : out   std_logic_vector(7 downto 0);
+       BSM_TRANS_OUT                   : out   std_logic_vector(3 downto 0);
+       DEBUG_OUT                               : out std_logic_vector(31 downto 0)
+);
+end component;
+
+component trb_net16_gbe_frame_trans is
+port (
+       CLK                                             : in    std_logic;
+       RESET                                   : in    std_logic;
+       TX_MAC_CLK                              : in    std_logic;
+       TX_EMPTY_IN                             : in    std_logic;
+       START_OF_PACKET_IN              : in    std_logic;
+       DATA_ENDFLAG_IN                 : in    std_logic; -- (8) is end flag, rest is only for TSMAC
+       -- NEW PORTS
+       HADDR_OUT                               : out   std_logic_vector(7 downto 0);
+       HDATA_OUT                               : out   std_logic_vector(7 downto 0);
+       HCS_OUT                                 : out   std_logic;
+       HWRITE_OUT                              : out   std_logic;
+       HREAD_OUT                               : out   std_logic;
+       HREADY_IN                               : in    std_logic;
+       HDATA_EN_IN                             : in    std_logic;
+       TX_FIFOAVAIL_OUT                : out   std_logic;
+       TX_FIFOEOF_OUT                  : out   std_logic;
+       TX_FIFOEMPTY_OUT                : out   std_logic;
+       TX_DONE_IN                              : in    std_logic;
+       -- Debug
+       BSM_INIT_OUT                    : out   std_logic_vector(3 downto 0);
+       BSM_MAC_OUT                             : out   std_logic_vector(3 downto 0);
+       BSM_TRANS_OUT                   : out   std_logic_vector(3 downto 0);
+       DBG_RD_DONE_OUT                 : out   std_logic;
+       DBG_INIT_DONE_OUT               : out   std_logic;
+       DBG_ENABLED_OUT                 : out   std_logic;
+       DEBUG_OUT                               : out   std_logic_vector(31 downto 0)
+);
+end component;
+
+component tsmac3
+port(
+       --------------- clock and reset port declarations ------------------
+       hclk                                    : in    std_logic;
+       txmac_clk                               : in    std_logic;
+       rxmac_clk                               : in    std_logic;
+       reset_n                                 : in    std_logic;
+       txmac_clk_en                    : in    std_logic;
+       rxmac_clk_en                    : in    std_logic;
+       ------------------- Input signals to the GMII ----------------
+       rxd                                             : in    std_logic_vector(7 downto 0);
+       rx_dv                                   : in    std_logic;
+       rx_er                                   : in    std_logic;
+       col                                             : in    std_logic;
+       crs                                             : in    std_logic;
+       -------------------- Input signals to the CPU I/F -------------------
+       haddr                                   : in    std_logic_vector(7 downto 0);
+       hdatain                                 : in    std_logic_vector(7 downto 0);
+       hcs_n                                   : in    std_logic;
+       hwrite_n                                : in    std_logic;
+       hread_n                                 : in    std_logic;
+       ---------------- Input signals to the Tx MAC FIFO I/F ---------------
+       tx_fifodata                             : in    std_logic_vector(7 downto 0);
+       tx_fifoavail                    : in    std_logic;
+       tx_fifoeof                              : in    std_logic;
+       tx_fifoempty                    : in    std_logic;
+       tx_sndpaustim                   : in    std_logic_vector(15 downto 0);
+       tx_sndpausreq                   : in    std_logic;
+       tx_fifoctrl                             : in    std_logic;
+       ---------------- Input signals to the Rx MAC FIFO I/F --------------- 
+       rx_fifo_full                    : in    std_logic;
+       ignore_pkt                              : in    std_logic;
+       -------------------- Output signals from the GMII -----------------------
+       txd                                             : out   std_logic_vector(7 downto 0);  
+       tx_en                                   : out   std_logic;
+       tx_er                                   : out   std_logic;
+       -------------------- Output signals from the CPU I/F -------------------
+       hdataout                                : out   std_logic_vector(7 downto 0);
+       hdataout_en_n                   : out   std_logic;
+       hready_n                                : out   std_logic;
+       cpu_if_gbit_en                  : out   std_logic;
+       ---------------- Output signals from the Tx MAC FIFO I/F --------------- 
+       tx_macread                              : out   std_logic;
+       tx_discfrm                              : out   std_logic;
+       tx_staten                               : out   std_logic;
+       tx_done                                 : out   std_logic;
+       tx_statvec                              : out   std_logic_vector(30 downto 0);
+       ---------------- Output signals from the Rx MAC FIFO I/F ---------------   
+       rx_fifo_error                   : out   std_logic;
+       rx_stat_vector                  : out   std_logic_vector(31 downto 0);
+       rx_dbout                                : out   std_logic_vector(7 downto 0);
+       rx_write                                : out   std_logic;
+       rx_stat_en                              : out   std_logic;
+       rx_eof                                  : out   std_logic;
+       rx_error                                : out   std_logic
+);
+end component; 
+
+component mb_mac_sim is
+port (
+       --------------------------------------------------------------------------
+       --------------- clock, reset, clock enable -------------------------------
+       HCLK                            : in    std_logic;
+       TX_MAC_CLK                      : in    std_logic;
+       RX_MAC_CLK                      : in    std_logic;
+       RESET_N                         : in    std_logic;
+       TXMAC_CLK_EN            : in    std_logic;
+       RXMAC_CLK_EN            : in    std_logic;
+       --------------------------------------------------------------------------
+       --------------- SGMII receive interface ----------------------------------
+       RXD                                     : in    std_logic_vector(7 downto 0);
+       RX_DV                           : in    std_logic;
+       RX_ER                           : in    std_logic;
+       COL                                     : in    std_logic;
+       CRS                                     : in    std_logic;
+       --------------------------------------------------------------------------
+       --------------- SGMII transmit interface ---------------------------------
+       TXD                                     : out   std_logic_vector(7 downto 0);
+       TX_EN                           : out   std_logic;
+       TX_ER                           : out   std_logic;
+       --------------------------------------------------------------------------
+       --------------- CPU configuration interface ------------------------------
+       HADDR                           : in    std_logic_vector(7 downto 0);
+       HDATAIN                         : in    std_logic_vector(7 downto 0);
+       HCS_N                           : in    std_logic;
+       HWRITE_N                        : in    std_logic;
+       HREAD_N                         : in    std_logic;
+       HDATAOUT                        : out   std_logic_vector(7 downto 0);
+       HDATAOUT_EN_N           : out   std_logic;
+       HREADY_N                        : out   std_logic;
+       CPU_IF_GBIT_EN          : out   std_logic;
+       --------------------------------------------------------------------------
+       --------------- Transmit FIFO interface ----------------------------------
+       TX_FIFODATA                     : in    std_logic_vector(7 downto 0);
+       TX_FIFOAVAIL            : in    std_logic;
+       TX_FIFOEOF                      : in    std_logic;
+       TX_FIFOEMPTY            : in    std_logic;
+       TX_MACREAD                      : out   std_logic;
+       TX_DONE                         : out   std_logic;
+       TX_SNDPAUSTIM           : in    std_logic_vector(15 downto 0);
+       TX_SNDPAUSREQ           : in    std_logic;
+       TX_FIFOCTRL                     : in    std_logic;
+       TX_DISCFRM                      : out   std_logic;
+       TX_STATEN                       : out   std_logic;
+       TX_STATVEC                      : out   std_logic_vector(30 downto 0);
+       --------------------------------------------------------------------------
+       --------------- Receive FIFO interface -----------------------------------
+       RX_DBOUT                        : out   std_logic_vector(7 downto 0);
+       RX_FIFO_FULL            : in    std_logic;
+       IGNORE_PKT                      : in    std_logic;      
+       RX_FIFO_ERROR           : out   std_logic;
+       RX_STAT_VECTOR          : out   std_logic_vector(31 downto 0);
+       RX_STAT_EN                      : out   std_logic;
+       RX_WRITE                        : out   std_logic;
+       RX_EOF                          : out   std_logic;
+       RX_ERROR                        : out   std_logic
+);
+end component;
+
+component trb_net16_med_ecp_sfp_gbe_8b is
+port(
+       RESET                                   : in    std_logic;
+       GSR_N                                   : in    std_logic;
+       CLK_125_OUT                             : out   std_logic;
+       CLK_RX_OUT                              : out   std_logic;
+       CLK_TX_OUT                              : out   std_logic;
+       --SGMII connection to frame transmitter (tsmac)
+       FT_TX_CLK_EN_OUT                : out   std_logic;
+       FT_RX_CLK_EN_OUT                : out   std_logic;
+       FT_COL_OUT                              : out   std_logic;
+       FT_CRS_OUT                              : out   std_logic;
+       FT_TXD_IN                               : in    std_logic_vector(7 downto 0);
+       FT_TX_EN_IN                             : in    std_logic;
+       FT_TX_ER_IN                             : in    std_logic;
+       --SFP Connection
+       SD_RXD_P_IN                             : in    std_logic;
+       SD_RXD_N_IN                             : in    std_logic;
+       SD_TXD_P_OUT                    : out   std_logic;
+       SD_TXD_N_OUT                    : out   std_logic;
+       SD_REFCLK_P_IN                  : in    std_logic;
+       SD_REFCLK_N_IN                  : in    std_logic;
+       SD_PRSNT_N_IN                   : in    std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted)
+       SD_LOS_IN                               : in    std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)
+       SD_TXDIS_OUT                    : out   std_logic; -- SFP disable
+       -- Autonegotiation stuff
+       MR_RESET_IN                             : in    std_logic;
+       MR_MODE_IN                              : in    std_logic;
+       MR_ADV_ABILITY_IN               : in    std_logic_vector(15 downto 0);
+       MR_AN_LP_ABILITY_OUT    : out   std_logic_vector(15 downto 0);
+       MR_AN_PAGE_RX_OUT               : out   std_logic;
+       MR_AN_COMPLETE_OUT              : out   std_logic; 
+       MR_AN_ENABLE_IN                 : in    std_logic;
+       MR_RESTART_AN_IN                : in    std_logic;
+       -- Status and control port
+       STAT_OP                                 : out   std_logic_vector (15 downto 0);
+       CTRL_OP                                 : in    std_logic_vector (15 downto 0);
+       STAT_DEBUG                              : out   std_logic_vector (63 downto 0);
+       CTRL_DEBUG                              : in    std_logic_vector (63 downto 0)
+);
+end component;
+
+component slv_mac_memory is
+port( 
+       CLK             : in    std_logic;
+       RESET           : in    std_logic;
+       BUSY_IN         : in    std_logic;
+       -- Slave bus
+       SLV_ADDR_IN     : in    std_logic_vector(7 downto 0);
+       SLV_READ_IN     : in    std_logic;
+       SLV_WRITE_IN    : in    std_logic;
+       SLV_BUSY_OUT    : out   std_logic;
+       SLV_ACK_OUT     : out   std_logic;
+       SLV_DATA_IN     : in    std_logic_vector(31 downto 0);
+       SLV_DATA_OUT    : out   std_logic_vector(31 downto 0);
+       -- I/O to the backend
+       MEM_CLK_IN      : in    std_logic;
+       MEM_ADDR_IN     : in    std_logic_vector(7 downto 0);
+       MEM_DATA_OUT    : out   std_logic_vector(31 downto 0);
+       -- Status lines
+        STAT           : out   std_logic_vector(31 downto 0) -- DEBUG
+);
+end component;
+
+
+signal ig_bsm_save                             : std_logic_vector(3 downto 0);
+signal ig_bsm_load                             : std_logic_vector(3 downto 0);
+signal ig_cts_ctr                              : std_logic_vector(2 downto 0);
+signal ig_rem_ctr                              : std_logic_vector(3 downto 0);
+signal ig_debug                                        : std_logic_vector(31 downto 0);
+signal ig_data                                 : std_logic_vector(15 downto 0);
+signal ig_wcnt                                 : std_logic_vector(15 downto 0);
+signal ig_rcnt                                 : std_logic_vector(16 downto 0);
+signal ig_rd_en                                        : std_logic;
+signal ig_wr_en                                        : std_logic;
+signal ig_empty                                        : std_logic;
+signal ig_aempty                               : std_logic;
+signal ig_full                                 : std_logic;
+signal ig_afull                                        : std_logic;
+
+signal pc_wr_en                                        : std_logic;
+signal pc_data                                 : std_logic_vector(7 downto 0);
+signal pc_eod                                  : std_logic;
+signal pc_sos                                  : std_logic;
+signal pc_ready                                        : std_logic;
+signal pc_padding                              : std_logic;
+signal pc_decoding                             : std_logic_vector(31 downto 0);
+signal pc_event_id                             : std_logic_vector(31 downto 0);
+signal pc_queue_dec                            : std_logic_vector(31 downto 0);
+signal pc_max_frame_size        : std_logic_vector(15 downto 0);
+signal pc_bsm_constr                   : std_logic_vector(3 downto 0);
+signal pc_bsm_load                             : std_logic_vector(3 downto 0);
+signal pc_bsm_save                             : std_logic_vector(3 downto 0);
+signal pc_shf_empty                            : std_logic;
+signal pc_shf_full                             : std_logic;
+signal pc_shf_wr_en                            : std_logic;
+signal pc_shf_rd_en                            : std_logic;
+signal pc_shf_q                                        : std_logic_vector(7 downto 0);
+signal pc_df_empty                             : std_logic;
+signal pc_df_full                              : std_logic;
+signal pc_df_wr_en                             : std_logic;
+signal pc_df_rd_en                             : std_logic;
+signal pc_df_q                                 : std_logic_vector(7 downto 0);
+signal pc_all_ctr                              : std_logic_vector(4 downto 0);
+signal pc_sub_ctr                              : std_logic_vector(4 downto 0);
+signal pc_bytes_loaded                 : std_logic_vector(15 downto 0);
+signal pc_size_left                            : std_logic_vector(31 downto 0);
+signal pc_sub_size_to_save             : std_logic_vector(31 downto 0);
+signal pc_sub_size_loaded              : std_logic_vector(31 downto 0);
+signal pc_sub_bytes_loaded             : std_logic_vector(31 downto 0);
+signal pc_queue_size                   : std_logic_vector(31 downto 0);
+signal pc_act_queue_size               : std_logic_vector(31 downto 0);
+
+signal fee_read                                        : std_logic;
+signal cts_readout_finished            : std_logic;
+signal cts_dataready                   : std_logic;
+signal cts_length                              : std_logic_vector(15 downto 0);
+signal cts_data                                        : std_logic_vector(31 downto 0); -- DHDR of rest packet
+signal cts_error_pattern               : std_logic_vector(31 downto 0);
+
+signal pc_sub_size                             : std_logic_vector(31 downto 0);
+signal pc_trig_nr                              : std_logic_vector(31 downto 0);
+
+signal fc_wr_en                                        : std_logic;
+signal fc_data                                 : std_logic_vector(7 downto 0);
+signal fc_ip_size                              : std_logic_vector(15 downto 0);
+signal fc_udp_size                             : std_logic_vector(15 downto 0);
+signal fc_ident                                        : std_logic_vector(15 downto 0);
+signal fc_flags_offset                 : std_logic_vector(15 downto 0);
+signal fc_sod                                  : std_logic;
+signal fc_eod                                  : std_logic;
+signal fc_h_ready                              : std_logic;
+signal fc_ready                                        : std_logic;
+signal fc_dest_mac                             : std_logic_vector(47 downto 0);
+signal fc_dest_ip                              : std_logic_vector(31 downto 0);
+signal fc_dest_udp                             : std_logic_vector(15 downto 0);
+signal fc_src_mac                              : std_logic_vector(47 downto 0);
+signal fc_src_ip                               : std_logic_vector(31 downto 0);
+signal fc_src_udp                              : std_logic_vector(15 downto 0);
+signal fc_type                                 : std_logic_vector(15 downto 0);
+signal fc_ihl_version                  : std_logic_vector(7 downto 0);
+signal fc_tos                                  : std_logic_vector(7 downto 0);
+signal fc_ttl                                  : std_logic_vector(7 downto 0);
+signal fc_protocol                             : std_logic_vector(7 downto 0);
+signal fc_bsm_constr                   : std_logic_vector(7 downto 0);
+signal fc_bsm_trans                            : std_logic_vector(3 downto 0);
+
+signal ft_data                                 : std_logic_vector(8 downto 0);
+signal ft_tx_empty                             : std_logic;
+signal ft_start_of_packet              : std_logic;
+signal ft_bsm_init                             : std_logic_vector(3 downto 0);
+signal ft_bsm_mac                              : std_logic_vector(3 downto 0);
+signal ft_bsm_trans                            : std_logic_vector(3 downto 0);
+
+signal mac_haddr                               : std_logic_vector(7 downto 0);
+signal mac_hdataout                            : std_logic_vector(7 downto 0);
+signal mac_hcs                                 : std_logic;
+signal mac_hwrite                              : std_logic;
+signal mac_hread                               : std_logic;
+signal mac_fifoavail                   : std_logic;
+signal mac_fifoempty                   : std_logic;
+signal mac_fifoeof                             : std_logic;
+signal mac_hready                              : std_logic;
+signal mac_hdata_en                            : std_logic;
+signal mac_tx_done                             : std_logic;
+signal mac_tx_read                             : std_logic;
+
+signal serdes_clk_125                  : std_logic;
+signal mac_tx_clk_en                   : std_logic;
+signal mac_rx_clk_en                   : std_logic;
+signal mac_col                                 : std_logic;
+signal mac_crs                                 : std_logic;
+signal pcs_txd                                 : std_logic_vector(7 downto 0);
+signal pcs_tx_en                               : std_logic;
+signal pcs_tx_er                               : std_logic;
+signal pcs_an_lp_ability               : std_logic_vector(15 downto 0);
+signal pcs_an_complete                 : std_logic;
+signal pcs_an_page_rx                  : std_logic;
+
+signal pcs_stat_debug                  : std_logic_vector(63 downto 0); 
+
+signal stage_stat_regs                 : std_logic_vector(31 downto 0);
+signal stage_ctrl_regs                 : std_logic_vector(31 downto 0);
+
+signal analyzer_debug                  : std_logic_vector(63 downto 0);
+
+signal ip_cfg_start                    : std_logic;
+signal ip_cfg_bank                     : std_logic_vector(3 downto 0);
+signal ip_cfg_done                     : std_logic;
+
+signal ip_cfg_mem_addr                 : std_logic_vector(7 downto 0);
+signal ip_cfg_mem_data                 : std_logic_vector(31 downto 0);
+signal ip_cfg_mem_clk                  : std_logic;
+
+begin
+
+stage_ctrl_regs <= STAGE_CTRL_REGS_IN;
+
+-- PacketConstructor fixed magic values
+pc_decoding    <= x"00020001"; -- !!!! swap it!!!!
+pc_event_id    <= x"000000ca"; -- !!!! swap it!!!!
+pc_queue_dec   <= x"00030062"; -- !!!! swap it!!!!
+-- FrameConstructor fixed magic values
+fc_type           <= x"0008";
+fc_ihl_version    <= x"45";
+fc_tos            <= x"10";
+fc_ttl            <= x"ff";
+fc_protocol       <= x"11";
+
+-- IP configurator: allows IP config to change for each event builder
+THE_IP_CONFIGURATOR: ip_configurator
+port map( 
+       CLK                                                     => CLK,
+       RESET                                           => RESET,
+       -- configuration interface
+       START_CONFIG_IN                         => ip_cfg_start, --IP_CFG_START_IN, -- new  -- gk 7.03.10
+       BANK_SELECT_IN                          => ip_cfg_bank, --IP_CFG_BANK_SEL_IN, -- new  -- gk 27.03.10
+       CONFIG_DONE_OUT                         => ip_cfg_done, --IP_CFG_DONE_OUT, -- new  -- gk 27.03.10
+       MEM_ADDR_OUT                            => ip_cfg_mem_addr, --IP_CFG_MEM_ADDR_OUT, -- new  -- gk 27.03.10
+       MEM_DATA_IN                             => ip_cfg_mem_data, --IP_CFG_MEM_DATA_IN, -- new  -- gk 27.03.10
+       MEM_CLK_OUT                             => ip_cfg_mem_clk, --IP_CFG_MEM_CLK_OUT, -- new  -- gk 27.03.10
+       -- information for IP cores
+       DEST_MAC_OUT                            => fc_dest_mac,
+       DEST_IP_OUT                             => fc_dest_ip,
+       DEST_UDP_OUT                            => fc_dest_udp,
+       SRC_MAC_OUT                                     => fc_src_mac,
+       SRC_IP_OUT                                      => fc_src_ip,
+       SRC_UDP_OUT                                     => fc_src_udp,
+       MTU_OUT                                         => pc_max_frame_size,
+       -- Debug
+       DEBUG_OUT                                       => open
+);
+
+-- gk 27.03.01
+MB_IP_CONFIG: slv_mac_memory
+port map( 
+       CLK             => CLK, -- clk_100,
+       RESET           => RESET, --reset_i,
+       BUSY_IN         => '0',
+       -- Slave bus
+       SLV_ADDR_IN     => SLV_ADDR_IN, --x"00", --mb_ip_mem_addr(7 downto 0),
+       SLV_READ_IN     => SLV_READ_IN, --'0', --mb_ip_mem_read,
+       SLV_WRITE_IN    => SLV_WRITE_IN, --mb_ip_mem_write,
+       SLV_BUSY_OUT    => SLV_BUSY_OUT,
+       SLV_ACK_OUT     => SLV_ACK_OUT, --mb_ip_mem_ack,
+       SLV_DATA_IN     => SLV_DATA_IN, --mb_ip_mem_data_wr,
+       SLV_DATA_OUT    => SLV_DATA_OUT, --mb_ip_mem_data_rd,
+       -- I/O to the backend
+       MEM_CLK_IN      => ip_cfg_mem_clk,
+       MEM_ADDR_IN     => ip_cfg_mem_addr,
+       MEM_DATA_OUT    => ip_cfg_mem_data,
+       -- Status lines
+       STAT            => open
+);
+
+
+-- First stage: get data from IPU channel, buffer it and terminate the IPU transmission to CTS
+THE_IPU_INTERFACE: trb_net16_ipu2gbe
+port map( 
+       CLK                                                     => CLK,
+       RESET                                           => RESET,
+       --Event information coming from CTS
+       CTS_NUMBER_IN                           => CTS_NUMBER_IN,
+       CTS_CODE_IN                                     => CTS_CODE_IN,
+       CTS_INFORMATION_IN                      => CTS_INFORMATION_IN,
+       CTS_READOUT_TYPE_IN                     => CTS_READOUT_TYPE_IN,
+       CTS_START_READOUT_IN            => CTS_START_READOUT_IN,
+       --Information sent to CTS
+       --status data, equipped with DHDR
+       CTS_DATA_OUT                            => cts_data,
+       CTS_DATAREADY_OUT                       => cts_dataready,
+       CTS_READOUT_FINISHED_OUT        => cts_readout_finished,
+       CTS_READ_IN                                     => CTS_READ_IN,
+       CTS_LENGTH_OUT                          => cts_length,
+       CTS_ERROR_PATTERN_OUT           => cts_error_pattern,
+       -- Data from Frontends
+       FEE_DATA_IN                                     => FEE_DATA_IN,
+       FEE_DATAREADY_IN                        => FEE_DATAREADY_IN,
+       FEE_READ_OUT                            => fee_read,
+       FEE_STATUS_BITS_IN                      => FEE_STATUS_BITS_IN,
+       FEE_BUSY_IN                                     => FEE_BUSY_IN,
+       -- slow control interface
+       START_CONFIG_OUT                        => ip_cfg_start, --open, --: out        std_logic; -- reconfigure MACs/IPs/ports/packet size  -- gk 27.03.10
+       BANK_SELECT_OUT                         => ip_cfg_bank, --open, --: out std_logic_vector(3 downto 0); -- configuration page address -- gk 27.03.10
+       CONFIG_DONE_IN                          => ip_cfg_done, --'1', --: in   std_logic; -- configuration finished -- gk 27.03.10
+       DATA_GBE_ENABLE_IN                      => '1', --: in  std_logic; -- IPU data is forwarded to GbE
+       DATA_IPU_ENABLE_IN                      => '0', --: in  std_logic; -- IPU data is forwarded to CTS / TRBnet
+       MULTI_EVT_ENABLE_IN                     => '0', --: in  std_logic; -- enable multi event packets
+       MAX_MESSAGE_SIZE_IN                     => x"0000_1000",  -- gk 08.04.10  -- temporarily fixed here, to be set by slow ctrl
+       -- PacketConstructor interface
+       PC_WR_EN_OUT                            => pc_wr_en,
+       PC_DATA_OUT                                     => pc_data,
+       PC_READY_IN                                     => pc_ready,
+       PC_SOS_OUT                                      => pc_sos,
+       PC_EOD_OUT                                      => pc_eod,
+       PC_SUB_SIZE_OUT                         => pc_sub_size,
+       PC_TRIG_NR_OUT                          => pc_trig_nr,
+       PC_PADDING_OUT                          => pc_padding,
+       -- Debug
+       BSM_SAVE_OUT                            => ig_bsm_save,
+       BSM_LOAD_OUT                            => ig_bsm_load,
+       DBG_CTS_CTR_OUT                         => ig_cts_ctr,
+       DBG_REM_CTR_OUT                         => ig_rem_ctr,
+       DBG_SF_WCNT_OUT                         => ig_wcnt,
+       DBG_SF_RCNT_OUT                         => ig_rcnt,
+    DBG_SF_DATA_OUT                            => ig_data, 
+    DBG_SF_RD_EN_OUT                   => ig_rd_en,
+       DBG_SF_WR_EN_OUT                        => ig_wr_en,
+       DBG_SF_EMPTY_OUT                        => ig_empty,
+       DBG_SF_AEMPTY_OUT                       => ig_aempty,
+       DBG_SF_FULL_OUT                         => ig_full,
+       DBG_SF_AFULL_OUT                        => ig_afull,
+       DEBUG_OUT                                       => ig_debug
+);      
+
+-- Second stage: Packet constructor
+PACKET_CONSTRUCTOR : trb_net16_gbe_packet_constr
+port map( 
+       -- ports for user logic
+       RESET                                   => RESET,
+       CLK                                             => CLK,
+       PC_WR_EN_IN                             => pc_wr_en,
+       PC_DATA_IN                              => pc_data,
+       PC_READY_OUT                    => pc_ready,
+       PC_START_OF_SUB_IN              => pc_sos,
+       PC_END_OF_DATA_IN               => pc_eod,
+       -- queue and subevent layer headers
+       PC_SUB_SIZE_IN                  => pc_sub_size,
+       PC_PADDING_IN                   => pc_padding, -- gk 29.03.10
+       PC_DECODING_IN                  => pc_decoding,
+       PC_EVENT_ID_IN                  => pc_event_id,
+       PC_TRIG_NR_IN                   => pc_trig_nr,
+       PC_QUEUE_DEC_IN                 => pc_queue_dec,
+       PC_MAX_FRAME_SIZE_IN    => pc_max_frame_size,
+       -- NEW PORTS
+       FC_WR_EN_OUT                    => fc_wr_en,
+       FC_DATA_OUT                             => fc_data,
+       FC_H_READY_IN                   => fc_h_ready,
+       FC_READY_IN                             => fc_ready,
+       FC_IP_SIZE_OUT                  => fc_ip_size,
+       FC_UDP_SIZE_OUT                 => fc_udp_size,
+       FC_IDENT_OUT                    => fc_ident,
+       FC_FLAGS_OFFSET_OUT             => fc_flags_offset,
+       FC_SOD_OUT                              => fc_sod,
+       FC_EOD_OUT                              => fc_eod,
+       -- debug ports
+       BSM_CONSTR_OUT                  => pc_bsm_constr,
+       BSM_LOAD_OUT                    => pc_bsm_load,
+       BSM_SAVE_OUT                    => pc_bsm_save,
+       DBG_SHF_EMPTY                   => pc_shf_empty,
+       DBG_SHF_FULL                    => pc_shf_full,
+       DBG_SHF_WR_EN                   => pc_shf_wr_en,
+       DBG_SHF_RD_EN                   => pc_shf_rd_en,
+       DBG_SHF_Q                               => pc_shf_q,
+       DBG_DF_EMPTY                    => pc_df_empty,
+       DBG_DF_FULL                             => pc_df_full,
+       DBG_DF_WR_EN                    => pc_df_wr_en,
+       DBG_DF_RD_EN                    => pc_df_rd_en,
+    DBG_DF_Q                           => pc_df_q,
+    DBG_ALL_CTR                                => pc_all_ctr,
+       DBG_SUB_CTR                             => pc_sub_ctr,
+       DBG_MY_CTR              => open,
+       DBG_BYTES_LOADED                => pc_bytes_loaded,
+       DBG_SIZE_LEFT                   => pc_size_left,
+       DBG_SUB_SIZE_TO_SAVE    => pc_sub_size_to_save,
+       DBG_SUB_SIZE_LOADED             => pc_sub_size_loaded,
+       DBG_SUB_BYTES_LOADED    => pc_sub_bytes_loaded,
+       DBG_QUEUE_SIZE                  => pc_queue_size,
+       DBG_ACT_QUEUE_SIZE              => pc_act_queue_size,
+       DEBUG_OUT                               => open
+);
+          
+-- Third stage: Frame Constructor
+FRAME_CONSTRUCTOR: trb_net16_gbe_frame_constr
+port map( 
+       -- ports for user logic
+       RESET                                   => RESET,
+       CLK                                             => CLK,
+       --
+       WR_EN_IN                                => fc_wr_en,
+       DATA_IN                                 => fc_data,
+       START_OF_DATA_IN                => fc_sod,
+       END_OF_DATA_IN                  => fc_eod,
+       IP_F_SIZE_IN                    => fc_ip_size,
+       UDP_P_SIZE_IN                   => fc_udp_size,
+       HEADERS_READY_OUT               => fc_h_ready,
+       READY_OUT                               => fc_ready,
+       DEST_MAC_ADDRESS_IN             => fc_dest_mac,
+       DEST_IP_ADDRESS_IN              => fc_dest_ip,
+       DEST_UDP_PORT_IN                => fc_dest_udp,
+       SRC_MAC_ADDRESS_IN              => fc_src_mac,
+       SRC_IP_ADDRESS_IN               => fc_src_ip,
+       SRC_UDP_PORT_IN                 => fc_src_udp,
+       FRAME_TYPE_IN                   => fc_type,
+       IHL_VERSION_IN                  => fc_ihl_version,
+       TOS_IN                                  => fc_tos,
+       IDENTIFICATION_IN               => fc_ident,
+       FLAGS_OFFSET_IN                 => fc_flags_offset,
+       TTL_IN                                  => fc_ttl,
+       PROTOCOL_IN                             => fc_protocol,
+       -- ports for packetTransmitter
+       RD_CLK                                  => serdes_clk_125,
+       FT_DATA_OUT                     => ft_data,
+       FT_TX_EMPTY_OUT                 => ft_tx_empty,
+       FT_TX_RD_EN_IN                  => mac_tx_read,
+       FT_START_OF_PACKET_OUT  => ft_start_of_packet,
+       FT_TX_DONE_IN                   => mac_tx_done,
+       -- debug ports
+       BSM_CONSTR_OUT                  => fc_bsm_constr,
+       BSM_TRANS_OUT                   => fc_bsm_trans,
+       DEBUG_OUT                               => open
+);        
+          
+FRAME_TRANSMITTER: trb_net16_gbe_frame_trans
+port map( 
+       CLK                                             => CLK,
+       RESET                                   => RESET,
+       TX_MAC_CLK                              => serdes_clk_125,
+       TX_EMPTY_IN                             => ft_tx_empty,
+       START_OF_PACKET_IN              => ft_start_of_packet,
+       DATA_ENDFLAG_IN                 => ft_data(8),
+       -- MAC interface
+       HADDR_OUT                               => mac_haddr,
+       HDATA_OUT                               => mac_hdataout,
+       HCS_OUT                                 => mac_hcs,
+       HWRITE_OUT                              => mac_hwrite,
+       HREAD_OUT                               => mac_hread,
+       HREADY_IN                               => mac_hready,
+       HDATA_EN_IN                             => mac_hdata_en,
+       TX_FIFOAVAIL_OUT                => mac_fifoavail,
+       TX_FIFOEOF_OUT                  => mac_fifoeof,
+       TX_FIFOEMPTY_OUT                => mac_fifoempty,
+       TX_DONE_IN                              => mac_tx_done,
+       -- Debug
+       BSM_INIT_OUT                    => ft_bsm_init,
+       BSM_MAC_OUT                             => ft_bsm_mac,
+       BSM_TRANS_OUT                   => ft_bsm_trans,
+       DBG_RD_DONE_OUT                 => open,
+       DBG_INIT_DONE_OUT               => open,
+       DBG_ENABLED_OUT                 => open,
+       DEBUG_OUT                               => open
+);        
+
+-- in case of real hardware, we use the IP cores for MAC and PHY, and also put a SerDes in
+imp_gen: if (DO_SIMULATION = 0) generate
+       --------------------------------------------------------------------------------------------
+       --------------------------------------------------------------------------------------------
+       -- Implementation
+       --------------------------------------------------------------------------------------------
+       --------------------------------------------------------------------------------------------
+       
+       -- MAC part
+       MAC: tsmac3
+       port map(
+       ----------------- clock and reset port declarations ------------------
+               hclk                            => CLK,
+               txmac_clk                       => serdes_clk_125,
+               rxmac_clk                       => serdes_clk_125,
+               reset_n                         => GSR_N,
+               txmac_clk_en            => mac_tx_clk_en,
+               rxmac_clk_en            => mac_rx_clk_en,
+       ------------------- Input signals to the GMII ----------------  NOT USED
+               rxd                                     => x"00",
+               rx_dv                           => '0',
+               rx_er                           => '0',
+               col                                     => mac_col,
+               crs                                     => mac_crs,
+       -------------------- Input signals to the CPU I/F -------------------
+               haddr                           => mac_haddr,
+               hdatain                         => mac_hdataout,
+               hcs_n                           => mac_hcs,
+               hwrite_n                        => mac_hwrite,
+               hread_n                         => mac_hread,
+       ---------------- Input signals to the Tx MAC FIFO I/F ---------------
+               tx_fifodata                     => ft_data(7 downto 0),
+               tx_fifoavail            => mac_fifoavail,
+               tx_fifoeof                      => mac_fifoeof,
+               tx_fifoempty            => mac_fifoempty,
+               tx_sndpaustim           => x"0000",
+               tx_sndpausreq           => '0',
+               tx_fifoctrl                     => '0',  -- always data frame
+       ---------------- Input signals to the Rx MAC FIFO I/F --------------- 
+               rx_fifo_full            => '0',
+               ignore_pkt                      => '0',
+       ---------------- Output signals from the GMII -----------------------
+               txd                                     => pcs_txd,
+               tx_en                           => pcs_tx_en,
+               tx_er                           => pcs_tx_er,
+       ----------------- Output signals from the CPU I/F -------------------
+               hdataout                        => open,
+               hdataout_en_n           => mac_hdata_en,
+               hready_n                        => mac_hready,
+               cpu_if_gbit_en          => open,
+       ------------- Output signals from the Tx MAC FIFO I/F --------------- 
+               tx_macread                      => mac_tx_read,
+               tx_discfrm                      => open,
+               tx_staten                       => open,
+               tx_statvec                      => open,
+               tx_done                         => mac_tx_done,
+       ------------- Output signals from the Rx MAC FIFO I/F ---------------   
+               rx_fifo_error           => open,
+               rx_stat_vector          => open,
+               rx_dbout                        => open,
+               rx_write                        => open,
+               rx_stat_en                      => open,
+               rx_eof                          => open,
+               rx_error                        => open
+       );
+
+       -- PHY part
+       PCS_SERDES : trb_net16_med_ecp_sfp_gbe_8b
+       port map( RESET                                 => RESET,
+                         GSR_N                                 => GSR_N,
+                         CLK_125_OUT                   => serdes_clk_125,
+                         CLK_RX_OUT                    => open,
+                         CLK_TX_OUT                    => open,
+                         FT_TX_CLK_EN_OUT              => mac_tx_clk_en,
+                         FT_RX_CLK_EN_OUT              => mac_rx_clk_en,
+                         --connection to frame transmitter (tsmac)
+                         FT_COL_OUT                    => mac_col,
+                         FT_CRS_OUT                    => mac_crs,
+                         FT_TXD_IN                             => pcs_txd,
+                         FT_TX_EN_IN                   => pcs_tx_en,
+                         FT_TX_ER_IN                   => pcs_tx_er,
+                         --SFP Connection
+                         SD_RXD_P_IN                   => SFP_RXD_P_IN,
+                         SD_RXD_N_IN                   => SFP_RXD_N_IN,
+                         SD_TXD_P_OUT                  => SFP_TXD_P_OUT,
+                         SD_TXD_N_OUT                  => SFP_TXD_N_OUT,
+                         SD_REFCLK_P_IN                => SFP_REFCLK_P_IN,
+                         SD_REFCLK_N_IN                => SFP_REFCLK_N_IN,
+                         SD_PRSNT_N_IN                 => SFP_PRSNT_N_IN,
+                         SD_LOS_IN                             => SFP_LOS_IN,
+                         SD_TXDIS_OUT                  => SFP_TXDIS_OUT,
+                         -- Autonegotiation stuff
+                         MR_ADV_ABILITY_IN             => x"0020", -- full duplex only
+                         MR_AN_LP_ABILITY_OUT  => pcs_an_lp_ability,
+                         MR_AN_PAGE_RX_OUT             => pcs_an_page_rx,
+                         MR_AN_COMPLETE_OUT    => pcs_an_complete,
+                         MR_RESET_IN                   => MR_RESET_IN,
+                         MR_MODE_IN                    => MR_MODE_IN,
+                         MR_AN_ENABLE_IN               => '1', -- do autonegotiation
+                         MR_RESTART_AN_IN              => MR_RESTART_IN,
+                         -- Status and control port
+                         STAT_OP                               => open,
+                         CTRL_OP                               => x"0000",
+                         STAT_DEBUG                    => pcs_stat_debug, --open,
+                         CTRL_DEBUG                    => x"0000_0000_0000_0000"
+       );
+
+       stage_stat_regs(31 downto 28) <= x"d";
+       stage_stat_regs(27 downto 24) <= pcs_stat_debug(25 downto 22); -- link status 
+       stage_stat_regs(23 downto 20) <= pcs_stat_debug(35 downto 32); -- reset bsm
+       stage_stat_regs(19 downto 18) <= (others => '0');
+       stage_stat_regs(17)           <= pcs_an_complete;
+       stage_stat_regs(16)           <= pcs_an_page_rx;
+       stage_stat_regs(15 downto 0)  <= pcs_an_lp_ability;
+
+end generate imp_gen;
+
+-- in case of simulation we include a fake MAC and no PHY/SerDes.
+sim_gen: if (DO_SIMULATION = 1) generate
+       --------------------------------------------------------------------------------------------
+       --------------------------------------------------------------------------------------------
+       -- Simulation
+       --------------------------------------------------------------------------------------------
+       --------------------------------------------------------------------------------------------
+       MAC: mb_mac_sim
+       port map( --------------------------------------------------------------------------
+                         --------------- clock, reset, clock enable -------------------------------
+                         HCLK                                  => CLK,
+                         TX_MAC_CLK                    => serdes_clk_125,
+                         RX_MAC_CLK                    => serdes_clk_125,
+                         RESET_N                               => GSR_N,
+                         TXMAC_CLK_EN                  => mac_tx_clk_en,
+                         RXMAC_CLK_EN                  => mac_rx_clk_en,
+                         --------------------------------------------------------------------------
+                         --------------- SGMII receive interface ----------------------------------
+                         RXD                                   => x"00",
+                         RX_DV                                 => '0',
+                         RX_ER                                 => '0',
+                         COL                                   => mac_col,
+                         CRS                                   => mac_crs,
+                         --------------------------------------------------------------------------
+                         --------------- SGMII transmit interface ---------------------------------
+                         TXD                                   => pcs_txd,
+                         TX_EN                                 => pcs_tx_en,
+                         TX_ER                                 => pcs_tx_er,
+                         --------------------------------------------------------------------------
+                         --------------- CPU configuration interface ------------------------------
+                         HADDR                                 => mac_haddr,
+                         HDATAIN                               => mac_hdataout,
+                         HCS_N                                 => mac_hcs,
+                         HWRITE_N                              => mac_hwrite,
+                         HREAD_N                               => mac_hread,
+                         HDATAOUT                              => open,
+                         HDATAOUT_EN_N                 => mac_hdata_en,
+                         HREADY_N                              => mac_hready,
+                         CPU_IF_GBIT_EN                => open,
+                         --------------------------------------------------------------------------
+                         --------------- Transmit FIFO interface ----------------------------------
+                         TX_FIFODATA                   => ft_data(7 downto 0),
+                         TX_FIFOAVAIL                  => mac_fifoavail,
+                         TX_FIFOEOF                    => mac_fifoeof,
+                         TX_FIFOEMPTY                  => mac_fifoempty,
+                         TX_MACREAD                    => mac_tx_read,
+                         TX_DONE                               => mac_tx_done,
+                         TX_SNDPAUSTIM                 => x"0000",
+                         TX_SNDPAUSREQ                 => '0',
+                         TX_FIFOCTRL                   => '0',
+                         TX_DISCFRM                    => open,
+                         TX_STATEN                             => open,
+                         TX_STATVEC                    => open,
+                         --------------------------------------------------------------------------
+                         --------------- Receive FIFO interface -----------------------------------
+                         RX_DBOUT                              => open,
+                         RX_FIFO_FULL                  => '0',
+                         IGNORE_PKT                    => '0', 
+                         RX_FIFO_ERROR                 => open,
+                         RX_STAT_VECTOR                => open,
+                         RX_STAT_EN                    => open,
+                         RX_WRITE                              => open,
+                         RX_EOF                                => open,
+                         RX_ERROR                              => open
+                       );
+
+       -- add external test clock for the MAC part
+       serdes_clk_125 <= TEST_CLK;
+
+       -- fake signals
+       pcs_an_lp_ability <= x"4060";
+       pcs_an_page_rx    <= '0';
+       pcs_an_complete   <= '1';
+       mac_tx_clk_en     <= '1';
+       mac_rx_clk_en     <= '1';
+       
+       stage_stat_regs(31 downto 0)  <= (others => '0');
+
+       pcs_stat_debug(63 downto 0)   <= (others => '0');
+
+       SFP_TXD_P_OUT                 <= '1';
+       SFP_TXD_N_OUT                 <= '0';
+       SFP_TXDIS_OUT                 <= '0';
+
+end generate sim_gen;
+
+
+------------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------------
+
+--***************
+--     LOGIC ANALYZER SIGNALS
+--***************
+analyzer_debug <= pcs_stat_debug;
+
+-- Interconnection signals
+IG_CTS_CTR_TST           <= ig_cts_ctr;
+IG_REM_CTR_TST           <= ig_rem_ctr;
+IG_BSM_LOAD_TST          <= ig_bsm_load;
+IG_BSM_SAVE_TST          <= ig_bsm_save;
+IG_DATA_TST              <= ig_data;
+IG_WCNT_TST              <= ig_wcnt;
+IG_RCNT_TST              <= ig_rcnt;
+IG_RD_EN_TST             <= ig_rd_en;
+IG_WR_EN_TST             <= ig_wr_en;
+IG_EMPTY_TST             <= ig_empty;
+IG_AEMPTY_TST            <= ig_aempty;
+IG_FULL_TST              <= ig_full;
+IG_AFULL_TST             <= ig_afull;
+-- PacketConstructor signals
+PC_WR_EN_TST             <= pc_wr_en;
+PC_DATA_TST              <= pc_data;
+PC_READY_TST             <= pc_ready;
+PC_START_OF_SUB_TST      <= pc_sos;
+PC_END_OF_DATA_TST       <= pc_eod;
+PC_SUB_SIZE_TST          <= pc_sub_size;
+PC_TRIG_NR_TST           <= pc_trig_nr;
+PC_PADDING_TST           <= pc_padding;
+PC_DECODING_TST          <= pc_decoding;
+PC_EVENT_ID_TST          <= pc_event_id;
+PC_QUEUE_DEC_TST         <= pc_queue_dec;
+PC_BSM_CONSTR_TST        <= pc_bsm_constr;
+PC_BSM_LOAD_TST          <= pc_bsm_load;
+PC_BSM_SAVE_TST          <= pc_bsm_save;
+PC_SHF_EMPTY_TST         <= pc_shf_empty;
+PC_SHF_FULL_TST          <= pc_shf_full;
+PC_SHF_WR_EN_TST         <= pc_shf_wr_en;
+PC_SHF_RD_EN_TST         <= pc_shf_rd_en;
+PC_SHF_Q_TST             <= pc_shf_q;
+PC_DF_EMPTY_TST          <= pc_df_empty;
+PC_DF_FULL_TST           <= pc_df_full;
+PC_DF_WR_EN_TST          <= pc_df_wr_en;
+PC_DF_RD_EN_TST          <= pc_df_rd_en;
+PC_DF_Q_TST              <= pc_df_q;
+PC_ALL_CTR_TST           <= pc_all_ctr;
+PC_SUB_CTR_TST           <= pc_sub_ctr;
+PC_BYTES_LOADED_TST      <= pc_bytes_loaded;
+PC_SIZE_LEFT_TST         <= pc_size_left;
+PC_SUB_SIZE_TO_SAVE_TST  <= pc_sub_size_to_save;
+PC_SUB_SIZE_LOADED_TST   <= pc_sub_size_loaded;
+PC_SUB_BYTES_LOADED_TST  <= pc_sub_bytes_loaded;
+PC_QUEUE_SIZE_TST        <= pc_queue_size;
+PC_ACT_QUEUE_SIZE_TST    <= pc_act_queue_size;
+-- FrameConstructor signals
+FC_WR_EN_TST             <= fc_wr_en;
+FC_DATA_TST              <= fc_data;
+FC_SOD_TST               <= fc_sod;
+FC_EOD_TST               <= fc_eod;
+FC_IP_SIZE_TST           <= fc_ip_size;
+FC_UDP_SIZE_TST          <= fc_udp_size;
+FC_H_READY_TST           <= fc_h_ready;
+FC_READY_TST             <= fc_ready;
+FC_IDENT_TST             <= fc_ident;
+FC_FLAGS_OFFSET_TST      <= fc_flags_offset;
+FC_BSM_CONSTR_TST        <= fc_bsm_constr;
+FC_BSM_TRANS_TST         <= fc_bsm_trans;
+-- FrameTransmitter signals
+FT_TX_EMPTY_TST          <= ft_tx_empty;
+FT_DATA_TST                 <= ft_data;
+FT_START_OF_PACKET_TST   <= ft_start_of_packet;
+FT_BSM_INIT_TST          <= ft_bsm_init;
+FT_BSM_MAC_TST           <= ft_bsm_mac;
+FT_BSM_TRANS_TST         <= ft_bsm_trans;
+-- MAC
+MAC_HADDR_TST            <= mac_haddr;
+MAC_HDATA_TST            <= mac_hdataout;
+MAC_HCS_TST              <= mac_hcs;
+MAC_HWRITE_TST           <= mac_hwrite;
+MAC_HREAD_TST            <= mac_hread;
+MAC_HREADY_TST           <= mac_hready;
+MAC_HDATA_EN_TST         <= mac_hdata_en;
+MAC_FIFOAVAIL_TST        <= mac_fifoavail;
+MAC_FIFOEOF_TST          <= mac_fifoeof;
+MAC_FIFOEMPTY_TST        <= mac_fifoempty;
+MAC_TX_DONE_TST          <= mac_tx_done;
+MAC_TX_READ_TST          <= mac_tx_read;
+PCS_AN_LP_ABILITY_TST    <= pcs_an_lp_ability;
+PCS_AN_COMPLETE_TST      <= pcs_an_complete;
+PCS_AN_PAGE_RX_TST       <= pcs_an_page_rx;
+
+-- Outputs
+FEE_READ_OUT             <= fee_read;
+
+CTS_READOUT_FINISHED_OUT <= cts_readout_finished;
+CTS_DATAREADY_OUT        <= cts_dataready;
+CTS_DATA_OUT             <= cts_data;
+CTS_LENGTH_OUT           <= cts_length;
+CTS_ERROR_PATTERN_OUT    <= cts_error_pattern;
+
+STAGE_STAT_REGS_OUT      <= stage_stat_regs;
+
+ANALYZER_DEBUG_OUT       <= analyzer_debug;
+
+end architecture;
diff --git a/gbe_ecp2m/trb_net16_gbe_frame_constr.vhd b/gbe_ecp2m/trb_net16_gbe_frame_constr.vhd
new file mode 100755 (executable)
index 0000000..ce1ff3c
--- /dev/null
@@ -0,0 +1,500 @@
+LIBRARY IEEE;\r
+USE IEEE.std_logic_1164.ALL;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+\r
+library work;\r
+use work.trb_net_std.all;\r
+use work.trb_net_components.all;\r
+use work.trb_net16_hub_func.all;\r
+\r
+entity trb_net16_gbe_frame_constr is\r
+port( \r
+       -- ports for user logic\r
+       RESET                   : in    std_logic;\r
+       CLK                     : in    std_logic;\r
+       --\r
+       WR_EN_IN                : in    std_logic;\r
+       DATA_IN                 : in    std_logic_vector(7 downto 0);\r
+       START_OF_DATA_IN        : in    std_logic;\r
+       END_OF_DATA_IN          : in    std_logic;\r
+       IP_F_SIZE_IN            : in    std_logic_vector(15 downto 0);\r
+       UDP_P_SIZE_IN           : in    std_logic_vector(15 downto 0); -- needed for fragmentation\r
+       HEADERS_READY_OUT       : out   std_logic;\r
+       READY_OUT               : out   std_logic;\r
+       DEST_MAC_ADDRESS_IN     : in    std_logic_vector(47 downto 0);\r
+       DEST_IP_ADDRESS_IN      : in    std_logic_vector(31 downto 0);\r
+       DEST_UDP_PORT_IN        : in    std_logic_vector(15 downto 0);\r
+       SRC_MAC_ADDRESS_IN      : in    std_logic_vector(47 downto 0);\r
+       SRC_IP_ADDRESS_IN       : in    std_logic_vector(31 downto 0);\r
+       SRC_UDP_PORT_IN         : in    std_logic_vector(15 downto 0);\r
+       FRAME_TYPE_IN           : in    std_logic_vector(15 downto 0);\r
+       IHL_VERSION_IN          : in    std_logic_vector(7 downto 0);\r
+       TOS_IN                  : in    std_logic_vector(7 downto 0);\r
+       IDENTIFICATION_IN       : in    std_logic_vector(15 downto 0);\r
+       FLAGS_OFFSET_IN         : in    std_logic_vector(15 downto 0);\r
+       TTL_IN                  : in    std_logic_vector(7 downto 0);\r
+       PROTOCOL_IN             : in    std_logic_vector(7 downto 0);\r
+       -- ports for packetTransmitter\r
+       RD_CLK                  : in    std_logic; -- 125MHz clock!!!\r
+       FT_DATA_OUT             : out   std_logic_vector(8 downto 0);\r
+       FT_TX_EMPTY_OUT         : out   std_logic;\r
+       FT_TX_RD_EN_IN          : in    std_logic;\r
+       FT_START_OF_PACKET_OUT  : out   std_logic;\r
+       FT_TX_DONE_IN           : in    std_logic;\r
+       -- debug ports\r
+       BSM_CONSTR_OUT          : out   std_logic_vector(7 downto 0);\r
+       BSM_TRANS_OUT           : out   std_logic_vector(3 downto 0);\r
+       DEBUG_OUT               : out   std_logic_vector(31 downto 0)\r
+);\r
+end trb_net16_gbe_frame_constr;\r
+\r
+architecture trb_net16_gbe_frame_constr of trb_net16_gbe_frame_constr is\r
+\r
+component fifo_4096x9 is\r
+port( \r
+       Data    : in    std_logic_vector(8 downto 0);\r
+       WrClock : in    std_logic;\r
+       RdClock : in    std_logic;\r
+       WrEn    : in    std_logic;\r
+       RdEn    : in    std_logic;\r
+       Reset   : in    std_logic;\r
+       RPReset : in    std_logic;\r
+       Q       : out   std_logic_vector(8 downto 0);\r
+       Empty   : out   std_logic;\r
+       Full    : out   std_logic\r
+);\r
+end component;\r
+\r
+attribute sys_encoding      : string;\r
+\r
+type constructStates    is  (IDLE, DEST_MAC_ADDR, SRC_MAC_ADDR, FRAME_TYPE_S, VERSION,\r
+                                                        TOS_S, IP_LENGTH, IDENT, FLAGS, TTL_S, PROTO, HEADER_CS,\r
+                                                        SRC_IP_ADDR, DEST_IP_ADDR, SRC_PORT, DEST_PORT, UDP_LENGTH,\r
+                                                        UDP_CS, SAVE_DATA, CLEANUP);\r
+signal constructCurrentState, constructNextState : constructStates;\r
+signal bsm_constr           : std_logic_vector(7 downto 0);\r
+attribute sys_encoding of constructCurrentState: signal is "safe,gray";\r
+\r
+type transmitStates     is  (T_IDLE, T_LOAD, T_TRANSMIT, T_CLEANUP);\r
+signal transmitCurrentState, transmitNextState : transmitStates;\r
+signal bsm_trans            : std_logic_vector(3 downto 0);\r
+\r
+signal headers_int_counter  : integer range 0 to 6;\r
+signal fpf_data             : std_logic_vector(7 downto 0);\r
+signal fpf_empty            : std_logic;\r
+signal fpf_full             : std_logic;\r
+signal fpf_wr_en            : std_logic;\r
+signal fpf_q                : std_logic_vector(8 downto 0);\r
+signal ip_size              : std_logic_vector(15 downto 0);\r
+signal ip_checksum          : std_logic_vector(31 downto 0);\r
+signal udp_size             : std_logic_vector(15 downto 0);\r
+signal udp_checksum         : std_logic_vector(15 downto 0);\r
+signal ft_sop               : std_logic;\r
+signal put_udp_headers      : std_logic;\r
+signal ready_frames_ctr     : std_logic_vector(15 downto 0);\r
+signal sent_frames_ctr      : std_logic_vector(15 downto 0);\r
+signal debug                : std_logic_vector(31 downto 0);\r
+signal ready                : std_logic;\r
+signal headers_ready        : std_logic;\r
+\r
+signal cur_max : integer range 0 to 10;\r
+\r
+signal ready_frames_ctr_q : std_logic_vector(15 downto 0);\r
+signal ip_cs_temp_right   : std_logic_vector(15 downto 0); -- gk 29.03.10\r
+\r
+begin\r
+\r
+-- Fakes\r
+udp_checksum  <= x"0000";  -- no checksum test needed\r
+debug         <= (others => '0');\r
+\r
+ready         <= '1' when (constructCurrentState = IDLE)\r
+                                        else '0';\r
+headers_ready <= '1' when (constructCurrentState = SAVE_DATA)\r
+                                        else '0';\r
+\r
+sizeProc: process( put_udp_headers, IP_F_SIZE_IN, UDP_P_SIZE_IN )\r
+begin\r
+       if( put_udp_headers = '1' ) then\r
+               ip_size  <= IP_F_SIZE_IN + x"14" + x"8";\r
+               udp_size <= UDP_P_SIZE_IN + x"8";\r
+       else\r
+               ip_size  <= IP_F_SIZE_IN + x"14";\r
+               udp_size <= UDP_P_SIZE_IN;\r
+       end if;\r
+end process sizeProc;\r
+\r
+ipCsProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (constructCurrentState = IDLE) then\r
+                       ip_checksum <= x"00000000";\r
+               else\r
+                       case constructCurrentState is\r
+                               when DEST_MAC_ADDR =>\r
+                                       case headers_int_counter is\r
+                                               when 0 =>\r
+                                                       ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + SRC_IP_ADDRESS_IN(7 downto 0);\r
+                                               when 1 =>\r
+                                                       ip_checksum <= ip_checksum +  SRC_IP_ADDRESS_IN(15 downto 8);\r
+                                               when 2 =>\r
+                                                       ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + SRC_IP_ADDRESS_IN(23 downto 16);\r
+                                               when 3 =>\r
+                                                       ip_checksum <= ip_checksum +  SRC_IP_ADDRESS_IN(31 downto 24);\r
+                                               when 4 =>\r
+                                                       ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + DEST_IP_ADDRESS_IN(7 downto 0);\r
+                                               when 5 =>\r
+                                                       ip_checksum <= ip_checksum +  DEST_IP_ADDRESS_IN(15 downto 8);\r
+                                               when others => null;\r
+                                       end case;\r
+                               when SRC_MAC_ADDR =>\r
+                                       case headers_int_counter is\r
+                                               when 0 =>\r
+                                                       ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + DEST_IP_ADDRESS_IN(23 downto 16);\r
+                                               when 1 =>\r
+                                                       ip_checksum <= ip_checksum +  DEST_IP_ADDRESS_IN(31 downto 24);\r
+                                               when 2 =>\r
+                                                       ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + IHL_VERSION_IN;\r
+                                               when 3 =>\r
+                                                       ip_checksum <= ip_checksum + TOS_IN;\r
+                                               when 4 =>\r
+                                                       ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + ip_size(15 downto 8);\r
+                                               when 5 =>\r
+                                                       ip_checksum <= ip_checksum + ip_size(7 downto 0);\r
+                                               when others => null;\r
+                                       end case;\r
+                               when VERSION =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + IDENTIFICATION_IN(7 downto 0);\r
+                                       end if;\r
+                               when TOS_S =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_checksum <= ip_checksum + IDENTIFICATION_IN(15 downto 8);\r
+                                       end if;\r
+                               when IP_LENGTH =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + FLAGS_OFFSET_IN(15 downto 8);\r
+                                       elsif headers_int_counter = 1 then\r
+                                               ip_checksum <= ip_checksum + FLAGS_OFFSET_IN(7 downto 0);\r
+                                       end if;\r
+                               when IDENT =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_checksum(31 downto 8) <= ip_checksum(31 downto 8) + TTL_IN;\r
+                                       elsif headers_int_counter = 1 then\r
+                                               ip_checksum <= ip_checksum + PROTOCOL_IN;\r
+                                       end if;\r
+                               -- gk 29.03.10 corrected the bug with bad checksums when sum larger than 16b\r
+                               when FLAGS =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_cs_temp_right <= ip_checksum(31 downto 16);\r
+                                       elsif headers_int_counter = 1 then\r
+                                               ip_checksum(31 downto 16) <= (others => '0');\r
+                                       end if;\r
+                               when TTL_S =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_checksum <= ip_checksum + ip_cs_temp_right;\r
+                                       end if;\r
+                               when PROTO =>\r
+                                       if headers_int_counter = 0 then\r
+                                               ip_checksum(15 downto 0) <= ip_checksum(15 downto 0) + ip_checksum(31 downto 16);\r
+                                       end if;\r
+                               when others => null;\r
+                       end case;\r
+               end if;\r
+       end if;\r
+end process ipCsProc;\r
+\r
+\r
+constructMachineProc: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if( RESET = '1' ) then\r
+                       constructCurrentState <= IDLE;\r
+               else\r
+                       constructCurrentState <= constructNextState;\r
+               end if;\r
+       end if;\r
+end process constructMachineProc;\r
+\r
+\r
+--find next state of construct machine\r
+constructMachine: process( constructCurrentState, START_OF_DATA_IN, END_OF_DATA_IN, headers_int_counter, put_udp_headers, CUR_MAX )\r
+begin\r
+       constructNextState <= constructCurrentState;\r
+       if( headers_int_counter = cur_max ) then    --can be checked everytime - if not in use, counter and cur_max are 0\r
+               case constructCurrentState is\r
+                       when IDLE =>\r
+                               if( START_OF_DATA_IN = '1' ) then\r
+                                       constructNextState <= DEST_MAC_ADDR;\r
+                               end if;\r
+                       when DEST_MAC_ADDR =>\r
+                               constructNextState <= SRC_MAC_ADDR;\r
+                       when SRC_MAC_ADDR =>\r
+                               constructNextState <= FRAME_TYPE_S;\r
+                       when FRAME_TYPE_S =>\r
+                               constructNextState <= VERSION;\r
+                       when VERSION =>\r
+                               constructNextState <= TOS_S;\r
+                       when TOS_S =>\r
+                               constructNextState <= IP_LENGTH;\r
+                       when IP_LENGTH =>\r
+                               constructNextState <= IDENT;\r
+                       when IDENT =>\r
+                               constructNextState <= FLAGS;\r
+                       when FLAGS =>\r
+                               constructNextState <= TTL_S;\r
+                       when TTL_S =>\r
+                               constructNextState <= PROTO;\r
+                       when PROTO =>\r
+                               constructNextState <= HEADER_CS;\r
+                       when HEADER_CS =>\r
+                               constructNextState <= SRC_IP_ADDR;\r
+                       when SRC_IP_ADDR =>\r
+                               constructNextState <= DEST_IP_ADDR;\r
+                       when DEST_IP_ADDR =>\r
+                               if (put_udp_headers = '1') then\r
+                                       constructNextState <= SRC_PORT;\r
+                               else\r
+                                       constructNextState <= SAVE_DATA;\r
+                               end if;\r
+                       when SRC_PORT =>\r
+                               constructNextState <= DEST_PORT;\r
+                       when DEST_PORT =>\r
+                               constructNextState <= UDP_LENGTH;\r
+                       when UDP_LENGTH =>\r
+                               constructNextState <= UDP_CS;\r
+                       when UDP_CS =>\r
+                               constructNextState <= SAVE_DATA;\r
+                       when SAVE_DATA =>\r
+                               if (END_OF_DATA_IN = '1') then\r
+                                       constructNextState <= CLEANUP;\r
+                               end if;\r
+                       when CLEANUP =>\r
+                               constructNextState <= IDLE;\r
+                       when others =>\r
+                               constructNextState <= IDLE;\r
+               end case;\r
+       end if;\r
+end process constructMachine;\r
+\r
+\r
+bsmConstrProc : process(constructCurrentState)\r
+begin\r
+--find maximum time in each state & set state bits\r
+       case constructCurrentState is\r
+               when IDLE =>            cur_max    <= 0;     bsm_constr <= x"01";\r
+               when DEST_MAC_ADDR =>   cur_max    <= 5;     bsm_constr <= x"02";\r
+               when SRC_MAC_ADDR =>    cur_max    <= 5;     bsm_constr <= x"03";\r
+               when FRAME_TYPE_S =>    cur_max    <= 1;     bsm_constr <= x"04";\r
+               when VERSION =>         cur_max    <= 0;     bsm_constr <= x"05";\r
+               when TOS_S =>           cur_max    <= 0;     bsm_constr <= x"06";\r
+               when IP_LENGTH =>       cur_max    <= 1;     bsm_constr <= x"07";\r
+               when IDENT =>           cur_max    <= 1;     bsm_constr <= x"08";\r
+               when FLAGS =>           cur_max    <= 1;     bsm_constr <= x"09";\r
+               when TTL_S =>           cur_max    <= 0;     bsm_constr <= x"0a";\r
+               when PROTO =>           cur_max    <= 0;     bsm_constr <= x"0b";\r
+               when HEADER_CS =>       cur_max    <= 1;     bsm_constr <= x"0c";\r
+               when SRC_IP_ADDR =>     cur_max    <= 3;     bsm_constr <= x"0d";\r
+               when DEST_IP_ADDR =>    cur_max    <= 3;     bsm_constr <= x"0e";\r
+               when SRC_PORT =>        cur_max    <= 1;     bsm_constr <= x"0f";\r
+               when DEST_PORT =>       cur_max    <= 1;     bsm_constr <= x"10";\r
+               when UDP_LENGTH =>      cur_max    <= 1;     bsm_constr <= x"11";\r
+               when UDP_CS =>          cur_max    <= 1;     bsm_constr <= x"12";\r
+               when SAVE_DATA =>       cur_max    <= 0;     bsm_constr <= x"13";\r
+               when CLEANUP =>         cur_max    <= 0;     bsm_constr <= x"14";\r
+               when others =>          cur_max    <= 0;     bsm_constr <= x"1f";\r
+       end case;\r
+end process;\r
+\r
+\r
+headersIntProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (constructCurrentState = IDLE) then\r
+                       headers_int_counter <= 0;\r
+               else\r
+                       if headers_int_counter = cur_max then\r
+                               headers_int_counter <= 0;\r
+                       else\r
+                               headers_int_counter <= headers_int_counter + 1;\r
+                       end if;\r
+               end if;\r
+       end if;\r
+end process headersIntProc;\r
+\r
+\r
+\r
+putUdpHeadersProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (FLAGS_OFFSET_IN(12 downto 0) = "0000000000000") then\r
+                       put_udp_headers <= '1';\r
+               else\r
+                       put_udp_headers <= '0';\r
+               end if;\r
+       end if;\r
+end process putUdpHeadersProc;\r
+\r
+\r
+fpfWrEnProc : process(constructCurrentState, WR_EN_IN)\r
+begin\r
+       if (constructCurrentState /= IDLE) and (constructCurrentState /= CLEANUP) and (constructCurrentState /= SAVE_DATA) then\r
+               fpf_wr_en <= '1';\r
+       elsif (constructCurrentState = SAVE_DATA) and (WR_EN_IN = '1') then\r
+               fpf_wr_en <= '1';\r
+       else\r
+               fpf_wr_en <= '0';\r
+       end if;\r
+end process fpfWrEnProc;\r
+\r
+fpfDataProc : process(constructCurrentState, DEST_MAC_ADDRESS_IN, SRC_MAC_ADDRESS_IN, FRAME_TYPE_IN, IHL_VERSION_IN,\r
+                                         TOS_IN, ip_size, IDENTIFICATION_IN, FLAGS_OFFSET_IN, TTL_IN, PROTOCOL_IN,\r
+                                         ip_checksum, SRC_IP_ADDRESS_IN, DEST_IP_ADDRESS_IN,\r
+                                         SRC_UDP_PORT_IN, DEST_UDP_PORT_IN, udp_size, udp_checksum, headers_int_counter, DATA_IN)\r
+begin\r
+       case constructCurrentState is\r
+               when IDLE           =>  fpf_data <= DEST_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when DEST_MAC_ADDR  =>  fpf_data <= DEST_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when SRC_MAC_ADDR   =>  fpf_data <= SRC_MAC_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when FRAME_TYPE_S   =>  fpf_data <= FRAME_TYPE_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when VERSION        =>  fpf_data <= IHL_VERSION_IN;\r
+               when TOS_S          =>  fpf_data <= TOS_IN;\r
+               when IP_LENGTH      =>  fpf_data <= ip_size(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8);\r
+               when IDENT          =>  fpf_data <= IDENTIFICATION_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when FLAGS          =>  fpf_data <= FLAGS_OFFSET_IN(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8);\r
+               when TTL_S          =>  fpf_data <= TTL_IN;\r
+               when PROTO          =>  fpf_data <= PROTOCOL_IN;\r
+               when HEADER_CS      =>  fpf_data <= x"ff" - ip_checksum(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8);\r
+               when SRC_IP_ADDR    =>  fpf_data <= SRC_IP_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when DEST_IP_ADDR   =>  fpf_data <= DEST_IP_ADDRESS_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when SRC_PORT       =>  fpf_data <= SRC_UDP_PORT_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when DEST_PORT      =>  fpf_data <= DEST_UDP_PORT_IN(headers_int_counter * 8 + 7 downto headers_int_counter * 8);\r
+               when UDP_LENGTH     =>  fpf_data <= udp_size(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8);\r
+               when UDP_CS         =>  fpf_data <= udp_checksum(15 - headers_int_counter * 8 downto 8 - headers_int_counter * 8);\r
+               when SAVE_DATA      =>  fpf_data <= DATA_IN;\r
+               when CLEANUP        =>  fpf_data <= x"ab";\r
+               when others         =>  fpf_data <= x"00";\r
+       end case;\r
+end process fpfDataProc;\r
+\r
+readyFramesCtrProc: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       ready_frames_ctr <= (others => '0');\r
+               elsif (constructCurrentState = CLEANUP) then\r
+                       ready_frames_ctr <= ready_frames_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process readyFramesCtrProc;\r
+\r
+FINAL_PACKET_FIFO: fifo_4096x9\r
+port map( \r
+       Data(7 downto 0)    => fpf_data,\r
+       Data(8)             => END_OF_DATA_IN,\r
+       WrClock             => CLK,\r
+       RdClock             => RD_CLK,\r
+       WrEn                => fpf_wr_en,\r
+       RdEn                => FT_TX_RD_EN_IN,\r
+       Reset               => RESET,\r
+       RPReset             => RESET,\r
+       Q                   => fpf_q,\r
+       Empty               => fpf_empty,\r
+       Full                => fpf_full\r
+);\r
+\r
+\r
+transferToRdClock : signal_sync\r
+       generic map(\r
+         DEPTH => 2,\r
+         WIDTH => 16\r
+         )\r
+       port map(\r
+         RESET    => RESET,\r
+         D_IN     => ready_frames_ctr,\r
+         CLK0     => RD_CLK,\r
+         CLK1     => RD_CLK,\r
+         D_OUT    => ready_frames_ctr_q\r
+         );\r
+\r
+transmitMachineProc: process( RD_CLK )\r
+begin\r
+       if( rising_edge(RD_CLK) ) then\r
+               if( RESET = '1' ) then\r
+                       transmitCurrentState <= T_IDLE;\r
+               else\r
+                       transmitCurrentState <= transmitNextState;\r
+               end if;\r
+       end if;\r
+end process transmitMachineProc;\r
+\r
+transmitMachine: process( transmitCurrentState, fpf_q, FT_TX_DONE_IN, sent_frames_ctr, ready_frames_ctr_q )\r
+begin\r
+       case transmitCurrentState is\r
+               when T_IDLE =>\r
+                       bsm_trans <= x"0";\r
+                       if( sent_frames_ctr /= ready_frames_ctr_q ) then\r
+                               transmitNextState <= T_LOAD;\r
+                       else\r
+                               transmitNextState <= T_IDLE;\r
+                       end if;\r
+               when T_LOAD =>\r
+                       bsm_trans <= x"1";\r
+                       if( fpf_q(8) = '1' ) then\r
+                               transmitNextState <= T_TRANSMIT;\r
+                       else\r
+                               transmitNextState <= T_LOAD;\r
+                       end if;\r
+               when T_TRANSMIT =>\r
+                       bsm_trans <= x"2";\r
+                       if( ft_tx_done_in = '1' ) then\r
+                               transmitNextState <= T_CLEANUP;\r
+                       else\r
+                               transmitNextState <= T_TRANSMIT;\r
+                       end if;\r
+               when T_CLEANUP =>\r
+                       bsm_trans <= x"3";\r
+                       transmitNextState <= T_IDLE;\r
+               when others =>\r
+                       bsm_trans <= x"f";\r
+                       transmitNextState <= T_IDLE;\r
+       end case;\r
+end process transmitMachine;\r
+\r
+sopProc: process( RD_CLK )\r
+begin\r
+       if rising_edge(RD_CLK) then\r
+               if   ( RESET = '1' ) then\r
+                       ft_sop <= '0';\r
+               elsif( (transmitCurrentState = T_IDLE) and (sent_frames_ctr /= ready_frames_ctr_q) ) then\r
+                       ft_sop <= '1';\r
+               else\r
+                       ft_sop <= '0';\r
+               end if;\r
+       end if;\r
+end process sopProc;\r
+\r
+sentFramesCtrProc: process( RD_CLK )\r
+begin\r
+       if rising_edge(RD_CLK) then\r
+               if   ( RESET = '1' ) then\r
+                       sent_frames_ctr <= (others => '0');\r
+               elsif( ft_tx_done_in = '1' ) then\r
+                       sent_frames_ctr <= sent_frames_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process sentFramesCtrProc;\r
+\r
+-- Outputs\r
+FT_DATA_OUT            <= fpf_q;\r
+FT_TX_EMPTY_OUT        <= fpf_empty;\r
+FT_START_OF_PACKET_OUT <= ft_sop;\r
+READY_OUT              <= ready;\r
+HEADERS_READY_OUT      <= headers_ready;\r
+\r
+BSM_CONSTR_OUT         <= bsm_constr;\r
+BSM_TRANS_OUT          <= bsm_trans;\r
+DEBUG_OUT              <= debug;\r
+\r
+end trb_net16_gbe_frame_constr;
\ No newline at end of file
diff --git a/gbe_ecp2m/trb_net16_gbe_frame_trans.vhd b/gbe_ecp2m/trb_net16_gbe_frame_trans.vhd
new file mode 100755 (executable)
index 0000000..3778f3e
--- /dev/null
@@ -0,0 +1,579 @@
+LIBRARY IEEE;\r
+USE IEEE.std_logic_1164.ALL;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+\r
+library work;\r
+use work.trb_net_std.all;\r
+use work.trb_net_components.all;\r
+use work.trb_net16_hub_func.all;\r
+\r
+entity trb_net16_gbe_frame_trans is\r
+port (\r
+       CLK                                     : in    std_logic;\r
+       RESET                           : in    std_logic;\r
+       TX_MAC_CLK                      : in    std_logic;\r
+       TX_EMPTY_IN                     : in    std_logic;\r
+       START_OF_PACKET_IN      : in    std_logic;\r
+       DATA_ENDFLAG_IN         : in    std_logic; -- (8) is end flag, rest is only for TSMAC\r
+       -- NEW PORTS\r
+       HADDR_OUT                       : out   std_logic_vector(7 downto 0);\r
+       HDATA_OUT                       : out   std_logic_vector(7 downto 0);\r
+       HCS_OUT                         : out   std_logic;\r
+       HWRITE_OUT                      : out   std_logic;\r
+       HREAD_OUT                       : out   std_logic;\r
+       HREADY_IN                       : in    std_logic;\r
+       HDATA_EN_IN                     : in    std_logic;\r
+       TX_FIFOAVAIL_OUT        : out   std_logic;\r
+       TX_FIFOEOF_OUT          : out   std_logic;\r
+       TX_FIFOEMPTY_OUT        : out   std_logic;\r
+       TX_DONE_IN                      : in    std_logic;\r
+       -- Debug\r
+       BSM_INIT_OUT            : out   std_logic_vector(3 downto 0);\r
+       BSM_MAC_OUT                     : out   std_logic_vector(3 downto 0);\r
+       BSM_TRANS_OUT           : out   std_logic_vector(3 downto 0);\r
+       DBG_RD_DONE_OUT         : out   std_logic;\r
+       DBG_INIT_DONE_OUT       : out   std_logic;\r
+       DBG_ENABLED_OUT         : out   std_logic;\r
+       DEBUG_OUT                       : out   std_logic_vector(31 downto 0)\r
+);\r
+end trb_net16_gbe_frame_trans;\r
+\r
+-- FifoRd ?!?\r
+\r
+architecture trb_net16_gbe_frame_trans of trb_net16_gbe_frame_trans is\r
+\r
+component mac_init_mem is\r
+port (\r
+       Address         : in    std_logic_vector(5 downto 0); \r
+       OutClock        : in    std_logic; \r
+       OutClockEn      : in    std_logic; \r
+       Reset           : in    std_logic; \r
+       Q                       : out   std_logic_vector(7 downto 0)\r
+);\r
+end component;\r
+\r
+attribute syn_encoding : string;\r
+\r
+type macInitStates is (I_IDLE, I_INCRADDRESS, I_PAUSE, I_WRITE, I_PAUSE2, I_READ, I_PAUSE3, I_ENDED);\r
+signal macInitState, macInitNextState : macInitStates;\r
+attribute syn_encoding of macInitState: signal is "safe,gray";\r
+signal bsm_init                        : std_logic_vector(3 downto 0);\r
+       \r
+type macStates is (M_RESETING, M_IDLE, M_INIT);\r
+signal macCurrentState, macNextState : macStates;\r
+signal bsm_mac                 : std_logic_vector(3 downto 0);\r
+       \r
+type transmitStates is (T_IDLE, T_TRANSMIT, T_WAITFORFIFO);\r
+signal transmitCurrentState, transmitNextState : transmitStates;\r
+attribute syn_encoding of transmitCurrentState: signal is "safe,gray";\r
+signal bsm_trans               : std_logic_vector(3 downto 0);\r
+\r
+signal tx_fifoavail_i  : std_logic;\r
+signal tx_fifoeof_i            : std_logic;\r
+\r
+-- host interface signals\r
+signal hcs_n_i                 : std_logic;\r
+signal hwrite_n_i              : std_logic;\r
+signal hread_n_i               : std_logic;\r
+\r
+-- MAC INITIALIZATION signals\r
+signal macInitMemAddr  : std_logic_vector(5 downto 0);\r
+signal macInitMemQ             : std_logic_vector(7 downto 0);\r
+signal macInitMemEn            : std_logic;\r
+signal reading_done            : std_logic;\r
+signal init_done               : std_logic;\r
+signal enabled                 : std_logic;\r
+signal addrSig                 : std_logic_vector(5 downto 0);\r
+signal addr2                   : std_logic_vector(5 downto 0);\r
+signal resetAddr               : std_logic;\r
+\r
+signal FifoEmpty               : std_logic;\r
+signal debug                   : std_logic_vector(31 downto 0);\r
+\r
+begin\r
+\r
+-- Fakes\r
+debug <= (others => '0');\r
+\r
+\r
+TransmitStateMachineProc : process (TX_MAC_CLK)\r
+begin\r
+       if rising_edge(TX_MAC_CLK) then\r
+               if RESET = '1' then\r
+                       transmitCurrentState <= T_IDLE;\r
+               else\r
+                       transmitCurrentState <= transmitNextState;\r
+               end if;\r
+       end if;\r
+end process TransmitStatemachineProc;\r
+\r
+TransmitStateMachine : process (transmitCurrentState, macCurrentState, START_OF_PACKET_IN, DATA_ENDFLAG_IN, TX_DONE_IN)\r
+begin\r
+       case transmitCurrentState is\r
+               when T_IDLE =>\r
+                       bsm_trans <= x"0";\r
+                       if ((START_OF_PACKET_IN = '1') and (macCurrentState = M_IDLE)) then\r
+                               transmitNextState <= T_TRANSMIT;\r
+                       else\r
+                               transmitNextState <= T_IDLE;\r
+                       end if;\r
+               when T_TRANSMIT =>\r
+                       bsm_trans <= x"1";\r
+                       if (DATA_ENDFLAG_IN = '1') then\r
+                               transmitNextState <= T_WAITFORFIFO;\r
+                       else\r
+                               transmitNextState <= T_TRANSMIT;\r
+                       end if;\r
+               when T_WAITFORFIFO =>\r
+                       bsm_trans <= x"2";\r
+                       if (TX_DONE_IN = '1') then\r
+                               transmitNextState <= T_IDLE;\r
+                       else\r
+                               transmitNextState <= T_WAITFORFIFO;\r
+                       end if;\r
+               when others =>\r
+                       bsm_trans <= x"f";\r
+                       transmitNextState <= T_IDLE;\r
+       end case;\r
+end process TransmitStateMachine;\r
+       \r
+FifoAvailProc : process (TX_MAC_CLK)\r
+begin\r
+       if rising_edge(TX_MAC_CLK) then\r
+               if RESET = '1' then\r
+                       tx_fifoavail_i <= '0';\r
+               elsif (transmitCurrentState = T_TRANSMIT) then\r
+                       tx_fifoavail_i <= '1';\r
+               else\r
+                       tx_fifoavail_i <= '0';\r
+               end if;\r
+       end if;\r
+end process FifoAvailProc;\r
+\r
+FifoEmptyProc : process(transmitCurrentState, START_OF_PACKET_IN, TX_EMPTY_IN)\r
+begin\r
+       if    (transmitCurrentState = T_WAITFORFIFO) then\r
+               FifoEmpty <= '1';\r
+       elsif (transmitCurrentState = T_TRANSMIT) then\r
+               FifoEmpty <= TX_EMPTY_IN;\r
+       elsif (((transmitCurrentState = T_IDLE) or (transmitCurrentState = T_WAITFORFIFO)) and (START_OF_PACKET_IN = '1')) then\r
+               FifoEmpty <= '0';\r
+       else\r
+               FifoEmpty <= '1';\r
+       end if;\r
+end process FifoEmptyProc;\r
+\r
+tx_fifoeof_i <= '1' when ((DATA_ENDFLAG_IN = '1') and (transmitCurrentState = T_TRANSMIT)) \r
+                                       else '0';\r
+\r
+--     main MAC state machine\r
+MacStateMachineProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       macCurrentState <= M_RESETING;\r
+               else\r
+                       macCurrentState <= macNextState;\r
+               end if;\r
+       end if;\r
+end process MacStateMachineProc;\r
+       \r
+MacStatesMachine: process(macCurrentState, reading_done)\r
+begin\r
+       case macCurrentState is\r
+               when M_RESETING =>\r
+                       bsm_mac <= x"0";\r
+                       macNextState <= M_INIT;\r
+               when M_IDLE =>\r
+                       bsm_mac <= x"1";\r
+                       macNextState <= M_IDLE;\r
+               when M_INIT =>\r
+                       bsm_mac <= x"2";\r
+                       if (reading_done = '1') then\r
+                               macNextState <= M_IDLE;\r
+                       else\r
+                               macNextState <= M_INIT;\r
+                       end if;\r
+               when others =>\r
+                       bsm_mac <= x"f";\r
+                       macNextState <= M_RESETING;\r
+       end case;\r
+end process MacStatesMachine;  \r
+\r
+\r
+---------------------------------------------------------------------------------\r
+---------------------------------------------------------------------------------\r
+-- MAC initialization statemachine, memory and address counters\r
+---------------------------------------------------------------------------------\r
+---------------------------------------------------------------------------------\r
+       \r
+-- state machine used to initialize MAC registers with data saved in macInitDataInv2.mem via macInitMem\r
+MacInitStateMachineProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       macInitState <= I_IDLE;\r
+               else\r
+                       macInitState <= macInitNextState;\r
+               end if;\r
+       end if;\r
+end process MacInitStateMachineProc;\r
+       \r
+MacInitStateMachine : process (macInitState, macCurrentState, init_done, HREADY_IN, reading_done, HDATA_EN_IN, enabled)\r
+begin          \r
+       case macInitState is\r
+               when I_IDLE =>          \r
+                       bsm_init <= x"0";\r
+                       if (macCurrentState = M_INIT) then\r
+                               macInitNextState <= I_WRITE;\r
+                       else\r
+                               macInitNextState <= I_IDLE;\r
+                       end if;\r
+               when I_INCRADDRESS =>   \r
+                       bsm_init <= x"1";\r
+                       if    ((init_done = '0') and (enabled = '0') and (reading_done = '0')) then  -- write to regs 2 and up\r
+                               macInitNextState <= I_PAUSE;\r
+                       elsif ((init_done = '1') and (enabled = '0') and (reading_done = '0')) then  -- write to regs 0 and 1\r
+                               macInitNextState <= I_PAUSE3;\r
+                       elsif ((init_done = '1') and (enabled = '1') and (reading_done = '0')) then -- read all regs to fifo\r
+                               macInitNextState <= I_PAUSE2;\r
+                       else\r
+                               macInitNextState <= I_ENDED;\r
+                       end if;\r
+               when I_PAUSE =>\r
+                       bsm_init <= x"2";\r
+                       if (HREADY_IN = '1') then\r
+                               macInitNextState <= I_WRITE; \r
+                       else\r
+                               macInitNextState <= I_PAUSE;\r
+                       end if;\r
+               when I_WRITE =>\r
+                       bsm_init <= x"3";\r
+                       if (HREADY_IN = '0') then\r
+                               macInitNextState <= I_INCRADDRESS;\r
+                       else\r
+                               macInitNextState <= I_WRITE;\r
+                       end if; \r
+               when I_PAUSE2 =>\r
+                       bsm_init <= x"4";\r
+                       if (HREADY_IN = '1') then\r
+                               macInitNextState <= I_READ;\r
+                       else\r
+                               macInitNextState <= I_PAUSE2;\r
+                       end if;\r
+               when I_READ =>\r
+                       bsm_init <= x"5";\r
+                       if (HDATA_EN_IN = '0') then\r
+                               macInitNextState <= I_INCRADDRESS;\r
+                       else\r
+                               macInitNextState <= I_READ;\r
+                       end if;\r
+               when I_PAUSE3 =>\r
+                       bsm_init <= x"6";\r
+                       if (HREADY_IN = '1') then\r
+                               macInitNextState <= I_WRITE;\r
+                       else\r
+                               macInitNextState <= I_PAUSE3;\r
+                       end if;                                                 \r
+               when I_ENDED =>\r
+                       bsm_init <= x"7";\r
+                       macInitNextState <= I_ENDED;\r
+               when others =>\r
+                       bsm_init <= x"f";\r
+                       macInitNextState <= I_IDLE;\r
+       end case;\r
+end process MacInitStateMachine;\r
+       \r
+addrSig <= addr2 when ((reading_done = '0') and (init_done = '1') and (enabled = '1')) \r
+                                else macInitMemAddr;\r
+\r
+-- initialization ROM\r
+MacInitMemory : mac_init_mem\r
+port map (\r
+       Address         =>      macInitMemAddr,\r
+       OutClock        =>      CLK,\r
+       OutClockEn      =>      macInitMemEn,\r
+       Reset           =>      RESET,\r
+       Q                       =>      macInitMemQ     \r
+);\r
+       \r
+-- MAC ready signal (?)\r
+enabledProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       enabled <= '0';\r
+               elsif ((reading_done = '0') and (init_done = '1') and (macInitMemAddr = "000010")) then  -- write only to the first register (mode)\r
+                       enabled <= '1';\r
+               elsif (macInitState = I_IDLE) then\r
+                       enabled <= '0';\r
+               end if;\r
+       end if;\r
+end process enabledProc;\r
+       \r
+add2 : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       addr2 <= "111111";\r
+               elsif ((macInitState = I_INCRADDRESS) and (init_done = '1') and (enabled = '1')) then\r
+                       addr2 <= addr2 + "1";\r
+               elsif (macInitState = I_IDLE) then\r
+                       addr2 <= "111111";\r
+               end if;\r
+       end if;\r
+end process add2;\r
+       \r
+readingDoneProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       reading_done <= '0';\r
+               elsif (macInitState = I_IDLE) then\r
+                       reading_done <= '0';\r
+               elsif (addr2 = "110101") then  -- read all registers\r
+                       reading_done <= '1';\r
+               end if;\r
+       end if;\r
+end process readingDoneProc;\r
+\r
+initDoneProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       init_done <= '0';\r
+               elsif (macInitState = I_IDLE) then\r
+                       init_done <= '0';\r
+               elsif (macInitMemAddr = "110101") then -- write to all registers\r
+                       init_done <= '1';\r
+               end if;\r
+       end if;\r
+end process initDoneProc;\r
+       \r
+-- HWRITE signal (registered)\r
+hwriteProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       hwrite_n_i <= '1';\r
+               elsif ((macInitState = I_WRITE) and (HREADY_IN = '1')) then\r
+                       hwrite_n_i <= '0';\r
+               else\r
+                       hwrite_n_i <= '1';\r
+               end if;\r
+       end if;\r
+end process hwriteProc;\r
+       \r
+-- HREAD signal (registered)\r
+hreadProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       hread_n_i <= '1';\r
+               elsif ((macInitState = I_READ) and (HREADY_IN = '1')) then\r
+                       hread_n_i <= '0';\r
+               else\r
+                       hread_n_i <= '1';\r
+               end if;\r
+       end if;                 \r
+end process hreadProc;\r
+       \r
+-- HCS signal (registered)\r
+hcsProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       hcs_n_i <= '1';\r
+               elsif ((macInitState = I_WRITE) and (HREADY_IN = '1')) then\r
+                       hcs_n_i <= '0';\r
+               elsif ((macInitState = I_READ) and (HREADY_IN = '1')) then\r
+                       hcs_n_i <= '0';\r
+               else\r
+                       hcs_n_i <= '1';\r
+               end if;\r
+       end if;\r
+end process hcsProc;\r
+       \r
+-- address lines for the initialization memory\r
+macInitMemAddrProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       macInitMemAddr <= "000010";\r
+               elsif (resetAddr = '1') then\r
+                       macInitMemAddr <= "000000";\r
+               else\r
+                       if    (macInitState = I_INCRADDRESS) then\r
+                               macInitMemAddr <= macInitMemAddr + "1";\r
+                       elsif (macInitState = I_IDLE) then\r
+                               macInitMemAddr <= "000010";\r
+                       end if;\r
+               end if;\r
+       end if;\r
+end process macInitMemAddrProc;\r
+\r
+-- address counter reset signal (registered)\r
+resetAddrProc : process (CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if    (RESET = '1') then\r
+                       resetAddr <= '0';\r
+               elsif (macInitState = I_IDLE) then\r
+                       resetAddr <= '0';\r
+               elsif (macInitMemAddr = "110101") then\r
+                       resetAddr <= '1';\r
+               elsif (macInitState = I_PAUSE3) then\r
+                       resetAddr <= '0';\r
+               end if;\r
+       end if;\r
+end process resetAddrProc;\r
+       \r
+macInitMemEn <= '1' when (macCurrentState = M_INIT) \r
+                                       else '0';\r
+\r
+\r
+\r
+-- Outputs\r
+HADDR_OUT          <= b"00" & addrSig;\r
+HDATA_OUT          <= macInitMemQ;\r
+HCS_OUT            <= hcs_n_i;\r
+HWRITE_OUT         <= hwrite_n_i;\r
+HREAD_OUT          <= hread_n_i;\r
+TX_FIFOAVAIL_OUT   <= tx_fifoavail_i;\r
+TX_FIFOEOF_OUT     <= tx_fifoeof_i;\r
+TX_FIFOEMPTY_OUT   <= FifoEmpty;\r
+\r
+BSM_INIT_OUT       <= bsm_init;\r
+BSM_MAC_OUT        <= bsm_mac;\r
+BSM_TRANS_OUT      <= bsm_trans;\r
+DBG_RD_DONE_OUT    <= reading_done;\r
+DBG_INIT_DONE_OUT  <= init_done;\r
+DBG_ENABLED_OUT    <= enabled;\r
+DEBUG_OUT          <= debug;\r
+\r
+end trb_net16_gbe_frame_trans;\r
+\r
+\r
+--MAC : tsmac3\r
+--port map(\r
+--     --------------------------------------------------------------------------\r
+--     --------------- clock, reset, clock enable -------------------------------\r
+--     hclk                            =>      CLK,                                    -- (in) host clock (100MHz)\r
+--     txmac_clk                       =>      TX_MAC_CLK,                             -- (in) GbE clock (125MHz)\r
+--     rxmac_clk                       =>      '0',                                    -- (in) not used (no receiving on GbE)\r
+--     reset_n                         =>      GSR_N,                                  -- (in) global set/reset\r
+--     txmac_clk_en            =>      TSM_TX_CLK_EN_IN,               -- (in) from SGMII core, '1' for 1GbE operation\r
+--     rxmac_clk_en            =>      TSM_RX_CLK_EN_IN,               -- (in) from SGMII core, '1' for 1GbE operation\r
+--     --------------------------------------------------------------------------\r
+--     --------------- SGMII receive interface ----------------------------------\r
+--     rxd                                     =>      x"00",                                  -- (in) receive data from SGMII core\r
+--     rx_dv                           =>      '0',                                    -- (in) data valid from SGMII core\r
+--     rx_er                           =>      '0',                                    -- (in) receive data error \r
+--     col                                     =>      TSM_COL_IN,                             -- (in) collision from SGMII core\r
+--     crs                                     =>      TSM_CRS_IN,                             -- (in) carrier sense from SGMII core\r
+--     --------------------------------------------------------------------------\r
+--     --------------- SGMII transmit interface ---------------------------------\r
+--     txd                                     =>      CH_TXD_OUT,                             -- (out) transmit data to SGMII core\r
+--     tx_en                           =>      CH_TX_EN_OUT,                   -- (out) transmit enable\r
+--     tx_er                           =>      CH_TX_ER_OUT,                   -- (out) transmit error\r
+--     --------------------------------------------------------------------------\r
+--     --------------- CPU configuration interface ------------------------------\r
+--     haddr                           =>      haddr,                                  -- (in) host address bus for configuration\r
+--     hdatain                         =>      hdataout,                               -- (in) host data bus for write accesses\r
+--     hcs_n                           =>      hcs,                                    -- (in) host chip select signal\r
+--     hwrite_n                        =>      hwrite,                                 -- (in) host write strobe signal\r
+--     hread_n                         =>      hread,                                  -- (in) host read strobe signal\r
+--     hdataout                        =>      hdatain,                                -- (out) host data bus for read accesses\r
+--     hdataout_en_n           =>      hdataout_en,                    -- (out) read data valid signal\r
+--     hready_n                        =>      hready,                                 -- (out) data acknowledge signal \r
+--     cpu_if_gbit_en          =>      open,                                   -- (out) status bit \r
+--     --------------------------------------------------------------------------\r
+--     --------------- Transmit FIFO interface ----------------------------------\r
+--     tx_fifodata                     =>      ft_data(7 downto 0),    -- (in) transmit FIFO data bus\r
+--     tx_fifoavail            =>      mac_fifoavail,                  -- (in) transmit FIFO data available\r
+--     tx_fifoeof                      =>      mac_fifoeof,                    -- (in) transmit FIFO end of frame \r
+--     tx_fifoempty            =>      mac_fifoempty,                  -- (in) transmit FIFO empty\r
+--     tx_macread                      =>      mac_tx_rd_en,                   -- (out) transmit FIFO read\r
+--     tx_done                         =>      mac_tx_done,                    -- (out) transmit done (without errors)\r
+--     tx_sndpaustim           =>      x"0000",                                -- (in) PAUSE frame timer\r
+--     tx_sndpausreq           =>      '0',                                    -- (in) PAUSE frame request\r
+--     tx_fifoctrl                     =>      '0',                                    -- (in) FIFO control frame ('0' = data, '1' = control)\r
+--     tx_discfrm                      =>      open,                                   -- (out) discard frame\r
+--     tx_staten                       =>      open,                                   -- (out) transmit statistics vector enable \r
+--     tx_statvec                      =>      open,                                   -- (out) transmit statistics vector\r
+--     --------------------------------------------------------------------------\r
+--     --------------- Receive FIFO interface -----------------------------------\r
+--     rx_dbout                        =>      open,                                   -- (out) receive FIFO data output\r
+--     rx_fifo_full            =>      '0',                                    -- (in) receive FIFO full\r
+--     ignore_pkt                      =>      '0',                                    -- (in) ignore next packet\r
+--     rx_fifo_error           =>      open,                                   -- (out) receive FIFO error\r
+--     rx_stat_vector          =>      open,                                   -- (out) receive statistics vector\r
+--     rx_stat_en                      =>      open,                                   -- (out) receive statistics vector enable\r
+--     rx_write                        =>      open,                                   -- (out) receive FIFO write\r
+--     rx_eof                          =>      open,                                   -- (out) end of frame\r
+--     rx_error                        =>      open                                    -- (out) receive packet error\r
+--);\r
+\r
+\r
+\r
+\r
+\r
+\r
+--MAC : tsmac3\r
+--port map(\r
+----------------- clock and reset port declarations ------------------\r
+--     hclk                            =>      LVDS_CLK_200P,\r
+--     txmac_clk                       =>      TX_MAC_CLK,\r
+--     rxmac_clk                       =>      '0',\r
+--     reset_n                         =>      GSR_N, -- done\r
+--     txmac_clk_en            =>      TSM_TX_CLK_EN_IN, -- done\r
+--     rxmac_clk_en            =>      TSM_RX_CLK_EN_IN, -- done\r
+--------------------- Input signals to the GMII ----------------  NOT USED\r
+--     rxd                                     =>      x"00",\r
+--     rx_dv                           =>      '0',\r
+--     rx_er                           =>      '0',\r
+--     col                                     =>      TSM_COL_IN, -- done\r
+--     crs                                     =>      TSM_CRS_IN, -- done\r
+--     -------------------- Input signals to the CPU I/F -------------------\r
+--     haddr(5 downto 0)       =>      addrSig, -- done\r
+--     haddr(7 downto 6)       =>      "00",\r
+--     hdatain                         =>      macInitMemQ, -- done\r
+--     hcs_n                           =>      hcs_n_i, -- done\r
+--     hwrite_n                        =>      hwrite_n_i, -- done\r
+--     hread_n                         =>      hread_n_i, -- done\r
+------------------ Input signals to the Tx MAC FIFO I/F ---------------\r
+--     tx_fifodata                     =>      DATA_IN(7 downto 0), -- done\r
+--     tx_fifoavail            =>      tx_fifoavail_i, -- done\r
+--     tx_fifoeof                      =>      tx_fifoeof_i, -- done\r
+--     tx_fifoempty            =>      FifoEmpty, -- done\r
+--     tx_sndpaustim           =>      x"0000",\r
+--     tx_sndpausreq           =>      '0',\r
+--     tx_fifoctrl                     =>      '0',  -- always data frame\r
+------------------ Input signals to the Rx MAC FIFO I/F --------------- \r
+--     rx_fifo_full            =>      '0',\r
+--     ignore_pkt                      =>      '0',\r
+---------------------- Output signals from the GMII -----------------------\r
+--     txd                                     =>      CH_TXD_OUT, -- done\r
+--     tx_en                           =>      CH_TX_EN_OUT, -- done\r
+--     tx_er                           =>      CH_TX_ER_OUT, -- done\r
+---------------------- Output signals from the CPU I/F -------------------\r
+--     hdataout                        =>      hdataout_i, -- done\r
+--     hdataout_en_n           =>      hdataout_en_n_i, -- done\r
+--     hready_n                        =>      hready_n_i, -- done\r
+--     cpu_if_gbit_en          =>      gbe_enabled, -- done\r
+------------------ Output signals from the Tx MAC FIFO I/F --------------- \r
+--     tx_macread                      =>      FifoRd, -- done\r
+--     tx_discfrm                      =>      tx_discfrm_i, -- not used\r
+--     tx_staten                       =>      tx_staten_i, -- done\r
+--     tx_statvec                      =>      tx_statvec_i, -- done\r
+--     tx_done                         =>      tx_done_i, -- done\r
+------------------ Output signals from the Rx MAC FIFO I/F ---------------   \r
+--     rx_fifo_error           =>      open,\r
+--     rx_stat_vector          =>      open,\r
+--     rx_dbout                        =>      open,\r
+--     rx_write                        =>      open,\r
+--     rx_stat_en                      =>      open,\r
+--     rx_eof                          =>      rx_eof_i, -- done\r
+--     rx_error                        =>      rx_error_i -- done\r
+--);\r
diff --git a/gbe_ecp2m/trb_net16_gbe_packet_constr.vhd b/gbe_ecp2m/trb_net16_gbe_packet_constr.vhd
new file mode 100755 (executable)
index 0000000..ef7d4e2
--- /dev/null
@@ -0,0 +1,901 @@
+LIBRARY IEEE;\r
+USE IEEE.std_logic_1164.ALL;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+use IEEE.std_logic_arith.all;\r
+\r
+library work;\r
+use work.trb_net_std.all;\r
+use work.trb_net_components.all;\r
+use work.trb_net16_hub_func.all;\r
+\r
+entity trb_net16_gbe_packet_constr is\r
+port(\r
+       RESET                   : in    std_logic;\r
+       CLK                     : in    std_logic;\r
+       -- ports for user logic\r
+       PC_WR_EN_IN             : in    std_logic; -- write into queueConstr from userLogic\r
+       PC_DATA_IN              : in    std_logic_vector(7 downto 0);\r
+       PC_READY_OUT            : out   std_logic;\r
+       PC_START_OF_SUB_IN      : in    std_logic;\r
+       PC_END_OF_DATA_IN       : in    std_logic;\r
+       -- queue and subevent layer headers\r
+       PC_SUB_SIZE_IN          : in    std_logic_vector(31 downto 0); -- store and swap\r
+       PC_PADDING_IN           : in std_logic;  -- gk 29.03.10\r
+       PC_DECODING_IN          : in    std_logic_vector(31 downto 0); -- swap\r
+       PC_EVENT_ID_IN          : in    std_logic_vector(31 downto 0); -- swap\r
+       PC_TRIG_NR_IN           : in    std_logic_vector(31 downto 0); -- store and swap!\r
+       PC_QUEUE_DEC_IN         : in    std_logic_vector(31 downto 0); -- swap\r
+       PC_MAX_FRAME_SIZE_IN    : in    std_logic_vector(15 downto 0); -- DO NOT SWAP\r
+       -- FrameConstructor ports\r
+       FC_WR_EN_OUT            : out   std_logic;\r
+       FC_DATA_OUT             : out   std_logic_vector(7 downto 0);\r
+       FC_H_READY_IN           : in    std_logic;\r
+       FC_READY_IN             : in    std_logic;\r
+       FC_IP_SIZE_OUT          : out   std_logic_vector(15 downto 0);\r
+       FC_UDP_SIZE_OUT         : out   std_logic_vector(15 downto 0);\r
+       FC_IDENT_OUT            : out   std_logic_vector(15 downto 0);\r
+       FC_FLAGS_OFFSET_OUT     : out   std_logic_vector(15 downto 0);\r
+       FC_SOD_OUT              : out   std_logic;\r
+       FC_EOD_OUT              : out   std_logic;\r
+       -- debug ports\r
+       BSM_CONSTR_OUT          : out   std_logic_vector(3 downto 0);\r
+       BSM_LOAD_OUT            : out   std_logic_vector(3 downto 0);\r
+       BSM_SAVE_OUT            : out   std_logic_vector(3 downto 0);\r
+       DBG_SHF_EMPTY           : out   std_logic;\r
+       DBG_SHF_FULL            : out   std_logic;\r
+       DBG_SHF_WR_EN           : out   std_logic;\r
+       DBG_SHF_RD_EN           : out   std_logic;\r
+       DBG_SHF_Q               : out   std_logic_vector(7 downto 0);\r
+       DBG_DF_EMPTY            : out   std_logic;\r
+       DBG_DF_FULL             : out   std_logic;\r
+       DBG_DF_WR_EN            : out   std_logic;\r
+       DBG_DF_RD_EN            : out   std_logic;\r
+       DBG_DF_Q                : out   std_logic_vector(7 downto 0);\r
+       DBG_ALL_CTR             : out   std_logic_vector(4 downto 0);\r
+       DBG_SUB_CTR             : out   std_logic_vector(4 downto 0);\r
+       DBG_MY_CTR              : out   std_logic_vector(1 downto 0);\r
+       DBG_BYTES_LOADED        : out   std_logic_vector(15 downto 0);\r
+       DBG_SIZE_LEFT           : out   std_logic_vector(31 downto 0);\r
+       DBG_SUB_SIZE_TO_SAVE    : out   std_logic_vector(31 downto 0);\r
+       DBG_SUB_SIZE_LOADED     : out   std_logic_vector(31 downto 0);\r
+       DBG_SUB_BYTES_LOADED    : out   std_logic_vector(31 downto 0);\r
+       DBG_QUEUE_SIZE          : out   std_logic_vector(31 downto 0);\r
+       DBG_ACT_QUEUE_SIZE      : out   std_logic_vector(31 downto 0);\r
+       DEBUG_OUT               : out   std_logic_vector(31 downto 0)\r
+);\r
+end trb_net16_gbe_packet_constr;\r
+\r
+architecture trb_net16_gbe_packet_constr of trb_net16_gbe_packet_constr is\r
+\r
+-- FIFO for packet payload data\r
+component fifo_64kx8\r
+port (\r
+       Data        : in  std_logic_vector(7 downto 0); \r
+       WrClock     : in  std_logic; \r
+       RdClock     : in  std_logic; \r
+       WrEn        : in  std_logic; \r
+       RdEn        : in  std_logic; \r
+       Reset       : in  std_logic; \r
+       RPReset     : in  std_logic; \r
+       Q           : out  std_logic_vector(7 downto 0); \r
+       Empty       : out  std_logic; \r
+       Full        : out  std_logic\r
+);\r
+end component;\r
+\r
+-- FIFO for SubEventHeader information\r
+component fifo_2048x8 is\r
+port (\r
+       Data    : in    std_logic_vector(7 downto 0); \r
+       WrClock : in    std_logic; \r
+       RdClock : in    std_logic; \r
+       WrEn    : in    std_logic; \r
+       RdEn    : in    std_logic; \r
+       Reset   : in    std_logic; \r
+       RPReset : in    std_logic; \r
+       Q       : out   std_logic_vector(7 downto 0); \r
+       Empty   : out   std_logic; \r
+       Full    : out   std_logic\r
+);\r
+end component;\r
+\r
+signal df_wr_en             : std_logic;\r
+signal df_rd_en             : std_logic;\r
+signal df_q                 : std_logic_vector(7 downto 0);\r
+signal df_q_reg             : std_logic_vector(7 downto 0);\r
+signal df_empty             : std_logic;\r
+signal df_full              : std_logic;\r
+\r
+signal fc_data              : std_logic_vector(7 downto 0);\r
+signal fc_wr_en             : std_logic;\r
+signal fc_sod               : std_logic;\r
+signal fc_eod               : std_logic;\r
+signal fc_ident             : std_logic_vector(15 downto 0); -- change this to own counter!\r
+signal fc_flags_offset      : std_logic_vector(15 downto 0);\r
+\r
+signal shf_data             : std_logic_vector(7 downto 0);\r
+signal shf_wr_en            : std_logic;\r
+signal shf_rd_en            : std_logic;\r
+signal shf_q                : std_logic_vector(7 downto 0);\r
+signal shf_empty            : std_logic;\r
+signal shf_full             : std_logic;\r
+\r
+type constructStates        is  (CIDLE, SAVE_DATA, WAIT_FOR_LOAD);\r
+signal constructCurrentState, constructNextState : constructStates;\r
+signal constr_state         : std_logic_vector(3 downto 0);\r
+signal all_int_ctr          : integer range 0 to 31;\r
+signal all_ctr              : std_logic_vector(4 downto 0);\r
+\r
+type saveSubStates      is  (SIDLE, SAVE_SIZE, SAVE_DECODING, SAVE_ID, SAVE_TRIG_NR, SAVE_TERM);\r
+signal saveSubCurrentState, saveSubNextState : saveSubStates;\r
+signal save_state           : std_logic_vector(3 downto 0);\r
+signal sub_int_ctr          : integer range 0 to 31;\r
+signal sub_ctr              : std_logic_vector(4 downto 0);\r
+signal my_int_ctr                      : integer range 0 to 3;\r
+signal my_ctr               : std_logic_vector(1 downto 0);\r
+\r
+type loadStates         is  (LIDLE, WAIT_FOR_FC, PUT_Q_LEN, PUT_Q_DEC, LOAD_SUB, PREP_DATA, LOAD_DATA, DIVIDE, LOAD_TERM, CLEANUP);\r
+signal loadCurrentState, loadNextState: loadStates;\r
+signal load_state           : std_logic_vector(3 downto 0);\r
+\r
+signal queue_size           : std_logic_vector(31 downto 0); -- sum of all subevents sizes plus their headers and queue headers and termination\r
+signal queue_size_temp      : std_logic_vector(31 downto 0);\r
+signal actual_queue_size    : std_logic_vector(31 downto 0); -- queue size used during loading process when queue_size is no more valid\r
+signal bytes_loaded         : std_logic_vector(15 downto 0); -- size of actual constructing frame\r
+signal sub_size_to_save     : std_logic_vector(31 downto 0); -- size of subevent to save to shf\r
+signal sub_size_loaded      : std_logic_vector(31 downto 0); -- size of subevent actually being transmitted\r
+signal sub_bytes_loaded     : std_logic_vector(31 downto 0); -- amount of bytes of actual subevent sent \r
+signal actual_packet_size   : std_logic_vector(15 downto 0); -- actual size of whole udp packet\r
+signal size_left            : std_logic_vector(31 downto 0);\r
+signal fc_ip_size           : std_logic_vector(15 downto 0);\r
+signal fc_udp_size          : std_logic_vector(15 downto 0);\r
+signal max_frame_size       : std_logic_vector(15 downto 0);\r
+signal divide_position      : std_logic_vector(1 downto 0); -- 00->data, 01->sub, 11->term\r
+signal debug                : std_logic_vector(31 downto 0);\r
+signal pc_ready             : std_logic;\r
+\r
+signal pc_sub_size          : std_logic_vector(31 downto 0);\r
+signal pc_trig_nr           : std_logic_vector(31 downto 0);\r
+signal pc_padding           : std_logic; -- gk 29.03.10\r
+signal rst_after_sub_comb   : std_logic;  -- gk 08.04.10\r
+signal rst_after_sub        : std_logic;  -- gk 08.04.10\r
+signal load_int_ctr         : integer range 0 to 3;  -- gk 08.04.10\r
+\r
+begin\r
+\r
+-- Fakes\r
+debug <= (others => '0');\r
+\r
+my_int_ctr <= (3 - to_integer(to_unsigned(sub_int_ctr, 2))); -- reverse byte order\r
+load_int_ctr <= (3 - to_integer(to_unsigned(all_int_ctr, 2)));  -- gk 08.04.10\r
+\r
+all_ctr <= std_logic_vector(to_unsigned(all_int_ctr, all_ctr'length)); -- for debugging\r
+sub_ctr <= std_logic_vector(to_unsigned(sub_int_ctr, sub_ctr'length)); -- for debugging\r
+my_ctr  <= std_logic_vector(to_unsigned(my_int_ctr, my_ctr'length)); -- for debugging\r
+\r
+pc_padding <= PC_PADDING_IN; -- gk 29.03.10  used to correct the subevent size written to subevent headers\r
+\r
+-- Fixed numbers\r
+\r
+--max_frame_size <= x"0578"; -- 1400 \r
+max_frame_size <= PC_MAX_FRAME_SIZE_IN;\r
+\r
+-- Ready signal for PacketConstructor\r
+pc_ready <= '1' when (constructCurrentState = CIDLE) and (df_empty = '1') else '0';\r
+\r
+-- store event information on Start_of_Subevent\r
+THE_EVT_INFO_STORE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if( PC_START_OF_SUB_IN = '1' ) then\r
+                       pc_sub_size <= PC_SUB_SIZE_IN;\r
+                       pc_trig_nr  <= PC_TRIG_NR_IN;\r
+               end if;\r
+       end if;\r
+end process;\r
+\r
+-- Data FIFO for incoming packet data from IPU buffer\r
+DATA_FIFO : fifo_64kx8\r
+port map(\r
+       Data        =>  PC_DATA_IN,\r
+       WrClock     =>  CLK,\r
+       RdClock     =>  CLK,\r
+       WrEn        =>  df_wr_en,\r
+       RdEn        =>  df_rd_en,\r
+       Reset       =>  RESET,\r
+       RPReset     =>  RESET,\r
+       Q           =>  df_q,\r
+       Empty       =>  df_empty,\r
+       Full        =>  df_full\r
+);\r
+-- Write enable for the data FIFO\r
+-- !!!combinatorial signal!!!\r
+-- could be avoided as IPU2GBE does only send data in case of PC_READY.\r
+df_wr_en <= '1' when ((PC_WR_EN_IN = '1') and (constructCurrentState /= WAIT_FOR_LOAD)) \r
+                               else '0';\r
+\r
+-- Output register for data FIFO\r
+dfQProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               df_q_reg <= df_q;\r
+       end if;\r
+end process dfQProc;\r
+\r
+-- Construction state machine\r
+constructMachineProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       constructCurrentState <= CIDLE;\r
+               else\r
+                       constructCurrentState <= constructNextState;\r
+               end if;\r
+       end if;\r
+end process constructMachineProc;\r
+\r
+constructMachine : process(constructCurrentState, PC_WR_EN_IN, PC_END_OF_DATA_IN, loadCurrentState, saveSubCurrentState, sub_int_ctr)\r
+begin\r
+       case constructCurrentState is\r
+               when CIDLE =>\r
+                       constr_state <= x"0";\r
+                       if( PC_WR_EN_IN = '1' ) then\r
+                               constructNextState <= SAVE_DATA;\r
+                       else\r
+                               constructNextState <= CIDLE;\r
+                       end if;\r
+               when SAVE_DATA =>\r
+                       constr_state <= x"1";\r
+                       if( PC_END_OF_DATA_IN = '1' ) then\r
+                               constructNextState <= WAIT_FOR_LOAD;\r
+                       else\r
+                               constructNextState <= SAVE_DATA;\r
+                       end if;\r
+               when WAIT_FOR_LOAD =>\r
+                       constr_state <= x"2";\r
+                       if( (df_empty = '1') and (loadCurrentState = LIDLE) ) then -- waits until the whole packet is transmitted\r
+                               constructNextState <= CIDLE;\r
+                       else\r
+                               constructNextState <= WAIT_FOR_LOAD;\r
+                       end if;\r
+               when others =>\r
+                       constr_state <= x"f";\r
+                       constructNextState <= CIDLE;\r
+       end case;\r
+end process constructMachine;\r
+\r
+\r
+--***********************\r
+--      SUBEVENT HEADERS WRITE AND READ\r
+--***********************\r
+\r
+SUBEVENT_HEADERS_FIFO : fifo_2048x8\r
+port map(\r
+       Data        =>  shf_data,\r
+       WrClock     =>  CLK,\r
+       RdClock     =>  CLK,\r
+       WrEn        =>  shf_wr_en,\r
+       RdEn        =>  shf_rd_en,\r
+       Reset       =>  RESET,\r
+       RPReset     =>  RESET,\r
+       Q           =>  shf_q,\r
+       Empty       =>  shf_empty,\r
+       Full        =>  shf_full\r
+);\r
+\r
+-- write enable for SHF \r
+shf_wr_en <= '1' when ((saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA))\r
+                                else '0';\r
+\r
+-- data multiplexing for SHF (convert 32bit LWs to 8bit)\r
+-- CHANGED. \r
+-- The SubEventHeader (4x 32bit is stored in [MSB:LSB] now, same byte order as data from PC.\r
+shfDataProc : process(saveSubCurrentState, sub_size_to_save, PC_DECODING_IN, PC_EVENT_ID_IN, \r
+                                         pc_trig_nr, my_int_ctr, fc_data)\r
+begin\r
+       case saveSubCurrentState is\r
+               when SIDLE          =>  shf_data <= x"ac";\r
+               when SAVE_SIZE      =>  shf_data <= sub_size_to_save(my_int_ctr * 8 + 7 downto my_int_ctr * 8);\r
+               when SAVE_DECODING  =>  shf_data <= PC_DECODING_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8);\r
+               when SAVE_ID        =>  shf_data <= PC_EVENT_ID_IN(my_int_ctr * 8 + 7 downto my_int_ctr * 8);\r
+               when SAVE_TRIG_NR   =>  shf_data <= pc_trig_nr(my_int_ctr * 8 + 7 downto my_int_ctr * 8);\r
+               when SAVE_TERM      =>  shf_data <= fc_data;\r
+               when others         =>  shf_data <= x"00";\r
+       end case;\r
+end process shfDataProc;\r
+\r
+saveSubMachineProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       saveSubCurrentState <= SIDLE;\r
+               else\r
+                       saveSubCurrentState <= saveSubNextState;\r
+               end if;\r
+       end if;\r
+end process saveSubMachineProc;\r
+\r
+saveSubMachine : process(saveSubCurrentState, PC_START_OF_SUB_IN, sub_int_ctr, loadCurrentState, FC_H_READY_IN)\r
+begin\r
+       case saveSubCurrentState is\r
+               when SIDLE =>\r
+                       save_state <= x"0";\r
+                       if (PC_START_OF_SUB_IN = '1') then\r
+                               saveSubNextState <= SAVE_SIZE;\r
+                       -- this branch is dangerous!\r
+                       elsif (loadCurrentState = WAIT_FOR_FC) and (FC_H_READY_IN = '1') then -- means that loadCurrentState is put_q_len\r
+                               saveSubNextState <= SAVE_TERM;\r
+                       else\r
+                               saveSubNextState <= SIDLE;\r
+                       end if;\r
+               when SAVE_SIZE =>\r
+                       save_state <= x"1";\r
+                       if (sub_int_ctr = 3) then\r
+                               saveSubNextState <= SAVE_DECODING;\r
+                       else\r
+                               saveSubNextState <= SAVE_SIZE;\r
+                       end if;\r
+               when SAVE_DECODING =>\r
+                       save_state <= x"2";\r
+                       if (sub_int_ctr = 3) then\r
+                               saveSubNextState <= SAVE_ID;\r
+                       else\r
+                               saveSubNextState <= SAVE_DECODING;\r
+                       end if;\r
+               when SAVE_ID =>\r
+                       save_state <= x"3";\r
+                       if (sub_int_ctr = 3) then\r
+                               saveSubNextState <= SAVE_TRIG_NR;\r
+                       else\r
+                               saveSubNextState <= SAVE_ID;\r
+                       end if;\r
+               when SAVE_TRIG_NR =>\r
+                       save_state <= x"4";\r
+                       if (sub_int_ctr = 3) then\r
+                               saveSubNextState <= SIDLE;\r
+                       else\r
+                               saveSubNextState <= SAVE_TRIG_NR;\r
+                       end if;\r
+               when SAVE_TERM =>\r
+                       save_state <= x"5";\r
+                       if (sub_int_ctr = 31) then\r
+                               saveSubNextState <= SIDLE;\r
+                       else\r
+                               saveSubNextState <= SAVE_TERM;\r
+                       end if;\r
+               when others =>\r
+                       save_state <= x"f";\r
+                       saveSubNextState <= SIDLE;\r
+       end case;\r
+end process;\r
+\r
+-- This counter is used for breaking down 32bit information words into 8bit bytes for \r
+-- storing them in the SHF.\r
+-- It is also used for the termination 32byte sequence.\r
+subIntProc: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (saveSubCurrentState = SIDLE) then\r
+                       sub_int_ctr <= 0;\r
+               elsif (sub_int_ctr = 3) and (saveSubCurrentState /= SAVE_TERM) then\r
+                       sub_int_ctr <= 0;\r
+               elsif (sub_int_ctr = 31) and (saveSubCurrentState = SAVE_TERM) then\r
+                       sub_int_ctr <= 0;\r
+               elsif (saveSubCurrentState /= SIDLE) and (loadCurrentState /= PREP_DATA) then\r
+                       sub_int_ctr <= sub_int_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process subIntProc;\r
+\r
+--***********************\r
+--      SIZE COUNTERS FOR SAVING SIDE\r
+--***********************\r
+\r
+-- gk 29.03.10 the subevent size saved to its headers cannot contain padding bytes but they are included in pc_sub_size\r
+-- that's why they are removed if pc_padding flag is asserted\r
+sub_size_to_save <= x"10" + pc_sub_size when pc_padding = '0' else x"c" + pc_sub_size; -- subevent headers + data\r
+\r
+-- BUG HERE BUG HERE BUG HERE BUG HERE\r
+-- gk 29.03.10 no changes here because the queue size should contain the padding bytes of subevents\r
+queueSizeProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = CLEANUP) then\r
+                       queue_size <= x"00000028";  -- + 8B for queue headers and 20B for termination\r
+               elsif (saveSubCurrentState = SAVE_SIZE) and (sub_int_ctr = 3) then\r
+                       queue_size <= queue_size + pc_sub_size + x"10"; -- + 16B for each subevent headers\r
+               end if;\r
+       end if;\r
+end process queueSizeProc;\r
+\r
+\r
+--***********************\r
+--      LOAD DATA COMBINED WITH HEADERS INTO FC, QUEUE TRANSMISSION\r
+--***********************\r
+\r
+loadMachineProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       loadCurrentState <= LIDLE;\r
+               else\r
+                       loadCurrentState <= loadNextState;\r
+               end if;\r
+       end if;\r
+end process loadMachineProc;\r
+\r
+loadMachine : process(loadCurrentState, constructCurrentState, all_int_ctr, df_empty,\r
+                                         sub_bytes_loaded, sub_size_loaded, size_left, FC_H_READY_IN, max_frame_size, \r
+                                         bytes_loaded, divide_position)\r
+begin\r
+       case loadCurrentState is\r
+               when LIDLE =>\r
+                       load_state <= x"0";\r
+                       if ((constructCurrentState = WAIT_FOR_LOAD) and (df_empty = '0')) then\r
+                               loadNextState <= WAIT_FOR_FC;\r
+                       else\r
+                               loadNextState <= LIDLE;\r
+                       end if;\r
+               when WAIT_FOR_FC =>\r
+                       load_state <= x"1";\r
+                       if (FC_H_READY_IN = '1') then\r
+                               loadNextState <= PUT_Q_LEN;\r
+                       else\r
+                               loadNextState <= WAIT_FOR_FC;\r
+                       end if;\r
+               when PUT_Q_LEN =>\r
+                       load_state <= x"2";\r
+                       if (all_int_ctr = 3) then\r
+                               loadNextState <= PUT_Q_DEC;\r
+                       else\r
+                               loadNextState <= PUT_Q_LEN;\r
+                       end if;\r
+               when PUT_Q_DEC =>\r
+                       load_state <= x"3";\r
+                       if (all_int_ctr = 3) then\r
+                               loadNextState <= LOAD_SUB;\r
+                       else\r
+                               loadNextState <= PUT_Q_DEC;\r
+                       end if;\r
+               when LOAD_SUB =>\r
+                       load_state <= x"4";\r
+                       if (bytes_loaded = max_frame_size - 1) then\r
+                               loadNextState <= DIVIDE;\r
+                       elsif (all_int_ctr = 15) then\r
+                               loadNextState <= PREP_DATA;\r
+                       else\r
+                               loadNextState <= LOAD_SUB;\r
+                       end if;\r
+               when PREP_DATA =>\r
+                       load_state <= x"5";\r
+                       loadNextState <= LOAD_DATA;\r
+               when LOAD_DATA =>\r
+                       load_state <= x"6";\r
+                       if (bytes_loaded = max_frame_size - 1) then\r
+                               loadNextState <= DIVIDE;\r
+                       elsif (sub_bytes_loaded = sub_size_loaded) then  -- if all subevent bytes are loaded\r
+                               if (size_left = x"00000021") then  -- and there is no more data, only termination left\r
+                                       loadNextState <= LOAD_TERM;  -- add termination and close packet\r
+                               else -- there is more data in fifo\r
+                                       loadNextState <= LOAD_SUB;  -- add another subevent\r
+                               end if;\r
+                       else\r
+                               loadNextState <= LOAD_DATA;\r
+                       end if;\r
+               when DIVIDE =>\r
+                       load_state <= x"7";\r
+                       if (FC_H_READY_IN = '1') then\r
+                               if (divide_position = "00") then\r
+                                       loadNextState <= PREP_DATA;\r
+                               elsif (divide_position = "01") then\r
+                                       loadNextState <= LOAD_SUB;\r
+                               else\r
+                                       loadNextState <= LOAD_TERM;\r
+                               end if;\r
+                       else\r
+                               loadNextState <= DIVIDE;\r
+                       end if;\r
+               when LOAD_TERM =>\r
+                       load_state <= x"8";\r
+                       if (bytes_loaded = max_frame_size - 1) and (all_int_ctr /= 31) then\r
+                               loadNextState <= DIVIDE;\r
+                       elsif (all_int_ctr = 31) then\r
+                               loadNextState <= CLEANUP;\r
+                       else\r
+                               loadNextState <= LOAD_TERM;\r
+                       end if;\r
+               when CLEANUP =>\r
+                       load_state <= x"9";\r
+                       loadNextState <= LIDLE;\r
+               when others =>\r
+                       load_state <= x"f";\r
+                       loadNextState <= LIDLE;\r
+       end case;\r
+end process loadMachine;\r
+\r
+dividePositionProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       divide_position <= "00";\r
+               elsif (bytes_loaded = max_frame_size - 1) then\r
+                       if (loadCurrentState = LIDLE) then\r
+                               divide_position <= "00";\r
+                       elsif (loadCurrentState = LOAD_DATA) then\r
+                               if (sub_bytes_loaded = sub_size_loaded) and (size_left = x"00000021") then\r
+                                       divide_position <= "11";\r
+                               elsif  (sub_bytes_loaded = sub_size_loaded) and (size_left /= x"00000021") then\r
+                                       divide_position <= "01";\r
+                               else\r
+                                       divide_position <= "00";\r
+                               end if;\r
+                       elsif (loadCurrentState = LOAD_SUB) then\r
+                               if (all_int_ctr = 15) then\r
+                                       divide_position <= "00";\r
+                               else\r
+                                       divide_position <= "01";\r
+                               end if;\r
+                       elsif (loadCurrentState = LOAD_TERM) then\r
+                               divide_position <= "11";\r
+                       end if;\r
+               end if;\r
+       end if;\r
+end process dividePositionProc;\r
+\r
+allIntCtrProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               case loadCurrentState is\r
+\r
+                       when LIDLE => all_int_ctr <= 0;\r
+\r
+                       when WAIT_FOR_FC => all_int_ctr <= 0;\r
+\r
+                       when PUT_Q_LEN =>\r
+                               if (all_int_ctr = 3) then\r
+                                       all_int_ctr <= 0;\r
+                               else\r
+                                       all_int_ctr <= all_int_ctr + 1;\r
+                               end if;\r
+\r
+                       when PUT_Q_DEC =>\r
+                               if (all_int_ctr = 3) then\r
+                                       all_int_ctr <= 0;\r
+                               else\r
+                                       all_int_ctr <= all_int_ctr + 1;\r
+                               end if;\r
+\r
+                       when LOAD_SUB =>\r
+                               if (all_int_ctr = 15) then\r
+                                       all_int_ctr <= 0;\r
+                               else\r
+                                       all_int_ctr <= all_int_ctr + 1;\r
+                               end if;\r
+\r
+                       when LOAD_DATA => all_int_ctr <= 0;\r
+\r
+                       when LOAD_TERM =>\r
+                               if (all_int_ctr = 31) then\r
+                                       all_int_ctr <= 0;\r
+                               else\r
+                                       all_int_ctr <= all_int_ctr + 1;\r
+                               end if;\r
+\r
+                       when DIVIDE => null; --all_int_ctr <= all_int_ctr;\r
+\r
+                       when CLEANUP => all_int_ctr <= 0;\r
+\r
+                       when PREP_DATA => all_int_ctr <= 0; \r
+               end case;\r
+       end if;\r
+end process allIntCtrProc;\r
+\r
+dfRdEnProc : process(loadCurrentState, bytes_loaded, max_frame_size, sub_bytes_loaded, \r
+                                        sub_size_loaded, all_int_ctr)\r
+begin\r
+       if (loadCurrentState = LOAD_DATA) then\r
+--      if (bytes_loaded >= max_frame_size - x"1") then\r
+--          df_rd_en <= '0';\r
+--      elsif (sub_bytes_loaded >= sub_size_loaded) then\r
+--          df_rd_en <= '0';\r
+               if (bytes_loaded = max_frame_size - x"1") then\r
+                       df_rd_en <= '0';\r
+               elsif (sub_bytes_loaded = sub_size_loaded) then\r
+                       df_rd_en <= '0';\r
+               else\r
+                       df_rd_en <= '1';\r
+               end if;\r
+       elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 15) and (bytes_loaded /= max_frame_size - x"1") then\r
+               df_rd_en <= '1';\r
+       elsif (loadCurrentState = PREP_DATA) then\r
+               df_rd_en <= '1';\r
+       else\r
+               df_rd_en <= '0';\r
+       end if;\r
+end process dfRdEnProc;\r
+\r
+shfRdEnProc : process(loadCurrentState, all_int_ctr)\r
+begin\r
+       if (loadCurrentState = LOAD_SUB) then\r
+               shf_rd_en <= '1';\r
+       elsif (loadCurrentState = LOAD_TERM) and (all_int_ctr < 31) then\r
+               shf_rd_en <= '1';\r
+       elsif (loadCurrentState = PUT_Q_DEC) and (all_int_ctr = 3) then\r
+               shf_rd_en <= '1';\r
+       else\r
+               shf_rd_en <= '0';\r
+       end if;\r
+end process shfRdEnProc;\r
+\r
+\r
+fcWrEnProc : process(loadCurrentState)\r
+begin\r
+       if (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) then\r
+               fc_wr_en <= '1';\r
+       elsif (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_TERM) then\r
+               fc_wr_en <= '1';\r
+       else\r
+               fc_wr_en <= '0';\r
+       end if;\r
+end process fcWrEnProc;\r
+\r
+-- was all_int_ctr\r
+fcDataProc : process(loadCurrentState, queue_size_temp, PC_QUEUE_DEC_IN, shf_q, df_q_reg, load_int_ctr)\r
+begin\r
+       case loadCurrentState is\r
+               when LIDLE          =>  fc_data <=  x"af";\r
+               when WAIT_FOR_FC    =>  fc_data <=  x"bf";\r
+               -- gk 08.04.10 my_int_ctr changed to load_int_ctr\r
+               when PUT_Q_LEN      =>  fc_data <=  queue_size_temp(load_int_ctr * 8 + 7 downto load_int_ctr * 8);\r
+               when PUT_Q_DEC      =>  fc_data <=  PC_QUEUE_DEC_IN(load_int_ctr * 8 + 7 downto load_int_ctr * 8);\r
+               when LOAD_SUB       =>  fc_data <=  shf_q;\r
+               when PREP_DATA      =>  fc_data <=  df_q_reg;\r
+               when LOAD_DATA      =>  fc_data <=  df_q_reg;\r
+               when LOAD_TERM      =>  fc_data <=  shf_q;\r
+               when DIVIDE         =>  fc_data <=  x"cf";\r
+               when CLEANUP        =>  fc_data <=  x"df";\r
+               when others         =>  fc_data <=  x"00";\r
+       end case;\r
+end process fcDataProc;\r
+\r
+\r
+--***********************\r
+--      SIZE COUNTERS FOR LOADING SIDE\r
+--***********************\r
+\r
+queue_size_temp <= queue_size - x"20"; -- size of data without termination\r
+\r
+-- gk 08.04.10\r
+rst_after_sub_comb <= '1' when (loadCurrentState = LIDLE) or\r
+                       ((loadCurrentState = LOAD_DATA) and (sub_bytes_loaded = sub_size_loaded) and (size_left /= x"00000021"))\r
+                       else '0';\r
+\r
+-- gk 08.04.10\r
+RST_AFTER_SUB_PROC : process(CLK)\r
+begin\r
+       if(rising_edge(CLK)) then\r
+               if(RESET = '1') then\r
+                       rst_after_sub <= '0';\r
+               else\r
+                       rst_after_sub <= rst_after_sub_comb;\r
+               end if;\r
+       end if;\r
+end process RST_AFTER_SUB_PROC;\r
+\r
+-- counts all bytes loaded to divide data into frames\r
+bytesLoadedProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = DIVIDE) or (loadCurrentState = CLEANUP) then\r
+                       bytes_loaded <= x"0000";\r
+               elsif (loadCurrentState = PUT_Q_LEN) or (loadCurrentState = PUT_Q_DEC) or (loadCurrentState = LOAD_DATA) or (loadCurrentState = LOAD_SUB) or (loadCurrentState = LOAD_TERM) then\r
+                       bytes_loaded <= bytes_loaded + x"1";\r
+               end if;\r
+       end if;\r
+end process bytesLoadedProc;\r
+\r
+-- size of subevent loaded from memory\r
+subSizeLoadedProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then  -- gk 08.04.10\r
+                       sub_size_loaded <= x"00000000";\r
+               elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr < 4) then\r
+                       -- was all_int_ctr\r
+                       -- gk 08.04.10 my_int_ctr changed to load_int_ctr\r
+                       sub_size_loaded(7 + load_int_ctr * 8 downto load_int_ctr * 8) <= shf_q;\r
+               -- gk 29.03.10 here the padding bytes have to be added to the loadedSize in order to load the correct amount of bytes from fifo\r
+               elsif (loadCurrentState = LOAD_SUB) and (all_int_ctr = 5) and (sub_size_loaded(2) = '1') then\r
+                       sub_size_loaded <= sub_size_loaded + x"4";\r
+               end if;\r
+       end if;\r
+end process subSizeLoadedProc;\r
+\r
+-- counts only raw data bytes being loaded\r
+subBytesLoadedProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = LIDLE) or (sub_bytes_loaded = sub_size_loaded) or (loadCurrentState = CLEANUP) or (rst_after_sub = '1') then  -- gk 08.04.10\r
+                       sub_bytes_loaded <= x"00000011";  -- subevent headers doesnt count\r
+               elsif (loadCurrentState = LOAD_DATA) then\r
+                       sub_bytes_loaded <= sub_bytes_loaded + x"1";\r
+               end if;\r
+       end if;\r
+end process subBytesLoadedProc;\r
+\r
+-- counts the size of the large udp packet\r
+actualPacketProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then\r
+                       actual_packet_size <= x"0008";\r
+               elsif (fc_wr_en = '1') then\r
+                       actual_packet_size <= actual_packet_size + x"1";\r
+               end if;\r
+       end if;\r
+end process actualPacketProc;\r
+\r
+actualQueueSizeProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = CLEANUP) then\r
+                       actual_queue_size <= (others => '0');\r
+               elsif (loadCurrentState = LIDLE) then\r
+                       actual_queue_size <= queue_size;\r
+               end if;\r
+       end if;\r
+end process actualQueueSizeProc;\r
+\r
+-- amount of bytes left to send in current packet\r
+sizeLeftProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = CLEANUP) then\r
+                       size_left <= (others => '0');\r
+               elsif (loadCurrentState = LIDLE) then\r
+                       size_left <= queue_size;\r
+               elsif (fc_wr_en = '1') then\r
+                       size_left <= size_left - 1;\r
+               end if;\r
+       end if;\r
+end process sizeLeftProc;\r
+\r
+-- HOT FIX: don't rely on CTS information, count the packets on your own.\r
+-- In this case, we increment the fragmented packet ID with EOD from ipu2gbe.\r
+THE_FC_IDENT_COUNTER_PROC: process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       fc_ident <= (others => '0');\r
+               elsif (PC_END_OF_DATA_IN = '1') then\r
+                       fc_ident <= fc_ident + 1;\r
+               end if;\r
+       end if;\r
+end process THE_FC_IDENT_COUNTER_PROC;\r
+\r
+fc_flags_offset(15 downto 14) <= "00";\r
+\r
+moreFragmentsProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then\r
+                       fc_flags_offset(13) <= '0';\r
+               elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1')) then\r
+                       if ((actual_queue_size - actual_packet_size) < max_frame_size) then\r
+                               fc_flags_offset(13) <= '0';  -- no more fragments\r
+                       else\r
+                               fc_flags_offset(13) <= '1';  -- more fragments\r
+                       end if;\r
+               end if;\r
+       end if;\r
+end process moreFragmentsProc;\r
+\r
+eodProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       fc_eod <= '0';\r
+               elsif (loadCurrentState = LOAD_DATA) and (bytes_loaded = max_frame_size - 2) then\r
+                       fc_eod <= '1';\r
+               elsif (loadCurrentState = LOAD_SUB) and (bytes_loaded = max_frame_size - 2) then\r
+                       fc_eod <= '1';\r
+               elsif (loadCurrentState = LOAD_TERM) and ((bytes_loaded = max_frame_size - 2) or (all_int_ctr = 30)) then\r
+                       fc_eod <= '1';\r
+               else\r
+                       fc_eod <= '0';\r
+               end if;\r
+       end if;\r
+end process eodProc;\r
+\r
+sodProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       fc_sod <= '0';\r
+               elsif (loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1') then\r
+                       fc_sod <= '1';\r
+               elsif (loadCurrentState = DIVIDE) and (FC_READY_IN = '1') then\r
+                       fc_sod <= '1';\r
+               else\r
+                       fc_sod <= '0';\r
+               end if;\r
+       end if;\r
+end process sodProc;\r
+\r
+offsetProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') or (loadCurrentState = LIDLE) or (loadCurrentState = CLEANUP) then\r
+                       fc_flags_offset(12 downto 0) <= (others => '0');\r
+               elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) then\r
+                       fc_flags_offset(12 downto 0) <= actual_packet_size(15 downto 3);\r
+               end if;\r
+       end if;\r
+end process offsetProc;\r
+\r
+fcIPSizeProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if (RESET= '1') then\r
+                       fc_ip_size <= (others => '0');\r
+               elsif ((loadCurrentState = DIVIDE) and (FC_READY_IN = '1')) or ((loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1')) then\r
+                       if (size_left >= max_frame_size) then\r
+                               fc_ip_size <= max_frame_size;\r
+                       else\r
+                               fc_ip_size <= size_left(15 downto 0);\r
+                       end if;\r
+               end if;\r
+       end if;\r
+end process fcIPSizeProc;\r
+\r
+fcUDPSizeProc : process(CLK)\r
+       begin\r
+       if rising_edge(CLK) then\r
+               if (RESET = '1') then\r
+                       fc_udp_size <= (others => '0');\r
+               elsif (loadCurrentState = WAIT_FOR_FC) and (FC_READY_IN = '1') then\r
+                       fc_udp_size <= queue_size(15 downto 0);\r
+               end if;\r
+       end if;\r
+end process fcUDPSizeProc;\r
+\r
+\r
+-- outputs\r
+PC_READY_OUT                  <= pc_ready;\r
+FC_WR_EN_OUT                  <= fc_wr_en;\r
+FC_DATA_OUT                   <= fc_data;\r
+FC_IP_SIZE_OUT                <= fc_ip_size;\r
+FC_UDP_SIZE_OUT               <= fc_udp_size;\r
+FC_IDENT_OUT(15 downto 8)     <= fc_ident(7 downto 0);\r
+FC_IDENT_OUT(7 downto 0)      <= fc_ident(15 downto 8);\r
+FC_FLAGS_OFFSET_OUT           <= fc_flags_offset;\r
+FC_SOD_OUT                    <= fc_sod;\r
+FC_EOD_OUT                    <= fc_eod;\r
+BSM_CONSTR_OUT                <= constr_state;\r
+BSM_LOAD_OUT                  <= load_state;\r
+BSM_SAVE_OUT                  <= save_state;\r
+DBG_SHF_EMPTY                 <= shf_empty;\r
+DBG_SHF_FULL                  <= shf_full;\r
+DBG_SHF_WR_EN                 <= shf_wr_en;\r
+DBG_SHF_RD_EN                 <= shf_rd_en;\r
+DBG_SHF_Q                     <= shf_q;\r
+DBG_DF_EMPTY                  <= df_empty;\r
+DBG_DF_FULL                   <= df_full;\r
+DBG_DF_WR_EN                  <= df_wr_en;\r
+DBG_DF_RD_EN                  <= df_rd_en;\r
+DBG_DF_Q                      <= df_q;\r
+DBG_ALL_CTR                   <= all_ctr;\r
+DBG_SUB_CTR                   <= sub_ctr;\r
+DBG_MY_CTR                    <= my_ctr;\r
+DBG_BYTES_LOADED              <= bytes_loaded;\r
+DBG_SIZE_LEFT                 <= size_left;\r
+DBG_SUB_SIZE_TO_SAVE          <= sub_size_to_save;\r
+DBG_SUB_SIZE_LOADED           <= sub_size_loaded;\r
+DBG_SUB_BYTES_LOADED          <= sub_bytes_loaded;\r
+DBG_QUEUE_SIZE                <= queue_size;\r
+DBG_ACT_QUEUE_SIZE            <= actual_queue_size;\r
+\r
+DEBUG_OUT                     <= debug;\r
+\r
+end trb_net16_gbe_packet_constr;
\ No newline at end of file
diff --git a/gbe_ecp2m/trb_net16_ipu2gbe.vhd b/gbe_ecp2m/trb_net16_ipu2gbe.vhd
new file mode 100755 (executable)
index 0000000..0507ccc
--- /dev/null
@@ -0,0 +1,898 @@
+LIBRARY ieee;\r
+use ieee.std_logic_1164.all;\r
+USE IEEE.numeric_std.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+use IEEE.std_logic_arith.all;\r
+\r
+library work;\r
+\r
+entity trb_net16_ipu2gbe is\r
+port( \r
+       CLK                         : in    std_logic;\r
+       RESET                       : in    std_logic;\r
+       -- IPU interface directed toward the CTS\r
+       CTS_NUMBER_IN               : in    std_logic_vector (15 downto 0);\r
+       CTS_CODE_IN                 : in    std_logic_vector (7  downto 0);\r
+       CTS_INFORMATION_IN          : in    std_logic_vector (7  downto 0);\r
+       CTS_READOUT_TYPE_IN         : in    std_logic_vector (3  downto 0);\r
+       CTS_START_READOUT_IN        : in    std_logic;\r
+       CTS_READ_IN                 : in    std_logic;\r
+       CTS_DATA_OUT                : out   std_logic_vector (31 downto 0);\r
+       CTS_DATAREADY_OUT           : out   std_logic;\r
+       CTS_READOUT_FINISHED_OUT    : out   std_logic;      --no more data, end transfer, send TRM\r
+       CTS_LENGTH_OUT              : out   std_logic_vector (15 downto 0);\r
+       CTS_ERROR_PATTERN_OUT       : out   std_logic_vector (31 downto 0);\r
+       -- Data from Frontends\r
+       FEE_DATA_IN                 : in    std_logic_vector (15 downto 0);\r
+       FEE_DATAREADY_IN            : in    std_logic;\r
+       FEE_READ_OUT                : out   std_logic;\r
+       FEE_BUSY_IN                 : in    std_logic;\r
+       FEE_STATUS_BITS_IN          : in    std_logic_vector (31 downto 0);\r
+       -- slow control interface\r
+       START_CONFIG_OUT                        : out   std_logic; -- reconfigure MACs/IPs/ports/packet size\r
+       BANK_SELECT_OUT                         : out   std_logic_vector(3 downto 0); -- configuration page address\r
+       CONFIG_DONE_IN                          : in    std_logic; -- configuration finished\r
+       DATA_GBE_ENABLE_IN                      : in    std_logic; -- IPU data is forwarded to GbE\r
+       DATA_IPU_ENABLE_IN                      : in    std_logic; -- IPU data is forwarded to CTS / TRBnet\r
+       MULTI_EVT_ENABLE_IN                     : in    std_logic; -- enable multi event packets\r
+       MAX_MESSAGE_SIZE_IN                     : in    std_logic_vector(31 downto 0); -- the maximum size of one HadesQueue  -- gk 08.04.10\r
+       -- PacketConstructor interface\r
+       PC_WR_EN_OUT                : out   std_logic;\r
+       PC_DATA_OUT                 : out   std_logic_vector (7 downto 0);\r
+       PC_READY_IN                 : in    std_logic;\r
+       PC_SOS_OUT                  : out   std_logic;\r
+       PC_EOD_OUT                  : out   std_logic;\r
+       PC_SUB_SIZE_OUT             : out   std_logic_vector(31 downto 0);\r
+       PC_TRIG_NR_OUT              : out   std_logic_vector(31 downto 0);\r
+       PC_PADDING_OUT              : out   std_logic;\r
+       -- Debug\r
+       BSM_SAVE_OUT                : out   std_logic_vector(3 downto 0);\r
+       BSM_LOAD_OUT                : out   std_logic_vector(3 downto 0);\r
+       DBG_REM_CTR_OUT             : out   std_logic_vector(3 downto 0);\r
+       DBG_CTS_CTR_OUT             : out   std_logic_vector(2 downto 0);\r
+       DBG_SF_WCNT_OUT             : out   std_logic_vector(15 downto 0);\r
+       DBG_SF_RCNT_OUT             : out   std_logic_vector(16 downto 0);\r
+       DBG_SF_DATA_OUT             : out   std_logic_vector(15 downto 0);\r
+       DBG_SF_RD_EN_OUT            : out   std_logic;\r
+       DBG_SF_WR_EN_OUT            : out   std_logic;\r
+       DBG_SF_EMPTY_OUT            : out   std_logic;\r
+       DBG_SF_AEMPTY_OUT           : out   std_logic;\r
+       DBG_SF_FULL_OUT             : out   std_logic;\r
+       DBG_SF_AFULL_OUT            : out   std_logic;\r
+       DEBUG_OUT                   : out   std_logic_vector(31 downto 0)\r
+);\r
+end entity;\r
+\r
+architecture trb_net16_ipu2gbe of trb_net16_ipu2gbe is\r
+\r
+component fifo_32kx16x8_mb\r
+port( \r
+       Data            : in    std_logic_vector(15 downto 0); \r
+       WrClock         : in    std_logic;\r
+       RdClock         : in    std_logic; \r
+       WrEn            : in    std_logic;\r
+       RdEn            : in    std_logic;\r
+       Reset           : in    std_logic; \r
+       RPReset         : in    std_logic; \r
+       AmEmptyThresh   : in    std_logic_vector(15 downto 0); \r
+       AmFullThresh    : in    std_logic_vector(14 downto 0); \r
+       Q               : out   std_logic_vector(7 downto 0); \r
+       WCNT            : out   std_logic_vector(15 downto 0); \r
+       RCNT            : out   std_logic_vector(16 downto 0);\r
+       Empty           : out   std_logic;\r
+       AlmostEmpty     : out   std_logic;\r
+       Full            : out   std_logic;\r
+       AlmostFull      : out   std_logic\r
+);\r
+end component;\r
+\r
+type saveStates is (SIDLE, SAVE_EVT_ADDR, WAIT_FOR_DATA, SAVE_DATA, ADD_SUBSUB1, ADD_SUBSUB2, ADD_SUBSUB3, ADD_SUBSUB4, TERMINATE, SCLOSE);\r
+signal saveCurrentState, saveNextState : saveStates;\r
+signal state                : std_logic_vector(3 downto 0);\r
+signal data_req_comb        : std_logic;\r
+signal data_req             : std_logic; -- request data signal, will be used for fee_read generation\r
+signal rst_saved_ctr_comb   : std_logic;\r
+signal rst_saved_ctr        : std_logic;\r
+\r
+signal fee_read_comb        : std_logic;\r
+signal fee_read             : std_logic; -- fee_read signal\r
+signal saved_ctr            : std_logic_vector(16 downto 0);\r
+signal ce_saved_ctr         : std_logic;\r
+\r
+-- header data\r
+signal cts_rnd              : std_logic_vector(15 downto 0);\r
+signal cts_rnd_saved        : std_logic;\r
+signal cts_trg              : std_logic_vector(15 downto 0);\r
+signal cts_trg_saved        : std_logic;\r
+signal cts_len              : std_logic_vector(16 downto 0);\r
+signal cts_len_saved        : std_logic;\r
+\r
+-- CTS interface\r
+signal cts_error_pattern    : std_logic_vector(31 downto 0);\r
+signal cts_length           : std_logic_vector(15 downto 0);\r
+signal cts_readout_finished : std_logic;\r
+signal cts_dataready        : std_logic;\r
+signal cts_data             : std_logic_vector(31 downto 0);\r
+\r
+-- Split FIFO signals\r
+signal sf_data              : std_logic_vector(15 downto 0);\r
+signal sf_wr_en_comb        : std_logic;\r
+signal sf_wr_en             : std_logic; -- write signal for FIFO\r
+signal sf_rd_en_comb        : std_logic;\r
+signal sf_rd_en             : std_logic; -- read signal for FIFO\r
+signal sf_rd_valid_comb     : std_logic;\r
+signal sf_rd_valid          : std_logic;\r
+signal sf_wcnt              : std_logic_vector(15 downto 0);\r
+signal sf_rcnt              : std_logic_vector(16 downto 0);\r
+signal sf_empty             : std_logic;\r
+signal sf_aempty            : std_logic;\r
+signal sf_full              : std_logic;\r
+signal sf_afull             : std_logic;\r
+\r
+-------------------------------------------------------------------\r
+type loadStates is (LIDLE, INIT, REMOVE, CALCA, CALCB, LOAD, PAD0, PAD1, PAD2, PAD3, LOAD_SUBSUB, CALCC, CLOSE, WAIT_PC);\r
+signal loadCurrentState, loadNextState : loadStates;\r
+signal state2               :   std_logic_vector(3 downto 0);\r
+\r
+signal rem_ctr              : std_logic_vector(3 downto 0); -- counter for stripping / storing header data\r
+signal rst_rem_ctr_comb     : std_logic;\r
+signal rst_rem_ctr          : std_logic; -- reset the remove counter\r
+signal rst_regs_comb        : std_logic;\r
+signal rst_regs             : std_logic; -- reset storage registers\r
+signal rem_phase_comb       : std_logic;\r
+signal rem_phase            : std_logic; -- header remove phase\r
+signal data_phase_comb      : std_logic;\r
+signal data_phase           : std_logic; -- data transport phase from split fifo to PC\r
+signal pad_phase_comb       : std_logic;\r
+signal pad_phase            : std_logic; -- padding phase\r
+signal calc_pad_comb        : std_logic;\r
+signal calc_pad             : std_logic; -- check if padding bytes need to be added to PC_SUB_SIZE\r
+signal pad_data_comb        : std_logic;\r
+signal pad_data             : std_logic; -- reset PC_DATA register to known padding byte value\r
+\r
+signal pc_sos_comb          : std_logic;\r
+signal pc_sos               : std_logic; -- start of data signal\r
+signal pc_eod_comb          : std_logic;\r
+signal pc_eod               : std_logic; -- end of data signal\r
+\r
+signal ce_rem_ctr_comb      : std_logic;\r
+signal ce_rem_ctr           : std_logic; -- count enable for remove counter\r
+signal remove_done_comb     : std_logic;\r
+signal remove_done          : std_logic; -- end of header stripping process\r
+signal read_done_comb       : std_logic;\r
+signal read_done            : std_logic; -- end of data phase (read phase from SF)\r
+\r
+signal pc_data              : std_logic_vector(7 downto 0);\r
+signal pc_data_q            : std_logic_vector(7 downto 0);\r
+signal pc_trig_nr           : std_logic_vector(15 downto 0);\r
+signal pc_sub_size          : std_logic_vector(17 downto 0);\r
+signal read_size            : std_logic_vector(17 downto 0); -- number of byte to be read from split fifo\r
+signal padding_needed       : std_logic;\r
+signal pc_wr_en_comb        : std_logic;\r
+signal pc_wr_en_q           : std_logic;\r
+signal pc_wr_en_qq          : std_logic;\r
+signal pc_wr_en_qqq         : std_logic;\r
+signal pc_eod_q             : std_logic;\r
+signal pc_eod_qq            : std_logic;\r
+\r
+signal debug                : std_logic_vector(31 downto 0);\r
+\r
+-- gk \r
+signal bank_select     : std_logic_vector(3 downto 0);\r
+signal save_addr_comb  : std_logic;\r
+signal save_addr       : std_logic;\r
+signal addr_saved_comb : std_logic;\r
+signal addr_saved      : std_logic;\r
+signal start_config    : std_logic;\r
+signal config_done     : std_logic;\r
+signal add_sub_state        : std_logic;\r
+signal add_sub_state_comb   : std_logic;\r
+signal add_sub_ctr          : std_logic_vector(3 downto 0);\r
+signal load_sub             : std_logic;\r
+signal load_sub_comb        : std_logic;\r
+signal load_sub_done        : std_logic;\r
+signal load_sub_done_comb   : std_logic;\r
+signal load_sub_ctr         : std_logic_vector(3 downto 0);\r
+signal load_sub_ctr_comb    : std_logic;\r
+signal actual_message_size  : std_logic_vector(31 downto 0);\r
+signal rst_msg              : std_logic;\r
+signal rst_msg_comb         : std_logic;\r
+\r
+begin\r
+\r
+-- Fake signals\r
+--START_CONFIG_OUT <= '0'; -- gk 27.03.10\r
+BANK_SELECT_OUT <= bank_select; -- gk 27.03.10\r
+START_CONFIG_OUT <= start_config;  -- gk 27.03.10\r
+config_done <= CONFIG_DONE_IN; -- gk 29.03.10\r
+-- gk 27.03.10\r
+bank_select_proc : process( CLK )\r
+begin\r
+       if rising_edge( CLK ) then\r
+               -- gk 29.03.10 for debug only: should round robin over 4 addresses with each subevent\r
+--             if( (RESET = '1') or (bank_select > "0011") ) then\r
+--                     bank_select <= "0000";\r
+--             elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then\r
+--                     bank_select <= bank_select + x"1";\r
+--             end if;\r
+               -- gk 29.03.10\r
+               if( (RESET = '1') or (rst_regs = '1') ) then\r
+                       bank_select <= "0000";\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then\r
+                       bank_select <= CTS_INFORMATION_IN(3 downto 0);\r
+               end if;\r
+       end if;\r
+end process bank_select_proc;\r
+\r
+-- gk 29.03.10\r
+start_config_proc : process( CLK )\r
+begin\r
+       if rising_edge( CLK ) then\r
+               if( (RESET = '1') or (rst_regs = '1') or (config_done = '1') ) then\r
+                       start_config <= '0';\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"2") ) then\r
+                       start_config <= '1';\r
+               end if;\r
+       end if;\r
+end process start_config_proc;\r
+\r
+-- CTS interface signals\r
+cts_error_pattern    <= (others => '0'); -- FAKE\r
+\r
+cts_length           <= x"0000"; -- length of data payload is always 0\r
+cts_data             <= b"0001" & cts_rnd(11 downto 0) & cts_trg; -- reserved bits = '0', pack bit = '1'\r
+\r
+cts_readout_finished <= '1' when (saveCurrentState = SCLOSE) else '0';\r
+\r
+cts_dataready        <= '1' when ((saveCurrentState = SAVE_DATA) and (FEE_BUSY_IN = '0')) or (saveCurrentState = TERMINATE) \r
+                                                       else '0';\r
+\r
+-- Byte swapping... done here. TAKE CARE!\r
+-- The split FIFO is in natural bus order (i.e. Motorola style, [15:0]). This means that the two bytes\r
+-- on the write side need to be swapped to appear in GbE style (i.e. Intel style) on the 8bit port.\r
+-- Please mind that PC_SUB_SIZE and PC_TRIG_NR stay in a human readable format, and need to be byteswapped\r
+-- for GbE inside the packet constructor.\r
+--\r
+-- Long live the Endianess! \r
+\r
+-- Sync all critical pathes\r
+THE_SYNC_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               --sf_data       <= FEE_DATA_IN; -- gk 27.03.10 moved out to a process\r
+               sf_wr_en      <= sf_wr_en_comb;\r
+               ce_rem_ctr    <= ce_rem_ctr_comb;\r
+               sf_rd_en      <= sf_rd_en_comb;\r
+               fee_read      <= fee_read_comb;\r
+               read_done     <= read_done_comb;\r
+               pc_eod_qq     <= pc_eod_q;\r
+               pc_eod_q      <= pc_eod;\r
+               pc_wr_en_qqq  <= pc_wr_en_qq;\r
+               pc_wr_en_qq   <= pc_wr_en_q;\r
+               pc_wr_en_q    <= pc_wr_en_comb;\r
+       end if;\r
+end process THE_SYNC_PROC;\r
+\r
+-- gk 27.03.10 data selector for sf to write the evt builder address on top of data\r
+SF_DATA_PROC : process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if( save_addr = '1' ) then\r
+                       sf_data(3 downto 0) <= CTS_INFORMATION_IN(3 downto 0); -- only last 4 bits are the evt builder address\r
+                       sf_data(15 downto 4) <= x"abc";\r
+               -- gk 29.03.10 four entries to save the fee_status into sf for the subsubevent\r
+               elsif( (add_sub_state = '1') and (add_sub_ctr = x"0") ) then\r
+                       sf_data <= x"5555";\r
+               elsif( (add_sub_state = '1') and (add_sub_ctr = x"1") ) then\r
+                       sf_data <= x"0001";\r
+               elsif( (add_sub_state = '1') and (add_sub_ctr = x"2") ) then\r
+                       sf_data <= FEE_STATUS_BITS_IN(31 downto 16);\r
+               elsif( (add_sub_state = '1') and (add_sub_ctr = x"3") ) then\r
+                       sf_data <= FEE_STATUS_BITS_IN(15 downto 0);\r
+               else\r
+                       sf_data <= FEE_DATA_IN;\r
+               end if;\r
+       end if;\r
+end process SF_DATA_PROC;\r
+\r
+-- combinatorial read signal for the FEE data interface, DO NOT USE DIRECTLY\r
+fee_read_comb <= '1' when ( (sf_afull = '0') and (data_req = '1') and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled\r
+                                        else '0';\r
+\r
+-- combinatorial write signal for the split FIFO, DO NOT USE DIRECTLY\r
+-- gk 27.03.10\r
+--sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') and (DATA_GBE_ENABLE_IN = '1') ) -- GbE enabled\r
+--                                      else '0';\r
+sf_wr_en_comb <= '1' when ( (fee_read = '1') and (FEE_DATAREADY_IN = '1') and (DATA_GBE_ENABLE_IN = '1') ) or -- GbE enabled\r
+                                       (save_addr = '1') or\r
+                                       (add_sub_state = '1')  -- gk 29.03.10 save the subsubevent\r
+                                        else '0';\r
+\r
+-- Counter for header word storage\r
+THE_CTS_SAVED_CTR: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       saved_ctr <= (others => '0');\r
+               elsif( ce_saved_ctr = '1' ) then\r
+                       saved_ctr <= saved_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process THE_CTS_SAVED_CTR;\r
+\r
+-- gk 27.03.10 do not count evt builder address as saved ipu bytes\r
+--ce_saved_ctr <= sf_wr_en;\r
+ce_saved_ctr <= '0' when addr_saved = '1' else sf_wr_en;\r
+\r
+-- Statemachine for reading data payload, handling IPU channel and storing data in the SPLIT_FIFO\r
+saveMachineProc: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       saveCurrentState <= SIDLE;\r
+                       data_req         <= '0';\r
+                       rst_saved_ctr    <= '0';\r
+                       save_addr        <= '0'; -- gk 27.03.10\r
+                       addr_saved       <= '0'; -- gk 27.03.10\r
+                       add_sub_state    <= '0'; -- gk 29.03.10\r
+               else\r
+                       saveCurrentState <= saveNextState;\r
+                       data_req         <= data_req_comb;\r
+                       rst_saved_ctr    <= rst_saved_ctr_comb;\r
+                       save_addr        <= save_addr_comb; -- gk 27.03.10\r
+                       addr_saved       <= addr_saved_comb; -- gk 27.03.10\r
+                       add_sub_state    <= add_sub_state_comb; -- gk 29.03.10\r
+               end if;\r
+       end if;\r
+end process saveMachineProc;\r
+\r
+saveMachine: process( saveCurrentState, CTS_START_READOUT_IN, FEE_BUSY_IN, CTS_READ_IN )\r
+begin\r
+       saveNextState      <= SIDLE;\r
+       data_req_comb      <= '0';\r
+       rst_saved_ctr_comb <= '0';\r
+       save_addr_comb     <= '0'; -- gk 27.03.10\r
+       addr_saved_comb    <= '0'; -- gk 27.03.10\r
+       add_sub_state_comb <= '0';  -- gk 29.03.10\r
+       case saveCurrentState is\r
+               when SIDLE =>\r
+                       state <= x"0";\r
+                       if (CTS_START_READOUT_IN = '1') then\r
+                               saveNextState <= SAVE_EVT_ADDR; --WAIT_FOR_DATA; -- gk 27.03.10\r
+                               data_req_comb <= '1';\r
+                               rst_saved_ctr_comb <= '1';\r
+                       else\r
+                               saveNextState <= SIDLE;\r
+                       end if;\r
+               -- gk 27.03.10\r
+               when SAVE_EVT_ADDR =>\r
+                       state <= x"5";\r
+                       saveNextState <= WAIT_FOR_DATA;\r
+                       data_req_comb <= '1';\r
+                       save_addr_comb <= '1';\r
+               when WAIT_FOR_DATA =>\r
+                       state <= x"1";\r
+                       if (FEE_BUSY_IN = '1') then\r
+                               saveNextState <= SAVE_DATA;\r
+                               data_req_comb <= '1';\r
+                       else\r
+                               saveNextState <= WAIT_FOR_DATA;\r
+                               data_req_comb <= '1';\r
+                       end if;\r
+                       addr_saved_comb <= '1';  -- gk 27.03.10\r
+               when SAVE_DATA =>\r
+                       state <= x"2";\r
+                       if (FEE_BUSY_IN = '0') then\r
+                               saveNextState <= TERMINATE;\r
+                       else\r
+                               saveNextState <= SAVE_DATA;\r
+                               data_req_comb <= '1';\r
+                       end if;\r
+               when TERMINATE =>\r
+                       state <= x"3";\r
+                       if (CTS_READ_IN = '1') then\r
+                               saveNextState <= SCLOSE;\r
+                       else\r
+                               saveNextState <= TERMINATE;\r
+                       end if;\r
+               when SCLOSE =>\r
+                       state <= x"4";\r
+                       if (CTS_START_READOUT_IN = '0') then\r
+                               saveNextState <= ADD_SUBSUB1; --SIDLE;  -- gk 29.03.10\r
+                       else\r
+                               saveNextState <= SCLOSE;\r
+                       end if;\r
+               -- gk 29.03.10 new states during which the subsub bytes are saved\r
+               when ADD_SUBSUB1 =>\r
+                       state <= x"6";\r
+                       add_sub_state_comb <= '1';\r
+                       saveNextState <= ADD_SUBSUB2;\r
+               when ADD_SUBSUB2 =>\r
+                       state<= x"7";\r
+                       add_sub_state_comb <= '1';\r
+                       saveNextState <= ADD_SUBSUB3;\r
+               when ADD_SUBSUB3 =>\r
+                       state<= x"8";\r
+                       add_sub_state_comb <= '1';\r
+                       saveNextState <= ADD_SUBSUB4;\r
+               when ADD_SUBSUB4 =>\r
+                       state<= x"9";\r
+                       add_sub_state_comb <= '1';\r
+                       saveNextState <= SIDLE;\r
+               when others =>\r
+                       state <= x"f";\r
+                       saveNextState <= SIDLE;\r
+       end case;\r
+end process saveMachine;\r
+\r
+-- gk 29.03.10\r
+ADD_SUB_CTR_PROC : process( CLK )\r
+begin\r
+       if( rising_edge( CLK ) ) then\r
+               if( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       add_sub_ctr <= (others => '0');\r
+               elsif( add_sub_state = '1' ) then\r
+                       add_sub_ctr <= add_sub_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process ADD_SUB_CTR_PROC;\r
+\r
+-- save triggerRnd from incoming data for cts response\r
+CTS_RND_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       cts_rnd       <= (others => '0');\r
+                       cts_rnd_saved <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"000") and (sf_wr_en = '1') and (cts_rnd_saved = '0') ) then\r
+                       cts_rnd <= sf_data;\r
+                       cts_rnd_saved <= '1';\r
+               end if;\r
+       end if;\r
+end process CTS_RND_PROC;\r
+\r
+-- save triggerNr from incoming data for cts response\r
+CTS_TRG_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       cts_trg       <= (others => '0');\r
+                       cts_trg_saved <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"001") and (sf_wr_en = '1') and (cts_trg_saved = '0') ) then\r
+                       cts_trg <= sf_data;\r
+                       cts_trg_saved <= '1';\r
+               end if;\r
+       end if;\r
+end process CTS_TRG_PROC;\r
+\r
+-- save size from incoming data for cts response (future) and to get rid of padding\r
+CTS_SIZE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_saved_ctr = '1') ) then\r
+                       cts_len       <= (others => '0');\r
+                       cts_len_saved <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"010") and (sf_wr_en = '1') and (cts_len_saved = '0') ) then\r
+                       cts_len(16 downto 1) <= sf_data; -- change from 32b words to 16b words\r
+                       cts_len(0)           <= '0';\r
+               elsif( (saved_ctr(2 downto 0) = b"011") and (cts_len_saved = '0') ) then\r
+                       cts_len       <= cts_len + x"4";\r
+                       cts_len_saved <= '1';\r
+               end if;\r
+       end if;\r
+end process CTS_SIZE_PROC;\r
+\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+\r
+-- Split FIFO\r
+THE_SPLIT_FIFO: fifo_32kx16x8_mb\r
+port map( \r
+       -- Byte swapping for correct byte order on readout side of FIFO\r
+       Data(15 downto 8) => sf_data(7 downto 0),\r
+       Data(7 downto 0)  => sf_data(15 downto 8),\r
+       WrClock         => CLK,\r
+       RdClock         => CLK, \r
+       WrEn            => sf_wr_en,\r
+       RdEn            => sf_rd_en,\r
+       Reset           => RESET, \r
+       RPReset         => RESET, \r
+       AmEmptyThresh   => b"0000_0000_0000_0010", -- one byte ahead\r
+       AmFullThresh    =>  b"111_1111_1110_1111", -- 0x7fef = 32751\r
+       Q               => pc_data, --open,\r
+       WCNT            => sf_wcnt,\r
+       RCNT            => sf_rcnt,\r
+       Empty           => sf_empty,\r
+       AlmostEmpty     => sf_aempty,\r
+       Full            => sf_full,\r
+       AlmostFull      => sf_afull\r
+);\r
+\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+\r
+-- write signal for PC data\r
+pc_wr_en_comb <= (data_phase and sf_rd_en) or pad_phase or (load_sub and sf_rd_en); -- gk 30.03.10\r
+\r
+-- FIFO data delay process (also forces padding bytes to known value)\r
+THE_DATA_DELAY_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if( pad_data = '1' ) then\r
+                       pc_data_q <= x"aa"; -- padding for 64bit\r
+               else\r
+                       pc_data_q   <= pc_data;\r
+               end if;\r
+       end if;\r
+end process THE_DATA_DELAY_PROC;\r
+\r
+-- Statemachine for reading the data payload from the SPLIT_FIFO and feeding\r
+-- it into the packet constructor\r
+loadMachineProc : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if RESET = '1' then\r
+                       loadCurrentState <= LIDLE;\r
+                       rst_rem_ctr      <= '0';\r
+                       rem_phase        <= '0';\r
+                       calc_pad         <= '0';\r
+                       data_phase       <= '0';\r
+                       pad_phase        <= '0';\r
+                       pc_sos           <= '0';\r
+                       pc_eod           <= '0';\r
+                       rst_regs         <= '0';\r
+                       pad_data         <= '0';\r
+                       load_sub         <= '0'; -- gk 30.03.10\r
+                       rst_msg          <= '0'; -- gk 08.04.10\r
+               else\r
+                       loadCurrentState <= loadNextState;\r
+                       rst_rem_ctr      <= rst_rem_ctr_comb;\r
+                       rem_phase        <= rem_phase_comb;\r
+                       calc_pad         <= calc_pad_comb;\r
+                       data_phase       <= data_phase_comb;\r
+                       pad_phase        <= pad_phase_comb;\r
+                       pc_sos           <= pc_sos_comb;\r
+                       pc_eod           <= pc_eod_comb;\r
+                       rst_regs         <= rst_regs_comb;\r
+                       pad_data         <= pad_data_comb;\r
+                       load_sub         <= load_sub_comb; -- gk 30.03.10\r
+                       rst_msg          <= rst_msg_comb; -- gk 08.04.10\r
+               end if;\r
+       end if;\r
+end process loadMachineProc;\r
+\r
+sf_rd_en_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and  (remove_done = '0') ) or\r
+                                       ( (sf_aempty = '0') and (data_phase = '1') and (read_done = '0')   ) or\r
+                                       ( (sf_aempty = '0') and (load_sub = '1') and (load_sub_done = '0') ) -- gk 30.03.10\r
+                                        else '0';\r
+\r
+ce_rem_ctr_comb <= '1' when ( (sf_aempty = '0') and (rem_phase = '1') and ( remove_done = '0') ) \r
+                                          else '0';\r
+\r
+loadMachine : process( loadCurrentState, sf_aempty, remove_done, read_done, padding_needed, PC_READY_IN, load_sub_done )\r
+begin\r
+       loadNextState    <= LIDLE;\r
+       rst_rem_ctr_comb <= '0';\r
+       rem_phase_comb   <= '0';\r
+       calc_pad_comb    <= '0';\r
+       data_phase_comb  <= '0';\r
+       pad_phase_comb   <= '0';\r
+       pc_sos_comb      <= '0';\r
+       pc_eod_comb      <= '0';\r
+       rst_regs_comb    <= '0';\r
+       pad_data_comb    <= '0';\r
+       load_sub_comb    <= '0';  -- gk 30.03.10\r
+       rst_msg_comb     <= '0';  -- gk 08.04.10\r
+       case loadCurrentState is\r
+               when LIDLE =>\r
+                       state2 <= x"0";\r
+                       if( (sf_aempty = '0') and (PC_READY_IN = '1') ) then\r
+                               loadNextState <= INIT;\r
+                               rst_rem_ctr_comb <= '1';\r
+                               rst_regs_comb <= '1';\r
+                               rst_msg_comb <= '1';  -- gk 08.04.10\r
+                       else\r
+                               loadNextState <= LIDLE;\r
+                       end if;\r
+               when INIT =>\r
+                       state2 <= x"1";\r
+                       loadNextState <= REMOVE;\r
+                       rem_phase_comb <= '1';\r
+               -- gk 08.04.10 changed to gather more subevents into one queue\r
+               when REMOVE =>\r
+                       state2 <= x"2";\r
+                       if( remove_done = '1' ) then\r
+                               if(actual_message_size + pc_sub_size < MAX_MESSAGE_SIZE_IN) then\r
+                                       loadNextState <= CALCA;\r
+                                       calc_pad_comb <= '1';\r
+                               else\r
+                                       loadNextState <= CALCC;\r
+                               end if;\r
+                       else\r
+                               loadNextState <= REMOVE;\r
+                               rem_phase_comb <= '1';\r
+                       end if;\r
+               when CALCA =>\r
+                       state2 <= x"3";\r
+                       loadNextState <= CALCB;\r
+                       pc_sos_comb <= '1';\r
+               when CALCB =>\r
+                       -- we need a branch in case of length "0"!!!!\r
+                       state2 <= x"4";\r
+                       loadNextState <= LOAD;\r
+                       data_phase_comb <= '1';\r
+               when LOAD =>\r
+                       state2 <= x"5";\r
+                       -- gk 31.03.10 after loading subevent data read the subsubevent from sf\r
+                       if ( read_done = '1' ) then\r
+                               loadNextState <= LOAD_SUBSUB;\r
+                       -- gk 31.03.10 moved to the load_subsub state\r
+--                     if   ( (read_done = '1') and (padding_needed = '0') ) then\r
+--                             loadNextState <= LOAD_SUBSUB; --CALCC;  --gk 30.03.10\r
+--                     elsif( (read_done = '1') and (padding_needed = '1') ) then\r
+--                             loadNextState <= PAD0;\r
+--                             pad_phase_comb <= '1';\r
+                       else\r
+                               loadNextState <= LOAD;\r
+                               data_phase_comb <= '1';\r
+                       end if;\r
+               -- gk 31.03.10\r
+               when LOAD_SUBSUB =>\r
+                       state2 <= x"d";\r
+                       if( load_sub_done = '1' ) then\r
+                               if( padding_needed = '0' ) then\r
+                                       loadNextState <= INIT; --CALCC;  -- gk 08.04.10\r
+                                       rst_rem_ctr_comb <= '1';  -- gk 08.04.10\r
+                                       rst_regs_comb <= '1';  -- gk 08.04.10\r
+                               else\r
+                                       loadNextState <= PAD0;\r
+                                       pad_phase_comb <= '1';\r
+                               end if;\r
+                       else\r
+                               loadNextState <= LOAD_SUBSUB;\r
+                               load_sub_comb <= '1';\r
+                       end if;\r
+               when PAD0 =>\r
+                       state2 <= x"6";\r
+                       loadNextState <= PAD1;\r
+                       pad_phase_comb <= '1';\r
+                       pad_data_comb <= '1';\r
+               when PAD1 =>\r
+                       state2 <= x"7";\r
+                       loadNextState <= PAD2;\r
+                       pad_phase_comb <= '1';\r
+                       pad_data_comb <= '1';\r
+               when PAD2 =>\r
+                       state2 <= x"8";\r
+                       loadNextState <= PAD3;\r
+                       pad_phase_comb <= '1';\r
+                       pad_data_comb <= '1';\r
+               when PAD3 =>\r
+                       state2 <= x"9";\r
+                       loadNextState <= INIT; --CALCC; --LOAD_SUBSUB; --CALCC;  -- gk 30.03.10  -- gk 31.03.10  -- gk 08.04.10\r
+                       pad_data_comb <= '1';\r
+                       rst_rem_ctr_comb <= '1';  -- gk 08.04.10\r
+                       rst_regs_comb <= '1';  -- gk 08.04.10\r
+               -- gk 31.03.10 the load_subsub state moved straight after load and before padding\r
+               -- gk 30.03.10\r
+--             when LOAD_SUBSUB =>\r
+--                     state2 <= x"d";\r
+--                     if( load_sub_done = '1' ) then\r
+--                             loadNextState <= CALCC;\r
+--                     else\r
+--                             loadNextState <= LOAD_SUBSUB;\r
+--                             load_sub_comb <= '1';\r
+--                     end if;\r
+               when CALCC =>\r
+                       state2 <= x"a";\r
+                       loadNextState <= CLOSE;\r
+                       pc_eod_comb <= '1';\r
+               when CLOSE =>\r
+                       state2 <= x"b";\r
+                       loadNextState <= WAIT_PC;\r
+                       --rst_regs_comb <= '1';  -- gk 08.04.10\r
+                       rst_msg_comb <= '1';  -- gk 08.04.10\r
+               when WAIT_PC =>\r
+                       state2 <= x"c";\r
+                       if( PC_READY_IN = '1' ) then\r
+                               loadNextState <= CALCA; --LIDLE;  -- gk 08.04.10\r
+                               calc_pad_comb <= '1';  -- gk 08.04.10\r
+                       else\r
+                               loadNextState <= WAIT_PC;\r
+                       end if;\r
+               when others =>\r
+                       state2 <= x"f";\r
+                       loadNextState <= LIDLE;\r
+       end case;\r
+end process loadMachine;\r
+\r
+-- gk 30.03.10\r
+load_sub_ctr_comb <= '1' when ( (load_sub = '1') and (load_sub_done = '0') and (sf_aempty = '0') )\r
+                               else '0';\r
+\r
+-- gk 30.03.10\r
+LOAD_SUB_CTR_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then  -- gk 08.04.10\r
+                       load_sub_ctr <= (others => '0');\r
+               elsif( (load_sub_ctr_comb = '1') ) then\r
+                       load_sub_ctr <= load_sub_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process LOAD_SUB_CTR_PROC;\r
+\r
+-- gk 30.03.10\r
+load_sub_done_comb <= '1' when (load_sub_ctr = x"7") else '0';\r
+\r
+-- gk 30.03.10\r
+LOAD_SUB_DONE_PROC : process(CLK)\r
+begin\r
+       if rising_edge(CLK) then\r
+               if ( (RESET = '1') or (rst_regs = '1') ) then  -- gk 08.04.10\r
+                       load_sub_done <= '0';\r
+               else\r
+                       load_sub_done <= load_sub_done_comb;\r
+               end if;\r
+       end if;\r
+end process LOAD_SUB_DONE_PROC;\r
+\r
+-- Counter for stripping the unneeded parts of the data stream, and saving the important parts\r
+THE_REMOVE_CTR: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_rem_ctr = '1') ) then\r
+                       rem_ctr <= (others => '0');\r
+               elsif( (ce_rem_ctr = '1') ) then\r
+                       rem_ctr <= rem_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process THE_REMOVE_CTR;\r
+\r
+remove_done_comb <= '1' when ( rem_ctr = x"8" ) else '0'; --( rem_ctr = x"6" ) else '0';  -- gk 29.03.10 two more for evt address\r
+\r
+THE_REM_DONE_SYNC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_rem_ctr = '1') ) then\r
+                       remove_done <= '0';\r
+               else\r
+                       remove_done <= remove_done_comb;\r
+               end if;\r
+       end if;\r
+end process THE_REM_DONE_SYNC;\r
+\r
+-- extract the trigger number from splitfifo data\r
+THE_TRG_NR_PROC: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then\r
+                       pc_trig_nr <= (others => '0');\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"6") ) then  -- x"4" gk 29.03.10\r
+                       pc_trig_nr(7 downto 0) <= pc_data;\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"5") ) then  -- x"3" gk 29.03.10\r
+                       pc_trig_nr(15 downto 8) <= pc_data;\r
+               end if;\r
+       end if;\r
+end process THE_TRG_NR_PROC;\r
+\r
+-- check for padding\r
+THE_PADDING_NEEDED_PROC: process( CLK )\r
+begin\r
+       if rising_edge(CLK) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then\r
+                       padding_needed <= '0';\r
+               elsif( (remove_done = '1') and (pc_sub_size(2) = '1') ) then\r
+                       padding_needed <= '1';\r
+               elsif( (remove_done = '1') and (pc_sub_size(2) = '0') ) then\r
+                       padding_needed <= '0';\r
+               end if;\r
+       end if;\r
+end process THE_PADDING_NEEDED_PROC;\r
+\r
+-- extract the subevent size from the splitfifo data, convert it from 32b to 8b units,\r
+-- and in case of padding needed increase it accordingly\r
+THE_SUB_SIZE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_regs = '1') ) then\r
+                       pc_sub_size <= (others => '0');\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then  -- x"6" gk 29.03.10\r
+                       pc_sub_size(9 downto 2) <= pc_data;\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then  -- x"5" gk 29.03.10\r
+                       pc_sub_size(17 downto 10) <= pc_data;\r
+               -- gk 30.03.10 bug fixed in the way that is written below\r
+               -- gk 27.03.10 should be corrected by sending padding_needed signal to pc and take care of it when setting sub_size_to_save\r
+               elsif( (calc_pad = '1') and (padding_needed = '1') ) then\r
+                       pc_sub_size <= pc_sub_size + 4 + 8; -- BUG: SubEvtSize does NOT include 64bit padding!!!\r
+               elsif( (calc_pad = '1') and (padding_needed = '0') ) then\r
+                       pc_sub_size <= pc_sub_size + 8;\r
+               end if;\r
+       end if;\r
+end process THE_SUB_SIZE_PROC;\r
+\r
+-- number of bytes to read from split fifo\r
+THE_READ_SIZE_PROC: process( CLK )\r
+begin\r
+       if( rising_edge(CLK) ) then\r
+               if   ( (RESET = '1') or (rst_rem_ctr = '1') ) then\r
+                       read_size   <= (others => '0');\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"8") ) then  -- x"6" gk 29.03.10\r
+                       read_size(9 downto 2) <= pc_data;\r
+               elsif( (sf_rd_en = '1') and (rem_ctr = x"7") ) then  -- x"5" gk 29.03.10\r
+                       read_size(17 downto 10) <= pc_data;\r
+--      elsif( ((calc_pad = '1') and (read_done = '0')) ) then\r
+--          read_size <= read_size - 2;\r
+               elsif( ((sf_rd_en = '1') and (data_phase = '1')) ) then\r
+                       read_size <= read_size - 1;\r
+               end if;\r
+       end if;\r
+end process THE_READ_SIZE_PROC;\r
+\r
+ACTUAL_MSG_SIZE_PROC : process(CLK)\r
+begin\r
+       if(rising_edge(CLK)) then\r
+               if( (RESET = '1') or (rst_msg = '1') ) then\r
+                       actual_message_size <= (others => '0');\r
+               elsif( (calc_pad = '1') and (padding_needed = '1') ) then\r
+                       actual_message_size <= actual_message_size + pc_sub_size + 4 + 8;\r
+               elsif( (calc_pad = '1') and (padding_needed = '0') ) then\r
+                       actual_message_size <= actual_message_size + pc_sub_size + 8;\r
+               end if;\r
+       end if;\r
+end process ACTUAL_MSG_SIZE_PROC;\r
+\r
+read_done_comb <= '1' when (read_size < 3 ) else '0'; -- "2"\r
+\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------\r
+\r
+-- Debug signals\r
+debug(31)           <= remove_done;\r
+debug(30)           <= read_done;\r
+debug(29)           <= ce_rem_ctr;\r
+debug(28)           <= rst_rem_ctr;\r
+debug(27)           <= rst_regs;\r
+debug(26)           <= rem_phase;\r
+debug(25)           <= data_phase;\r
+debug(24)           <= pad_phase;\r
+debug(23)           <= pad_data;\r
+debug(22 downto 17) <= (others => '0');\r
+debug(16 downto 0)  <= saved_ctr;\r
+\r
+-- Outputs\r
+FEE_READ_OUT             <= fee_read;\r
+CTS_ERROR_PATTERN_OUT    <= cts_error_pattern;\r
+CTS_DATA_OUT             <= cts_data;\r
+CTS_DATAREADY_OUT        <= cts_dataready;\r
+CTS_READOUT_FINISHED_OUT <= cts_readout_finished;\r
+CTS_LENGTH_OUT           <= cts_length;\r
+\r
+PC_SOS_OUT               <= pc_sos;\r
+PC_EOD_OUT               <= pc_eod_q;\r
+PC_DATA_OUT              <= pc_data_q;\r
+PC_WR_EN_OUT             <= pc_wr_en_qq;\r
+PC_TRIG_NR_OUT           <= x"0000" & pc_trig_nr;\r
+PC_SUB_SIZE_OUT          <= b"0000_0000_0000_00" & pc_sub_size;\r
+PC_PADDING_OUT           <= padding_needed;\r
+\r
+BSM_SAVE_OUT             <= state;\r
+BSM_LOAD_OUT             <= state2;\r
+DBG_CTS_CTR_OUT          <= saved_ctr(2 downto 0);\r
+DBG_REM_CTR_OUT          <= rem_ctr;\r
+DBG_SF_DATA_OUT          <= sf_data;\r
+DBG_SF_WCNT_OUT          <= sf_wcnt;\r
+DBG_SF_RCNT_OUT          <= read_size(16 downto 0); --sf_rcnt;\r
+DBG_SF_RD_EN_OUT         <= sf_rd_en;\r
+DBG_SF_WR_EN_OUT         <= sf_wr_en;\r
+DBG_SF_EMPTY_OUT         <= sf_empty;\r
+DBG_SF_AEMPTY_OUT        <= sf_aempty;\r
+DBG_SF_FULL_OUT          <= sf_full;\r
+DBG_SF_AFULL_OUT         <= sf_afull;\r
+\r
+DEBUG_OUT                <= debug;\r
+\r
+end architecture;
\ No newline at end of file
diff --git a/gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd b/gbe_ecp2m/trb_net16_lsm_sfp_gbe.vhd
new file mode 100755 (executable)
index 0000000..7624a16
--- /dev/null
@@ -0,0 +1,236 @@
+-- LinkStateMachine for SFPs (GigE)\r
+\r
+-- Still missing: link reset features, fifo full error handling, signals on stat_op\r
+-- Take care: all input signals must be synchronous to SYSCLK,\r
+--            all output signals are synchronous to SYSCLK.\r
+-- Clock Domain Crossing is in your responsibility!\r
+\r
+LIBRARY IEEE;\r
+USE IEEE.std_logic_1164.ALL;\r
+USE IEEE.std_logic_ARITH.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+\r
+library work;\r
+--use work.trb_net_std.all;\r
+\r
+entity trb_net16_lsm_sfp_gbe is\r
+port( SYSCLK                   : in    std_logic; -- fabric clock (100MHz)\r
+         RESET                         : in    std_logic; -- synchronous reset\r
+         CLEAR                         : in    std_logic; -- asynchronous reset, connect to '0' if not needed / available\r
+         -- status signals\r
+         SFP_MISSING_IN        : in    std_logic; -- SFP Missing ('1' = no SFP mounted, '0' = SFP in place)\r
+         SFP_LOS_IN            : in    std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)\r
+         SD_LINK_OK_IN         : in    std_logic; -- SerDes Link OK ('0' = not linked, '1' link established)\r
+         SD_LOS_IN                     : in    std_logic; -- SerDes Loss Of Signal ('0' = OK, '1' = signal lost)\r
+         SD_TXCLK_BAD_IN       : in    std_logic; -- SerDes Tx Clock locked ('0' = locked, '1' = not locked)\r
+         SD_RXCLK_BAD_IN       : in    std_logic; -- SerDes Rx Clock locked ('0' = locked, '1' = not locked)\r
+         -- control signals\r
+         FULL_RESET_OUT        : out   std_logic; -- full reset AKA quad_reset\r
+         LANE_RESET_OUT        : out   std_logic; -- partial reset AKA lane_reset\r
+         USER_RESET_OUT        : out   std_logic; -- FPGA reset for user logic\r
+         -- debug signals\r
+         TIMING_CTR_OUT        : out   std_logic_vector(18 downto 0);\r
+         BSM_OUT                       : out   std_logic_vector(3 downto 0);\r
+         DEBUG_OUT                     : out   std_logic_vector(31 downto 0)\r
+       );\r
+end entity;\r
+\r
+architecture lsm_sfp_gbe of trb_net16_lsm_sfp_gbe is\r
+\r
+-- state machine signals\r
+type STATES is ( QRST, SLEEP, DELAY, USERRST, LINK );\r
+signal CURRENT_STATE, NEXT_STATE: STATES;\r
+\r
+signal state_bits                      : std_logic_vector(3 downto 0);\r
+signal next_ce_tctr                    : std_logic;\r
+signal ce_tctr                         : std_logic;\r
+signal next_rst_tctr           : std_logic;\r
+signal rst_tctr                                : std_logic;\r
+signal next_quad_rst           : std_logic;\r
+signal quad_rst                                : std_logic;\r
+signal next_lane_rst           : std_logic;\r
+signal lane_rst                                : std_logic;\r
+signal next_user_rst           : std_logic;\r
+signal user_rst                                : std_logic;\r
+signal sfp_missing_q           : std_logic;\r
+signal sfp_missing_qq          : std_logic;\r
+signal sfp_los_q                       : std_logic;\r
+signal sfp_los_qq                      : std_logic;\r
+signal sd_rxclk_bad_q          : std_logic;\r
+signal sd_rxclk_bad_qq         : std_logic;\r
+signal sd_rxclk_bad_qqq                : std_logic;\r
+signal sd_txclk_bad_q          : std_logic;\r
+signal sd_txclk_bad_qq         : std_logic;\r
+signal sd_txclk_bad_qqq                : std_logic;\r
+signal sd_rxclk_warn_comb      : std_logic;\r
+signal sd_rxclk_warn           : std_logic; -- rising edge on rlol detected\r
+signal sd_txclk_warn_comb      : std_logic;\r
+signal sd_txclk_warn           : std_logic; -- rising edge on plol detected\r
+signal timing_ctr                      : std_logic_vector(18 downto 0);\r
+signal debug                           : std_logic_vector(31 downto 0);\r
+\r
+begin\r
+\r
+-- Debug signals\r
+debug(31 downto 4)   <= (others => '0');\r
+debug(3)             <= sd_txclk_warn;\r
+debug(2)             <= sd_rxclk_warn;\r
+debug(1)             <= rst_tctr;\r
+debug(0)             <= ce_tctr;\r
+\r
+-- synchronize external signals from SFP\r
+THE_SYNC_PROC: process( sysclk )\r
+begin\r
+       if( rising_edge(sysclk) ) then\r
+               -- SFP input signals\r
+               sfp_missing_qq   <= sfp_missing_q;\r
+               sfp_missing_q    <= sfp_missing_in;\r
+               sfp_los_qq       <= sfp_los_q;\r
+               sfp_los_q        <= sfp_los_in;\r
+               -- SerDes input signals\r
+               sd_rxclk_bad_qqq <= sd_rxclk_bad_qq;\r
+               sd_rxclk_bad_qq  <= sd_rxclk_bad_q;\r
+               sd_rxclk_bad_q   <= sd_rxclk_bad_in;\r
+               sd_txclk_bad_qqq <= sd_txclk_bad_q;\r
+               sd_txclk_bad_qq  <= sd_txclk_bad_q;\r
+               sd_txclk_bad_q   <= sd_txclk_bad_in;\r
+               -- edge detectors\r
+               sd_rxclk_warn    <= sd_rxclk_warn_comb;\r
+               sd_txclk_warn    <= sd_txclk_warn_comb;\r
+       end if;\r
+end process THE_SYNC_PROC;\r
+\r
+-- combinatorial part of edge detectors (rlol, see remark on page 8-63 in HB1003.pdf)\r
+sd_rxclk_warn_comb <= '1' when ( (sd_rxclk_bad_qqq = '0') and (sd_rxclk_bad_qq = '1') ) else '0';\r
+sd_txclk_warn_comb <= '1' when ( (sd_txclk_bad_qqq = '0') and (sd_txclk_bad_qq = '1') ) else '0';\r
+\r
+--------------------------------------------------------------------------\r
+-- Main control state machine, startup control for SFP\r
+--------------------------------------------------------------------------\r
+\r
+-- Timing counter for reset sequencing\r
+THE_TIMING_COUNTER_PROC: process( sysclk, clear )\r
+begin\r
+       if( clear = '1' ) then\r
+               timing_ctr <= (others => '0');\r
+       elsif( rising_edge(sysclk) ) then\r
+               if   ( (rst_tctr = '1') or (sd_rxclk_warn = '1') or (sd_txclk_warn = '1') ) then\r
+                       timing_ctr <= (others => '0');\r
+               elsif( ce_tctr = '1' ) then\r
+                       timing_ctr <= timing_ctr + 1;\r
+               end if;\r
+       end if;\r
+end process THE_TIMING_COUNTER_PROC;\r
+\r
+-- State machine\r
+-- state registers\r
+STATE_MEM: process( sysclk, clear )\r
+begin\r
+       if( clear = '1' ) then\r
+               CURRENT_STATE  <= QRST;\r
+               ce_tctr        <= '0';\r
+               rst_tctr       <= '0';\r
+               quad_rst       <= '1';\r
+               lane_rst       <= '1';\r
+               user_rst       <= '1';\r
+       elsif( rising_edge(sysclk) ) then\r
+               CURRENT_STATE  <= NEXT_STATE;\r
+               ce_tctr        <= next_ce_tctr;\r
+               rst_tctr       <= next_rst_tctr;\r
+               quad_rst       <= next_quad_rst;\r
+               lane_rst       <= next_lane_rst;\r
+               user_rst       <= next_user_rst;\r
+       end if;\r
+end process STATE_MEM;\r
+\r
+-- state transitions\r
+PROC_STATE_TRANSFORM: process( CURRENT_STATE, sfp_missing_qq, sfp_los_qq, sd_txclk_bad_qqq, sd_rxclk_bad_qqq,\r
+                               timing_ctr(8), timing_ctr(18), timing_ctr(17),\r
+                               reset )\r
+begin\r
+       NEXT_STATE     <= QRST; -- avoid latches\r
+       next_ce_tctr   <= '0';\r
+       next_rst_tctr  <= '0';\r
+       next_quad_rst  <= '0';\r
+       next_lane_rst  <= '0';\r
+       next_user_rst  <= '0';\r
+       case CURRENT_STATE is\r
+               when QRST =>  -- initial state, we stay there unless CLEAR is deasserted.\r
+                       state_bits <= x"0";\r
+                       if( (timing_ctr(8) = '1') ) then\r
+                               NEXT_STATE    <= SLEEP; -- release QUAD_RST, wait for lock of RxClock and TxClock\r
+                               next_lane_rst <= '1';\r
+                               next_user_rst <= '1';\r
+                               next_rst_tctr <= '1';\r
+                       else\r
+                               NEXT_STATE    <= QRST; -- count delay\r
+                               next_ce_tctr  <= '1';\r
+                               next_quad_rst <= '1';\r
+                               next_lane_rst <= '1';\r
+                               next_user_rst <= '1';\r
+                       end if;\r
+               when SLEEP => -- we check for SFP presence and signal\r
+                       state_bits <= x"1";\r
+                       if( (sfp_missing_qq = '0') and (sfp_los_qq = '0') ) then\r
+                               NEXT_STATE    <= DELAY; -- do a correctly timed QUAD reset (about 150ns)\r
+                               next_ce_tctr  <= '1';\r
+                               next_lane_rst <= '1';\r
+                               next_user_rst <= '1';\r
+                       else\r
+                               NEXT_STATE    <= SLEEP; -- wait for SFP present signal\r
+                               next_lane_rst <= '1';\r
+                               next_user_rst <= '1';\r
+                       end if;\r
+               when DELAY => -- we wait approx. 4ms and check for PLL lock in the SerDes\r
+                       state_bits <= x"2";\r
+                       if( (timing_ctr(18) = '1') and (timing_ctr(17) = '1') and (sd_rxclk_bad_qqq = '0') and (sd_txclk_bad_qqq = '0') ) then\r
+                               NEXT_STATE    <= USERRST; -- we release lane reset\r
+                               next_ce_tctr  <= '1';\r
+                               next_user_rst <= '1';\r
+                       else\r
+                               NEXT_STATE    <= DELAY;\r
+                               next_ce_tctr  <= '1';\r
+                               next_lane_rst <= '1';\r
+                               next_user_rst <= '1';\r
+                       end if;\r
+               when USERRST => -- short delay for user reset\r
+                       state_bits <= x"3";\r
+                       if( (timing_ctr(18) = '0') and (timing_ctr(17) = '0') ) then\r
+                               NEXT_STATE    <= LINK;\r
+                               next_rst_tctr <= '1';\r
+                       else\r
+                               NEXT_STATE    <= USERRST;\r
+                               next_ce_tctr  <= '1';\r
+                               next_user_rst <= '1';\r
+                       end if;\r
+               when LINK => -- operational\r
+                       state_bits <= x"4";\r
+                       NEXT_STATE <= LINK;\r
+               when others => \r
+                       NEXT_STATE <= QRST;\r
+       end case;\r
+  \r
+       -- emergency jumps in case of SFP problems\r
+       if( ((sfp_missing_qq = '1') or (sfp_los_qq = '1') or (RESET = '1')) and CURRENT_STATE /= QRST ) then\r
+               NEXT_STATE    <= SLEEP; -- wait for SFP present signal\r
+               next_rst_tctr <= '1';\r
+               next_lane_rst <= '1';\r
+               next_user_rst <= '1';\r
+       end if;\r
+end process;\r
+\r
+--------------------------------------------------------------------------\r
+-- Output signals\r
+--------------------------------------------------------------------------\r
+full_reset_out  <= quad_rst;\r
+lane_reset_out  <= lane_rst;\r
+user_reset_out  <= user_rst;\r
+\r
+--------------------------------------------------------------------------\r
+-- Debug output\r
+--------------------------------------------------------------------------\r
+timing_ctr_out  <= timing_ctr;\r
+bsm_out         <= state_bits;\r
+debug_out       <= debug;\r
+\r
+end architecture;
\ No newline at end of file
diff --git a/gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd b/gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd
new file mode 100755 (executable)
index 0000000..e2eeff5
--- /dev/null
@@ -0,0 +1,373 @@
+LIBRARY IEEE;\r
+USE IEEE.std_logic_1164.ALL;\r
+USE IEEE.std_logic_ARITH.ALL;\r
+USE IEEE.std_logic_UNSIGNED.ALL;\r
+\r
+library work;\r
+use work.trb_net_std.all;\r
+use work.trb_net_components.all;\r
+\r
+entity trb_net16_med_ecp_sfp_gbe_8b is\r
+port(\r
+       RESET                                   : in    std_logic;\r
+       GSR_N                                   : in    std_logic;\r
+       CLK_125_OUT                             : out   std_logic;\r
+       CLK_RX_OUT                              : out   std_logic;\r
+       CLK_TX_OUT                              : out   std_logic;\r
+       --SGMII connection to frame transmitter (tsmac)\r
+       FT_TX_CLK_EN_OUT                : out   std_logic;\r
+       FT_RX_CLK_EN_OUT                : out   std_logic;\r
+       FT_COL_OUT                              : out   std_logic;\r
+       FT_CRS_OUT                              : out   std_logic;\r
+       FT_TXD_IN                               : in    std_logic_vector(7 downto 0);\r
+       FT_TX_EN_IN                             : in    std_logic;\r
+       FT_TX_ER_IN                             : in    std_logic;\r
+       --SFP Connection\r
+       SD_RXD_P_IN                             : in    std_logic;\r
+       SD_RXD_N_IN                             : in    std_logic;\r
+       SD_TXD_P_OUT                    : out   std_logic;\r
+       SD_TXD_N_OUT                    : out   std_logic;\r
+       SD_REFCLK_P_IN                  : in    std_logic;\r
+       SD_REFCLK_N_IN                  : in    std_logic;\r
+       SD_PRSNT_N_IN                   : in    std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted)\r
+       SD_LOS_IN                               : in    std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)\r
+       SD_TXDIS_OUT                    : out   std_logic; -- SFP disable\r
+       -- Autonegotiation stuff \r
+       MR_RESET_IN                             : in    std_logic;\r
+       MR_MODE_IN                              : in    std_logic;\r
+       MR_ADV_ABILITY_IN               : in    std_logic_vector(15 downto 0); -- should be x"0020\r
+       MR_AN_LP_ABILITY_OUT    : out   std_logic_vector(15 downto 0); -- advert page from link partner\r
+       MR_AN_PAGE_RX_OUT               : out   std_logic;\r
+       MR_AN_COMPLETE_OUT              : out   std_logic; \r
+       MR_AN_ENABLE_IN                 : in    std_logic;\r
+       MR_RESTART_AN_IN                : in    std_logic;\r
+       -- Status and control port\r
+       STAT_OP                                 : out   std_logic_vector (15 downto 0);\r
+       CTRL_OP                                 : in    std_logic_vector (15 downto 0);\r
+       STAT_DEBUG                              : out   std_logic_vector (63 downto 0);\r
+       CTRL_DEBUG                              : in    std_logic_vector (63 downto 0)\r
+);\r
+end entity;\r
+\r
+architecture trb_net16_med_ecp_sfp_gbe_8b of trb_net16_med_ecp_sfp_gbe_8b is\r
+\r
+-- Placer Directives\r
+attribute HGROUP : string;\r
+-- for whole architecture\r
+attribute HGROUP of trb_net16_med_ecp_sfp_gbe_8b : architecture  is "media_interface_group";\r
+attribute syn_sharing : string;\r
+attribute syn_sharing of trb_net16_med_ecp_sfp_gbe_8b : architecture is "off";\r
+\r
+component serdes_gbe_0_extclock_8b is\r
+GENERIC (USER_CONFIG_FILE    :  String := "serdes_gbe_0_extclock_8b.txt");\r
+port( refclkp                                  : in    std_logic;\r
+         refclkn                                       : in    std_logic;\r
+         hdinp0                                        : in    std_logic;\r
+         hdinn0                                        : in    std_logic;\r
+         hdoutp0                                       : out   std_logic;\r
+         hdoutn0                                       : out   std_logic;\r
+         ff_rxiclk_ch0                         : in    std_logic;\r
+         ff_txiclk_ch0                         : in    std_logic;\r
+         ff_ebrd_clk_0                         : in    std_logic;\r
+         ff_txdata_ch0                         : in    std_logic_vector (7 downto 0);\r
+         ff_rxdata_ch0                         : out   std_logic_vector (7 downto 0);\r
+         ff_tx_k_cntrl_ch0                     : in    std_logic;\r
+         ff_rx_k_cntrl_ch0                     : out   std_logic;\r
+         ff_rxfullclk_ch0                      : out   std_logic;\r
+         ff_xmit_ch0                           : in    std_logic;\r
+         ff_correct_disp_ch0           : in    std_logic;\r
+         ff_disp_err_ch0                       : out   std_logic;\r
+         ff_cv_ch0                                     : out   std_logic;\r
+         ff_rx_even_ch0                        : out   std_logic;\r
+         ffc_rrst_ch0                          : in    std_logic;\r
+         ffc_lane_tx_rst_ch0           : in    std_logic;\r
+         ffc_lane_rx_rst_ch0           : in    std_logic;\r
+         ffc_txpwdnb_ch0                       : in    std_logic;\r
+         ffc_rxpwdnb_ch0                       : in    std_logic;\r
+         ffs_rlos_lo_ch0                       : out   std_logic;\r
+         ffs_ls_sync_status_ch0        : out   std_logic;\r
+         ffs_rlol_ch0                          : out   std_logic;\r
+         oob_out_ch0                           : out   std_logic;\r
+         ffc_macro_rst                         : in    std_logic;\r
+         ffc_quad_rst                          : in    std_logic;\r
+         ffc_trst                                      : in    std_logic;\r
+         ff_txfullclk                          : out   std_logic;\r
+         ff_txhalfclk                          : out   std_logic;\r
+         refck2core                            : out   std_logic;\r
+         ffs_plol                                      : out   std_logic\r
+       );\r
+end component;\r
+\r
+component sgmii_gbe_pcs32\r
+port( rst_n                  : in      std_logic;\r
+         signal_detect          : in   std_logic;\r
+         gbe_mode               : in   std_logic;\r
+         sgmii_mode             : in   std_logic;\r
+         operational_rate       : in   std_logic_vector(1 downto 0);\r
+         debug_link_timer_short : in   std_logic;\r
+         rx_compensation_err    : out  std_logic;\r
+         tx_clk_125             : in   std_logic;                    \r
+         tx_clock_enable_source : out  std_logic;\r
+         tx_clock_enable_sink   : in   std_logic;          \r
+         tx_d                   : in   std_logic_vector(7 downto 0); \r
+         tx_en                  : in   std_logic;       \r
+         tx_er                  : in   std_logic;       \r
+         rx_clk_125             : in   std_logic; \r
+         rx_clock_enable_source : out  std_logic;\r
+         rx_clock_enable_sink   : in   std_logic;          \r
+         rx_d                   : out  std_logic_vector(7 downto 0);       \r
+         rx_dv                  : out  std_logic;  \r
+         rx_er                  : out  std_logic; \r
+         col                    : out  std_logic;  \r
+         crs                    : out  std_logic;  \r
+         tx_data                : out  std_logic_vector(7 downto 0);  \r
+         tx_kcntl               : out  std_logic; \r
+         tx_disparity_cntl      : out  std_logic; \r
+         serdes_recovered_clk   : in   std_logic; \r
+         rx_data                : in   std_logic_vector(7 downto 0);  \r
+         rx_even                : in   std_logic;  \r
+         rx_kcntl               : in   std_logic; \r
+         rx_disp_err            : in   std_logic; \r
+         rx_cv_err              : in   std_logic; \r
+         rx_err_decode_mode     : in   std_logic; \r
+         mr_an_complete         : out  std_logic; \r
+         mr_page_rx             : out  std_logic; \r
+         mr_lp_adv_ability      : out  std_logic_vector(15 downto 0); \r
+         mr_main_reset          : in   std_logic; \r
+         mr_an_enable           : in   std_logic; \r
+         mr_restart_an          : in   std_logic; \r
+         mr_adv_ability         : in   std_logic_vector(15 downto 0)  \r
+       );\r
+end component;\r
+\r
+component trb_net16_lsm_sfp_gbe is\r
+port( SYSCLK                   : in    std_logic; -- fabric clock (100MHz)\r
+         RESET                         : in    std_logic; -- synchronous reset\r
+         CLEAR                         : in    std_logic; -- asynchronous reset, connect to '0' if not needed / available\r
+         -- status signals\r
+         SFP_MISSING_IN        : in    std_logic; -- SFP Missing ('1' = no SFP mounted, '0' = SFP in place)\r
+         SFP_LOS_IN            : in    std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)\r
+         SD_LINK_OK_IN         : in    std_logic; -- SerDes Link OK ('0' = not linked, '1' link established)\r
+         SD_LOS_IN                     : in    std_logic; -- SerDes Loss Of Signal ('0' = OK, '1' = signal lost)\r
+         SD_TXCLK_BAD_IN       : in    std_logic; -- SerDes Tx Clock locked ('0' = locked, '1' = not locked)\r
+         SD_RXCLK_BAD_IN       : in    std_logic; -- SerDes Rx Clock locked ('0' = locked, '1' = not locked)\r
+         -- control signals\r
+         FULL_RESET_OUT        : out   std_logic; -- full reset AKA quad_reset\r
+         LANE_RESET_OUT        : out   std_logic; -- partial reset AKA lane_reset\r
+         USER_RESET_OUT        : out   std_logic; -- FPGA reset for user logic\r
+         -- debug signals\r
+         TIMING_CTR_OUT        : out   std_logic_vector(18 downto 0);\r
+         BSM_OUT                       : out   std_logic_vector(3 downto 0);\r
+         DEBUG_OUT                     : out   std_logic_vector(31 downto 0)\r
+       );\r
+end component;\r
+\r
+signal refclkcore                      : std_logic;\r
+\r
+signal sd_link_ok                      : std_logic;\r
+signal sd_link_error           : std_logic_vector(2 downto 0);\r
+\r
+signal sd_tx_data                      : std_logic_vector(7 downto 0);\r
+signal sd_tx_kcntl                     : std_logic;\r
+signal sd_tx_correct_disp      : std_logic;\r
+signal sd_tx_clk                       : std_logic;\r
+\r
+signal sd_rx_data                      : std_logic_vector(7 downto 0);\r
+signal sd_rx_even                      : std_logic;\r
+signal sd_rx_kcntl                     : std_logic;\r
+signal sd_rx_disp_error                : std_logic;\r
+signal sd_rx_cv_error          : std_logic;\r
+signal sd_rx_clk                       : std_logic;\r
+\r
+signal pcs_mr_an_complete      : std_logic;\r
+signal pcs_mr_ability          : std_logic_vector(15 downto 0);\r
+signal pcs_mr_page_rx          : std_logic;\r
+signal pcs_mr_reset                    : std_logic;\r
+\r
+signal pcs_tx_clk_en           : std_logic;\r
+signal pcs_rx_clk_en           : std_logic;\r
+signal pcs_rx_comp_err         : std_logic;\r
+\r
+signal pcs_rx_d                                : std_logic_vector(7 downto 0);\r
+signal pcs_rx_dv                       : std_logic;\r
+signal pcs_rx_er                       : std_logic;\r
+\r
+signal sd_rx_debug                     : std_logic_vector(15 downto 0);\r
+signal sd_tx_debug                     : std_logic_vector(15 downto 0);\r
+\r
+signal buf_stat_debug          : std_logic_vector(63 downto 0);\r
+\r
+signal quad_rst                                : std_logic;\r
+signal lane_rst                                : std_logic;\r
+signal user_rst                                : std_logic;\r
+\r
+signal reset_bsm                       : std_logic_vector(3 downto 0);\r
+signal reset_debug                     : std_logic_vector(31 downto 0);\r
+\r
+begin\r
+\r
+-- Reset state machine for SerDes\r
+THE_RESET_STATEMACHINE: trb_net16_lsm_sfp_gbe\r
+port map( SYSCLK                       => refclkcore,\r
+                 RESET                         => '0', -- really?\r
+                 CLEAR                         => RESET, -- from 100MHz PLL, includes async part\r
+                 -- status signals\r
+                 SFP_MISSING_IN        => SD_PRSNT_N_IN,\r
+                 SFP_LOS_IN            => SD_LOS_IN,\r
+                 SD_LINK_OK_IN         => '1', -- not used\r
+                 SD_LOS_IN                     => '0', -- not used\r
+                 SD_TXCLK_BAD_IN       => sd_link_error(2), -- plol\r
+                 SD_RXCLK_BAD_IN       => sd_link_error(1), -- rlol\r
+                 -- control signals\r
+                 FULL_RESET_OUT        => quad_rst,\r
+                 LANE_RESET_OUT        => lane_rst,\r
+                 USER_RESET_OUT        => user_rst,\r
+                 -- debug signals\r
+                 TIMING_CTR_OUT        => open,\r
+                 BSM_OUT                       => reset_bsm,\r
+                 DEBUG_OUT                     => reset_debug\r
+               );\r
+\r
+-- SerDes for GbE\r
+SERDES_GBE : serdes_gbe_0_extclock_8b                                          \r
+port map( -- SerDes connection to outside world\r
+                 refclkp                                       => SD_REFCLK_P_IN, -- SerDes REFCLK diff. input\r
+                 refclkn                                       => SD_REFCLK_N_IN,\r
+                 hdinp0                                        => SD_RXD_P_IN, -- SerDes RX diff. input\r
+                 hdinn0                                        => SD_RXD_N_IN,\r
+                 hdoutp0                                       => SD_TXD_P_OUT, -- SerDes TX diff. output\r
+                 hdoutn0                                       => SD_TXD_N_OUT,\r
+                 refck2core                            => refclkcore, -- reference clock from input\r
+                 -- RX part\r
+                 ff_rxfullclk_ch0                      => sd_rx_clk, -- RX full clock output\r
+                 ff_rxiclk_ch0                         => sd_rx_clk,\r
+                 ff_ebrd_clk_0                         => sd_rx_clk, -- EB ist not used as recommended by Lattice\r
+                 ff_rxdata_ch0                         => sd_rx_data, -- RX data output\r
+                 ff_rx_k_cntrl_ch0                     => sd_rx_kcntl, -- RX komma output\r
+                 ff_rx_even_ch0                        => sd_rx_even, -- for autonegotiation (output)\r
+                 ff_disp_err_ch0                       => sd_rx_disp_error, -- RX disparity error\r
+                 ff_cv_ch0                                     => sd_rx_cv_error, -- RX code violation error\r
+                 -- TX part\r
+                 ff_txfullclk                          => sd_tx_clk, -- TX full clock output\r
+                 ff_txiclk_ch0                         => sd_tx_clk, \r
+                 ff_txhalfclk                          => open,\r
+                 ff_txdata_ch0                         => sd_tx_data, -- TX data input\r
+                 ff_tx_k_cntrl_ch0                     => sd_tx_kcntl, -- TX komma input\r
+                 ff_xmit_ch0                           => '0', -- for autonegotiation (input)\r
+                 ff_correct_disp_ch0           => sd_tx_correct_disp, -- controls disparity at IPG start (input)\r
+                 -- Resets and power down\r
+                 ffc_quad_rst                          => quad_rst, -- async reset for whole QUAD (active high)\r
+                 ffc_lane_tx_rst_ch0           => lane_rst, -- async reset for TX channel\r
+                 ffc_lane_rx_rst_ch0           => lane_rst, -- async reset for RX channel\r
+                 ffc_rrst_ch0                          => '0', -- '0' for normal operation\r
+                 ffc_macro_rst                         => '0', -- '0' for normal operation\r
+                 ffc_trst                                      => '0', -- '0' for normal operation\r
+                 ffc_txpwdnb_ch0                       => '1', -- must be '1'\r
+                 ffc_rxpwdnb_ch0                       => '1', -- must be '1'\r
+                 -- Status outputs\r
+                 ffs_ls_sync_status_ch0        => sd_link_ok, -- synced to kommas?\r
+                 ffs_rlos_lo_ch0                       => sd_link_error(0), -- loss of signal in RX channel\r
+                 ffs_rlol_ch0                          => sd_link_error(1), -- loss of lock in RX PLL\r
+                 ffs_plol                                      => sd_link_error(2), -- loss of lock in TX PLL\r
+                 oob_out_ch0                           => open -- not needed\r
+               );\r
+\r
+SD_RX_DATA_PROC: process( sd_rx_clk )\r
+begin\r
+       if( rising_edge(sd_rx_clk) ) then\r
+               sd_rx_debug(15 downto 12) <= (others => '0');\r
+               sd_rx_debug(11)          <= sd_rx_disp_error;\r
+               sd_rx_debug(10)          <= sd_rx_even;\r
+               sd_rx_debug(9)           <= sd_rx_cv_error;\r
+               sd_rx_debug(8)           <= sd_rx_kcntl;\r
+               sd_rx_debug(7 downto 0)  <= sd_rx_data;\r
+       end if;\r
+end process SD_RX_DATA_PROC;\r
+\r
+SD_TX_DATA_PROC: process( sd_tx_clk )\r
+begin\r
+       if( rising_edge(sd_tx_clk) ) then\r
+               sd_tx_debug(15 downto 10) <= (others => '0');\r
+               sd_tx_debug(9)            <= sd_tx_correct_disp;\r
+               sd_tx_debug(8)            <= sd_tx_kcntl;\r
+               sd_tx_debug(7 downto 0)   <= sd_tx_data;\r
+       end if;\r
+end process SD_TX_DATA_PROC;\r
+\r
+buf_stat_debug(63 downto 40) <= (others => '0');\r
+buf_stat_debug(39 downto 36) <= reset_debug(3 downto 0);\r
+buf_stat_debug(35 downto 32) <= reset_bsm;\r
+-- logic analyzer signals\r
+buf_stat_debug(31)           <= pcs_mr_page_rx;\r
+buf_stat_debug(30)           <= pcs_mr_reset; --pcs_mr_an_complete;\r
+buf_stat_debug(28 downto 26) <= reset_bsm(2 downto 0);\r
+buf_stat_debug(25 downto 23) <= sd_link_error(2 downto 0);\r
+buf_stat_debug(22)           <= sd_link_ok;\r
+buf_stat_debug(21 downto 12) <= sd_tx_debug(9 downto 0);\r
+buf_stat_debug(11 downto 0)  <= sd_rx_debug(11 downto 0); \r
+\r
+\r
+SGMII_GBE_PCS : sgmii_gbe_pcs32\r
+port map( rst_n                                                => GSR_N,                                                                  \r
+                 signal_detect                         => sd_link_ok,                             \r
+                 gbe_mode                                      => '1',                                        \r
+                 sgmii_mode                            => MR_MODE_IN,                                  \r
+                 operational_rate                      => "10",   \r
+                 debug_link_timer_short        => '0',                                     \r
+                 rx_compensation_err           => pcs_rx_comp_err,                           \r
+                 -- MAC interface\r
+                 tx_clk_125                            => refclkcore, -- original clock from SerDes\r
+                 tx_clock_enable_source        => pcs_tx_clk_en,\r
+                 tx_clock_enable_sink          => pcs_tx_clk_en,\r
+                 tx_d                                          => FT_TXD_IN, -- TX data from MAC\r
+                 tx_en                                         => FT_TX_EN_IN, -- TX data enable from MAC\r
+                 tx_er                                         => FT_TX_ER_IN, -- TX error from MAC\r
+                 rx_clk_125                            => refclkcore, -- original clock from SerDes         \r
+                 rx_clock_enable_source        => pcs_rx_clk_en,\r
+                 rx_clock_enable_sink          => pcs_rx_clk_en,\r
+                 rx_d                                          => pcs_rx_d, -- RX data to MAC\r
+                 rx_dv                                         => pcs_rx_dv, -- RX data enable to MAC\r
+                 rx_er                                         => pcs_rx_er, -- RX error to MAC\r
+                 col                                           => FT_COL_OUT,\r
+                 crs                                           => FT_CRS_OUT,\r
+                 -- SerDes interface\r
+                 tx_data                                       => sd_tx_data, -- TX data to SerDes\r
+                 tx_kcntl                                      => sd_tx_kcntl, -- TX komma control to SerDes\r
+                 tx_disparity_cntl                     => sd_tx_correct_disp, -- idle parity state control in IPG (to SerDes)\r
+                 serdes_recovered_clk          => sd_rx_clk, -- 125MHz recovered from receive bit stream\r
+                 rx_data                                       => sd_rx_data, -- RX data from SerDes\r
+                 rx_kcntl                                      => sd_rx_kcntl, -- RX komma control from SerDes\r
+                 rx_err_decode_mode            => '0', -- receive error control mode fixed to normal\r
+                 rx_even                                       => '0', -- unused (receive error control mode = normal, tie to GND)\r
+                 rx_disp_err                           => sd_rx_disp_error, -- RX disparity error from SerDes\r
+                 rx_cv_err                                     => sd_rx_cv_error, -- RX code violation error from SerDes\r
+                 -- Autonegotiation stuff\r
+                 mr_an_complete                        => pcs_mr_an_complete,\r
+                 mr_page_rx                            => pcs_mr_page_rx,\r
+                 mr_lp_adv_ability                     => pcs_mr_ability,\r
+                 mr_main_reset                         => pcs_mr_reset,\r
+                 mr_an_enable                          => MR_AN_ENABLE_IN,\r
+                 mr_restart_an                         => MR_RESTART_AN_IN,\r
+                 mr_adv_ability                        => MR_ADV_ABILITY_IN\r
+               );                                                                                                        \r
+\r
+pcs_mr_reset <= MR_RESET_IN or RESET or user_rst;\r
+\r
+FT_TX_CLK_EN_OUT     <= pcs_tx_clk_en; -- to MAC\r
+FT_RX_CLK_EN_OUT     <= pcs_rx_clk_en; -- to MAC\r
+\r
+MR_AN_LP_ABILITY_OUT <= pcs_mr_ability;\r
+MR_AN_COMPLETE_OUT   <= pcs_mr_an_complete;\r
+MR_AN_PAGE_RX_OUT    <= pcs_mr_page_rx;\r
+\r
+-- Clock games\r
+CLK_125_OUT <= refclkcore;\r
+CLK_RX_OUT  <= sd_rx_clk;\r
+CLK_TX_OUT  <= sd_tx_clk;\r
+\r
+-- Fakes\r
+STAT_OP       <= (others => '0');\r
+SD_TXDIS_OUT  <= '0'; -- enable \r
+STAT_DEBUG    <= buf_stat_debug;\r
+\r
+end architecture;
\ No newline at end of file